| Guennadi Liakhovetski | 69f3666 | 2013-07-08 18:04:57 +0200 | [diff] [blame] | 1 | /* | 
|  | 2 | * APE6EVM board support | 
|  | 3 | * | 
|  | 4 | * Copyright (C) 2013  Renesas Solutions Corp. | 
|  | 5 | * Copyright (C) 2013  Magnus Damm | 
|  | 6 | * | 
|  | 7 | * This program is free software; you can redistribute it and/or modify | 
|  | 8 | * it under the terms of the GNU General Public License as published by | 
|  | 9 | * the Free Software Foundation; version 2 of the License. | 
|  | 10 | * | 
|  | 11 | * This program is distributed in the hope that it will be useful, | 
|  | 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | 14 | * GNU General Public License for more details. | 
| Guennadi Liakhovetski | 69f3666 | 2013-07-08 18:04:57 +0200 | [diff] [blame] | 15 | */ | 
|  | 16 |  | 
|  | 17 | #include <linux/gpio.h> | 
|  | 18 | #include <linux/kernel.h> | 
|  | 19 | #include <linux/of_platform.h> | 
|  | 20 | #include <linux/pinctrl/machine.h> | 
| Guennadi Liakhovetski | b88cf6f | 2013-07-08 18:04:58 +0200 | [diff] [blame] | 21 | #include <linux/platform_device.h> | 
| Guennadi Liakhovetski | 69f3666 | 2013-07-08 18:04:57 +0200 | [diff] [blame] | 22 | #include <linux/sh_clk.h> | 
| Geert Uytterhoeven | fac4956 | 2014-06-20 18:53:02 +0200 | [diff] [blame] | 23 |  | 
| Guennadi Liakhovetski | 69f3666 | 2013-07-08 18:04:57 +0200 | [diff] [blame] | 24 | #include <asm/mach-types.h> | 
|  | 25 | #include <asm/mach/arch.h> | 
| Geert Uytterhoeven | fac4956 | 2014-06-20 18:53:02 +0200 | [diff] [blame] | 26 |  | 
| Magnus Damm | fd44aa5 | 2014-06-17 16:47:37 +0900 | [diff] [blame] | 27 | #include "common.h" | 
| Geert Uytterhoeven | fac4956 | 2014-06-20 18:53:02 +0200 | [diff] [blame] | 28 | #include "r8a73a4.h" | 
| Guennadi Liakhovetski | 69f3666 | 2013-07-08 18:04:57 +0200 | [diff] [blame] | 29 |  | 
| Guennadi Liakhovetski | 69f3666 | 2013-07-08 18:04:57 +0200 | [diff] [blame] | 30 | static void __init ape6evm_add_standard_devices(void) | 
|  | 31 | { | 
|  | 32 |  | 
|  | 33 | struct clk *parent; | 
|  | 34 | struct clk *mp; | 
|  | 35 |  | 
|  | 36 | r8a73a4_clock_init(); | 
|  | 37 |  | 
|  | 38 | /* MP clock parent = extal2 */ | 
|  | 39 | parent      = clk_get(NULL, "extal2"); | 
|  | 40 | mp          = clk_get(NULL, "mp"); | 
|  | 41 | BUG_ON(IS_ERR(parent) || IS_ERR(mp)); | 
|  | 42 |  | 
|  | 43 | clk_set_parent(mp, parent); | 
|  | 44 | clk_put(parent); | 
|  | 45 | clk_put(mp); | 
|  | 46 |  | 
| Guennadi Liakhovetski | 69f3666 | 2013-07-08 18:04:57 +0200 | [diff] [blame] | 47 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | 
| Guennadi Liakhovetski | 69f3666 | 2013-07-08 18:04:57 +0200 | [diff] [blame] | 48 | } | 
|  | 49 |  | 
|  | 50 | static const char *ape6evm_boards_compat_dt[] __initdata = { | 
|  | 51 | "renesas,ape6evm-reference", | 
|  | 52 | NULL, | 
|  | 53 | }; | 
|  | 54 |  | 
|  | 55 | DT_MACHINE_START(APE6EVM_DT, "ape6evm") | 
| Magnus Damm | 911f7ce | 2014-07-31 08:45:00 +0900 | [diff] [blame] | 56 | .init_early	= shmobile_init_delay, | 
| Guennadi Liakhovetski | 69f3666 | 2013-07-08 18:04:57 +0200 | [diff] [blame] | 57 | .init_machine	= ape6evm_add_standard_devices, | 
| Magnus Damm | 509c42a | 2014-07-31 08:33:17 +0900 | [diff] [blame] | 58 | .init_late	= shmobile_init_late, | 
| Guennadi Liakhovetski | 69f3666 | 2013-07-08 18:04:57 +0200 | [diff] [blame] | 59 | .dt_compat	= ape6evm_boards_compat_dt, | 
|  | 60 | MACHINE_END |