diff options
20 files changed, 547 insertions, 44 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 4179056f4584..6f527e1faeb6 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -233,7 +233,6 @@ dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += emev2-kzm9d.dtb \ | |||
233 | r8a7779-marzen-reference.dtb \ | 233 | r8a7779-marzen-reference.dtb \ |
234 | r8a7791-koelsch.dtb \ | 234 | r8a7791-koelsch.dtb \ |
235 | r8a7790-lager.dtb \ | 235 | r8a7790-lager.dtb \ |
236 | r8a7790-lager-reference.dtb \ | ||
237 | sh73a0-kzm9g.dtb \ | 236 | sh73a0-kzm9g.dtb \ |
238 | sh73a0-kzm9g-reference.dtb \ | 237 | sh73a0-kzm9g-reference.dtb \ |
239 | r8a73a4-ape6evm.dtb \ | 238 | r8a73a4-ape6evm.dtb \ |
@@ -241,7 +240,8 @@ dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += emev2-kzm9d.dtb \ | |||
241 | sh7372-mackerel.dtb | 240 | sh7372-mackerel.dtb |
242 | dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += emev2-kzm9d.dtb \ | 241 | dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += emev2-kzm9d.dtb \ |
243 | r7s72100-genmai-reference.dtb \ | 242 | r7s72100-genmai-reference.dtb \ |
244 | r8a7791-koelsch-reference.dtb | 243 | r8a7791-koelsch.dtb \ |
244 | r8a7790-lager.dtb | ||
245 | dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_arria5_socdk.dtb \ | 245 | dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_arria5_socdk.dtb \ |
246 | socfpga_cyclone5_socdk.dtb \ | 246 | socfpga_cyclone5_socdk.dtb \ |
247 | socfpga_cyclone5_sockit.dtb \ | 247 | socfpga_cyclone5_sockit.dtb \ |
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 3e57d457308a..338640631e08 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
@@ -12,6 +12,7 @@ config ARCH_SHMOBILE_MULTI | |||
12 | select HAVE_SMP | 12 | select HAVE_SMP |
13 | select ARM_GIC | 13 | select ARM_GIC |
14 | select MIGHT_HAVE_CACHE_L2X0 | 14 | select MIGHT_HAVE_CACHE_L2X0 |
15 | select MIGHT_HAVE_PCI | ||
15 | select NO_IOPORT | 16 | select NO_IOPORT |
16 | select PINCTRL | 17 | select PINCTRL |
17 | select ARCH_REQUIRE_GPIOLIB | 18 | select ARCH_REQUIRE_GPIOLIB |
@@ -27,6 +28,10 @@ config ARCH_EMEV2 | |||
27 | config ARCH_R7S72100 | 28 | config ARCH_R7S72100 |
28 | bool "RZ/A1H (R7S72100)" | 29 | bool "RZ/A1H (R7S72100)" |
29 | 30 | ||
31 | config ARCH_R8A7790 | ||
32 | bool "R-Car H2 (R8A77900)" | ||
33 | select RENESAS_IRQC | ||
34 | |||
30 | config ARCH_R8A7791 | 35 | config ARCH_R8A7791 |
31 | bool "R-Car M2 (R8A77910)" | 36 | bool "R-Car M2 (R8A77910)" |
32 | select RENESAS_IRQC | 37 | select RENESAS_IRQC |
@@ -46,6 +51,10 @@ config MACH_KZM9D | |||
46 | depends on ARCH_EMEV2 | 51 | depends on ARCH_EMEV2 |
47 | select REGULATOR_FIXED_VOLTAGE if REGULATOR | 52 | select REGULATOR_FIXED_VOLTAGE if REGULATOR |
48 | 53 | ||
54 | config MACH_LAGER | ||
55 | bool "Lager board" | ||
56 | depends on ARCH_R8A7790 | ||
57 | |||
49 | comment "Renesas ARM SoCs System Configuration" | 58 | comment "Renesas ARM SoCs System Configuration" |
50 | endif | 59 | endif |
51 | 60 | ||
@@ -111,6 +120,7 @@ config ARCH_R8A7790 | |||
111 | select ARCH_WANT_OPTIONAL_GPIOLIB | 120 | select ARCH_WANT_OPTIONAL_GPIOLIB |
112 | select ARM_GIC | 121 | select ARM_GIC |
113 | select CPU_V7 | 122 | select CPU_V7 |
123 | select MIGHT_HAVE_PCI | ||
114 | select SH_CLK_CPG | 124 | select SH_CLK_CPG |
115 | select RENESAS_IRQC | 125 | select RENESAS_IRQC |
116 | 126 | ||
@@ -119,6 +129,7 @@ config ARCH_R8A7791 | |||
119 | select ARCH_WANT_OPTIONAL_GPIOLIB | 129 | select ARCH_WANT_OPTIONAL_GPIOLIB |
120 | select ARM_GIC | 130 | select ARM_GIC |
121 | select CPU_V7 | 131 | select CPU_V7 |
132 | select MIGHT_HAVE_PCI | ||
122 | select SH_CLK_CPG | 133 | select SH_CLK_CPG |
123 | select RENESAS_IRQC | 134 | select RENESAS_IRQC |
124 | 135 | ||
@@ -127,6 +138,7 @@ config ARCH_EMEV2 | |||
127 | select ARCH_WANT_OPTIONAL_GPIOLIB | 138 | select ARCH_WANT_OPTIONAL_GPIOLIB |
128 | select ARM_GIC | 139 | select ARM_GIC |
129 | select CPU_V7 | 140 | select CPU_V7 |
141 | select MIGHT_HAVE_PCI | ||
130 | select USE_OF | 142 | select USE_OF |
131 | select AUTO_ZRELADDR | 143 | select AUTO_ZRELADDR |
132 | 144 | ||
@@ -250,32 +262,11 @@ config MACH_LAGER | |||
250 | depends on ARCH_R8A7790 | 262 | depends on ARCH_R8A7790 |
251 | select USE_OF | 263 | select USE_OF |
252 | 264 | ||
253 | config MACH_LAGER_REFERENCE | ||
254 | bool "Lager board - Reference Device Tree Implementation" | ||
255 | depends on ARCH_R8A7790 | ||
256 | select USE_OF | ||
257 | ---help--- | ||
258 | Use reference implementation of Lager board support | ||
259 | which makes use of device tree at the expense | ||
260 | of not supporting a number of devices. | ||
261 | |||
262 | This is intended to aid developers | ||
263 | |||
264 | config MACH_KOELSCH | 265 | config MACH_KOELSCH |
265 | bool "Koelsch board" | 266 | bool "Koelsch board" |
266 | depends on ARCH_R8A7791 | 267 | depends on ARCH_R8A7791 |
267 | select USE_OF | 268 | select USE_OF |
268 | 269 | select MICREL_PHY if SH_ETH | |
269 | config MACH_KOELSCH_REFERENCE | ||
270 | bool "Koelsch board - Reference Device Tree Implementation" | ||
271 | depends on ARCH_R8A7791 | ||
272 | select USE_OF | ||
273 | ---help--- | ||
274 | Use reference implementation of Koelsch board support | ||
275 | which makes use of device tree at the expense | ||
276 | of not supporting a number of devices. | ||
277 | |||
278 | This is intended to aid developers | ||
279 | 270 | ||
280 | config MACH_KZM9G | 271 | config MACH_KZM9G |
281 | bool "KZM-A9-GT board" | 272 | bool "KZM-A9-GT board" |
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index 1c131046dec6..fe7d4ff706e4 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile | |||
@@ -59,6 +59,7 @@ ifdef CONFIG_ARCH_SHMOBILE_MULTI | |||
59 | obj-$(CONFIG_MACH_GENMAI) += board-genmai-reference.o | 59 | obj-$(CONFIG_MACH_GENMAI) += board-genmai-reference.o |
60 | obj-$(CONFIG_MACH_KOELSCH) += board-koelsch-reference.o | 60 | obj-$(CONFIG_MACH_KOELSCH) += board-koelsch-reference.o |
61 | obj-$(CONFIG_MACH_KZM9D) += board-kzm9d-reference.o | 61 | obj-$(CONFIG_MACH_KZM9D) += board-kzm9d-reference.o |
62 | obj-$(CONFIG_MACH_LAGER) += board-lager-reference.o | ||
62 | else | 63 | else |
63 | obj-$(CONFIG_MACH_APE6EVM) += board-ape6evm.o | 64 | obj-$(CONFIG_MACH_APE6EVM) += board-ape6evm.o |
64 | obj-$(CONFIG_MACH_APE6EVM_REFERENCE) += board-ape6evm-reference.o | 65 | obj-$(CONFIG_MACH_APE6EVM_REFERENCE) += board-ape6evm-reference.o |
@@ -70,11 +71,9 @@ obj-$(CONFIG_MACH_GENMAI_REFERENCE) += board-genmai-reference.o | |||
70 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o | 71 | obj-$(CONFIG_MACH_MARZEN) += board-marzen.o |
71 | obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o | 72 | obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o |
72 | obj-$(CONFIG_MACH_LAGER) += board-lager.o | 73 | obj-$(CONFIG_MACH_LAGER) += board-lager.o |
73 | obj-$(CONFIG_MACH_LAGER_REFERENCE) += board-lager-reference.o | ||
74 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o | 74 | obj-$(CONFIG_MACH_ARMADILLO800EVA) += board-armadillo800eva.o |
75 | obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += board-armadillo800eva-reference.o | 75 | obj-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += board-armadillo800eva-reference.o |
76 | obj-$(CONFIG_MACH_KOELSCH) += board-koelsch.o | 76 | obj-$(CONFIG_MACH_KOELSCH) += board-koelsch.o |
77 | obj-$(CONFIG_MACH_KOELSCH_REFERENCE) += board-koelsch-reference.o | ||
78 | obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o | 77 | obj-$(CONFIG_MACH_KZM9G) += board-kzm9g.o |
79 | obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o | 78 | obj-$(CONFIG_MACH_KZM9G_REFERENCE) += board-kzm9g-reference.o |
80 | endif | 79 | endif |
diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot index 759e4f8fcd37..99455ecafa05 100644 --- a/arch/arm/mach-shmobile/Makefile.boot +++ b/arch/arm/mach-shmobile/Makefile.boot | |||
@@ -9,11 +9,9 @@ loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000 | |||
9 | loadaddr-$(CONFIG_MACH_GENMAI) += 0x08008000 | 9 | loadaddr-$(CONFIG_MACH_GENMAI) += 0x08008000 |
10 | loadaddr-$(CONFIG_MACH_GENMAI_REFERENCE) += 0x08008000 | 10 | loadaddr-$(CONFIG_MACH_GENMAI_REFERENCE) += 0x08008000 |
11 | loadaddr-$(CONFIG_MACH_KOELSCH) += 0x40008000 | 11 | loadaddr-$(CONFIG_MACH_KOELSCH) += 0x40008000 |
12 | loadaddr-$(CONFIG_MACH_KOELSCH_REFERENCE) += 0x40008000 | ||
13 | loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 | 12 | loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 |
14 | loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 | 13 | loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 |
15 | loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000 | 14 | loadaddr-$(CONFIG_MACH_LAGER) += 0x40008000 |
16 | loadaddr-$(CONFIG_MACH_LAGER_REFERENCE) += 0x40008000 | ||
17 | loadaddr-$(CONFIG_MACH_MACKEREL) += 0x40008000 | 15 | loadaddr-$(CONFIG_MACH_MACKEREL) += 0x40008000 |
18 | loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000 | 16 | loadaddr-$(CONFIG_MACH_MARZEN) += 0x60008000 |
19 | loadaddr-$(CONFIG_MACH_MARZEN_REFERENCE) += 0x60008000 | 17 | loadaddr-$(CONFIG_MACH_MARZEN_REFERENCE) += 0x60008000 |
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c index d9e28c7aca49..2ea89355d8c1 100644 --- a/arch/arm/mach-shmobile/board-armadillo800eva.c +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c | |||
@@ -423,7 +423,7 @@ static struct platform_pwm_backlight_data pwm_backlight_data = { | |||
423 | .max_brightness = 255, | 423 | .max_brightness = 255, |
424 | .dft_brightness = 255, | 424 | .dft_brightness = 255, |
425 | .pwm_period_ns = 33333, /* 30kHz */ | 425 | .pwm_period_ns = 33333, /* 30kHz */ |
426 | .enable_gpio = -1, | 426 | .enable_gpio = 61, |
427 | }; | 427 | }; |
428 | 428 | ||
429 | static struct platform_device pwm_backlight_device = { | 429 | static struct platform_device pwm_backlight_device = { |
@@ -1203,9 +1203,6 @@ static void __init eva_init(void) | |||
1203 | r8a7740_pinmux_init(); | 1203 | r8a7740_pinmux_init(); |
1204 | r8a7740_meram_workaround(); | 1204 | r8a7740_meram_workaround(); |
1205 | 1205 | ||
1206 | /* LCDC0 */ | ||
1207 | gpio_request_one(61, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */ | ||
1208 | |||
1209 | /* GETHER */ | 1206 | /* GETHER */ |
1210 | gpio_request_one(18, GPIOF_OUT_INIT_HIGH, NULL); /* PHY_RST */ | 1207 | gpio_request_one(18, GPIOF_OUT_INIT_HIGH, NULL); /* PHY_RST */ |
1211 | 1208 | ||
diff --git a/arch/arm/mach-shmobile/board-bockw.c b/arch/arm/mach-shmobile/board-bockw.c index eb5b54fc5cc9..afb3f6869017 100644 --- a/arch/arm/mach-shmobile/board-bockw.c +++ b/arch/arm/mach-shmobile/board-bockw.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/mmc/sh_mmcif.h> | 25 | #include <linux/mmc/sh_mmcif.h> |
26 | #include <linux/mtd/partitions.h> | 26 | #include <linux/mtd/partitions.h> |
27 | #include <linux/pinctrl/machine.h> | 27 | #include <linux/pinctrl/machine.h> |
28 | #include <linux/platform_data/camera-rcar.h> | ||
28 | #include <linux/platform_data/usb-rcar-phy.h> | 29 | #include <linux/platform_data/usb-rcar-phy.h> |
29 | #include <linux/platform_device.h> | 30 | #include <linux/platform_device.h> |
30 | #include <linux/regulator/fixed.h> | 31 | #include <linux/regulator/fixed.h> |
diff --git a/arch/arm/mach-shmobile/board-koelsch-reference.c b/arch/arm/mach-shmobile/board-koelsch-reference.c index a804a1798a71..652b59268416 100644 --- a/arch/arm/mach-shmobile/board-koelsch-reference.c +++ b/arch/arm/mach-shmobile/board-koelsch-reference.c | |||
@@ -19,7 +19,8 @@ | |||
19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/clk-provider.h> | 22 | #include <linux/clk.h> |
23 | #include <linux/clkdev.h> | ||
23 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
24 | #include <linux/of_platform.h> | 25 | #include <linux/of_platform.h> |
25 | #include <mach/common.h> | 26 | #include <mach/common.h> |
@@ -30,7 +31,31 @@ | |||
30 | static void __init koelsch_add_standard_devices(void) | 31 | static void __init koelsch_add_standard_devices(void) |
31 | { | 32 | { |
32 | #ifdef CONFIG_COMMON_CLK | 33 | #ifdef CONFIG_COMMON_CLK |
33 | of_clk_init(NULL); | 34 | /* |
35 | * This is a really crude hack to provide clkdev support to the SCIF | ||
36 | * and CMT devices until they get moved to DT. | ||
37 | */ | ||
38 | static const char * const scif_names[] = { | ||
39 | "scifa0", "scifa1", "scifb0", "scifb1", "scifb2", "scifa2", | ||
40 | "scif0", "scif1", "scif2", "scif3", "scif4", "scif5", "scifa3", | ||
41 | "scifa4", "scifa5", | ||
42 | }; | ||
43 | struct clk *clk; | ||
44 | unsigned int i; | ||
45 | |||
46 | for (i = 0; i < ARRAY_SIZE(scif_names); ++i) { | ||
47 | clk = clk_get(NULL, scif_names[i]); | ||
48 | if (clk) { | ||
49 | clk_register_clkdev(clk, NULL, "sh-sci.%u", i); | ||
50 | clk_put(clk); | ||
51 | } | ||
52 | } | ||
53 | |||
54 | clk = clk_get(NULL, "cmt0"); | ||
55 | if (clk) { | ||
56 | clk_register_clkdev(clk, NULL, "sh_cmt.0"); | ||
57 | clk_put(clk); | ||
58 | } | ||
34 | #else | 59 | #else |
35 | r8a7791_clock_init(); | 60 | r8a7791_clock_init(); |
36 | #endif | 61 | #endif |
@@ -39,6 +64,7 @@ static void __init koelsch_add_standard_devices(void) | |||
39 | } | 64 | } |
40 | 65 | ||
41 | static const char * const koelsch_boards_compat_dt[] __initconst = { | 66 | static const char * const koelsch_boards_compat_dt[] __initconst = { |
67 | "renesas,koelsch", | ||
42 | "renesas,koelsch-reference", | 68 | "renesas,koelsch-reference", |
43 | NULL, | 69 | NULL, |
44 | }; | 70 | }; |
diff --git a/arch/arm/mach-shmobile/board-koelsch.c b/arch/arm/mach-shmobile/board-koelsch.c index 6e12914d6d58..de7cc64b1f37 100644 --- a/arch/arm/mach-shmobile/board-koelsch.c +++ b/arch/arm/mach-shmobile/board-koelsch.c | |||
@@ -19,20 +19,89 @@ | |||
19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/dma-mapping.h> | ||
22 | #include <linux/gpio.h> | 23 | #include <linux/gpio.h> |
23 | #include <linux/gpio_keys.h> | 24 | #include <linux/gpio_keys.h> |
24 | #include <linux/input.h> | 25 | #include <linux/input.h> |
25 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
26 | #include <linux/leds.h> | 27 | #include <linux/leds.h> |
28 | #include <linux/phy.h> | ||
27 | #include <linux/pinctrl/machine.h> | 29 | #include <linux/pinctrl/machine.h> |
28 | #include <linux/platform_data/gpio-rcar.h> | 30 | #include <linux/platform_data/gpio-rcar.h> |
31 | #include <linux/platform_data/rcar-du.h> | ||
29 | #include <linux/platform_device.h> | 32 | #include <linux/platform_device.h> |
33 | #include <linux/sh_eth.h> | ||
30 | #include <mach/common.h> | 34 | #include <mach/common.h> |
35 | #include <mach/irqs.h> | ||
31 | #include <mach/r8a7791.h> | 36 | #include <mach/r8a7791.h> |
32 | #include <mach/rcar-gen2.h> | 37 | #include <mach/rcar-gen2.h> |
33 | #include <asm/mach-types.h> | 38 | #include <asm/mach-types.h> |
34 | #include <asm/mach/arch.h> | 39 | #include <asm/mach/arch.h> |
35 | 40 | ||
41 | /* DU */ | ||
42 | static struct rcar_du_encoder_data koelsch_du_encoders[] = { | ||
43 | { | ||
44 | .type = RCAR_DU_ENCODER_NONE, | ||
45 | .output = RCAR_DU_OUTPUT_LVDS0, | ||
46 | .connector.lvds.panel = { | ||
47 | .width_mm = 210, | ||
48 | .height_mm = 158, | ||
49 | .mode = { | ||
50 | .clock = 65000, | ||
51 | .hdisplay = 1024, | ||
52 | .hsync_start = 1048, | ||
53 | .hsync_end = 1184, | ||
54 | .htotal = 1344, | ||
55 | .vdisplay = 768, | ||
56 | .vsync_start = 771, | ||
57 | .vsync_end = 777, | ||
58 | .vtotal = 806, | ||
59 | .flags = 0, | ||
60 | }, | ||
61 | }, | ||
62 | }, | ||
63 | }; | ||
64 | |||
65 | static const struct rcar_du_platform_data koelsch_du_pdata __initconst = { | ||
66 | .encoders = koelsch_du_encoders, | ||
67 | .num_encoders = ARRAY_SIZE(koelsch_du_encoders), | ||
68 | }; | ||
69 | |||
70 | static const struct resource du_resources[] __initconst = { | ||
71 | DEFINE_RES_MEM(0xfeb00000, 0x40000), | ||
72 | DEFINE_RES_MEM_NAMED(0xfeb90000, 0x1c, "lvds.0"), | ||
73 | DEFINE_RES_IRQ(gic_spi(256)), | ||
74 | DEFINE_RES_IRQ(gic_spi(268)), | ||
75 | }; | ||
76 | |||
77 | static void __init koelsch_add_du_device(void) | ||
78 | { | ||
79 | struct platform_device_info info = { | ||
80 | .name = "rcar-du-r8a7791", | ||
81 | .id = -1, | ||
82 | .res = du_resources, | ||
83 | .num_res = ARRAY_SIZE(du_resources), | ||
84 | .data = &koelsch_du_pdata, | ||
85 | .size_data = sizeof(koelsch_du_pdata), | ||
86 | .dma_mask = DMA_BIT_MASK(32), | ||
87 | }; | ||
88 | |||
89 | platform_device_register_full(&info); | ||
90 | } | ||
91 | |||
92 | /* Ether */ | ||
93 | static const struct sh_eth_plat_data ether_pdata __initconst = { | ||
94 | .phy = 0x1, | ||
95 | .edmac_endian = EDMAC_LITTLE_ENDIAN, | ||
96 | .phy_interface = PHY_INTERFACE_MODE_RMII, | ||
97 | .ether_link_active_low = 1, | ||
98 | }; | ||
99 | |||
100 | static const struct resource ether_resources[] __initconst = { | ||
101 | DEFINE_RES_MEM(0xee700000, 0x400), | ||
102 | DEFINE_RES_IRQ(gic_spi(162)), | ||
103 | }; | ||
104 | |||
36 | /* LEDS */ | 105 | /* LEDS */ |
37 | static struct gpio_led koelsch_leds[] = { | 106 | static struct gpio_led koelsch_leds[] = { |
38 | { | 107 | { |
@@ -80,6 +149,22 @@ static const struct gpio_keys_platform_data koelsch_keys_pdata __initconst = { | |||
80 | }; | 149 | }; |
81 | 150 | ||
82 | static const struct pinctrl_map koelsch_pinctrl_map[] = { | 151 | static const struct pinctrl_map koelsch_pinctrl_map[] = { |
152 | /* DU */ | ||
153 | PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7791", "pfc-r8a7791", | ||
154 | "du_rgb666", "du"), | ||
155 | PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7791", "pfc-r8a7791", | ||
156 | "du_sync", "du"), | ||
157 | PIN_MAP_MUX_GROUP_DEFAULT("rcar-du-r8a7791", "pfc-r8a7791", | ||
158 | "du_clk_out_0", "du"), | ||
159 | /* Ether */ | ||
160 | PIN_MAP_MUX_GROUP_DEFAULT("r8a7791-ether", "pfc-r8a7791", | ||
161 | "eth_link", "eth"), | ||
162 | PIN_MAP_MUX_GROUP_DEFAULT("r8a7791-ether", "pfc-r8a7791", | ||
163 | "eth_mdio", "eth"), | ||
164 | PIN_MAP_MUX_GROUP_DEFAULT("r8a7791-ether", "pfc-r8a7791", | ||
165 | "eth_rmii", "eth"), | ||
166 | PIN_MAP_MUX_GROUP_DEFAULT("r8a7791-ether", "pfc-r8a7791", | ||
167 | "intc_irq0", "intc"), | ||
83 | /* SCIF0 (CN19: DEBUG SERIAL0) */ | 168 | /* SCIF0 (CN19: DEBUG SERIAL0) */ |
84 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7791", | 169 | PIN_MAP_MUX_GROUP_DEFAULT("sh-sci.6", "pfc-r8a7791", |
85 | "scif0_data_d", "scif0"), | 170 | "scif0_data_d", "scif0"), |
@@ -95,12 +180,44 @@ static void __init koelsch_add_standard_devices(void) | |||
95 | ARRAY_SIZE(koelsch_pinctrl_map)); | 180 | ARRAY_SIZE(koelsch_pinctrl_map)); |
96 | r8a7791_pinmux_init(); | 181 | r8a7791_pinmux_init(); |
97 | r8a7791_add_standard_devices(); | 182 | r8a7791_add_standard_devices(); |
183 | platform_device_register_resndata(&platform_bus, "r8a7791-ether", -1, | ||
184 | ether_resources, | ||
185 | ARRAY_SIZE(ether_resources), | ||
186 | ðer_pdata, sizeof(ether_pdata)); | ||
98 | platform_device_register_data(&platform_bus, "leds-gpio", -1, | 187 | platform_device_register_data(&platform_bus, "leds-gpio", -1, |
99 | &koelsch_leds_pdata, | 188 | &koelsch_leds_pdata, |
100 | sizeof(koelsch_leds_pdata)); | 189 | sizeof(koelsch_leds_pdata)); |
101 | platform_device_register_data(&platform_bus, "gpio-keys", -1, | 190 | platform_device_register_data(&platform_bus, "gpio-keys", -1, |
102 | &koelsch_keys_pdata, | 191 | &koelsch_keys_pdata, |
103 | sizeof(koelsch_keys_pdata)); | 192 | sizeof(koelsch_keys_pdata)); |
193 | |||
194 | koelsch_add_du_device(); | ||
195 | } | ||
196 | |||
197 | /* | ||
198 | * Ether LEDs on the Koelsch board are named LINK and ACTIVE which corresponds | ||
199 | * to non-default 01 setting of the Micrel KSZ8041 PHY control register 1 bits | ||
200 | * 14-15. We have to set them back to 01 from the default 00 value each time | ||
201 | * the PHY is reset. It's also important because the PHY's LED0 signal is | ||
202 | * connected to SoC's ETH_LINK signal and in the PHY's default mode it will | ||
203 | * bounce on and off after each packet, which we apparently want to avoid. | ||
204 | */ | ||
205 | static int koelsch_ksz8041_fixup(struct phy_device *phydev) | ||
206 | { | ||
207 | u16 phyctrl1 = phy_read(phydev, 0x1e); | ||
208 | |||
209 | phyctrl1 &= ~0xc000; | ||
210 | phyctrl1 |= 0x4000; | ||
211 | return phy_write(phydev, 0x1e, phyctrl1); | ||
212 | } | ||
213 | |||
214 | static void __init koelsch_init(void) | ||
215 | { | ||
216 | koelsch_add_standard_devices(); | ||
217 | |||
218 | if (IS_ENABLED(CONFIG_PHYLIB)) | ||
219 | phy_register_fixup_for_id("r8a7791-ether-ff:01", | ||
220 | koelsch_ksz8041_fixup); | ||
104 | } | 221 | } |
105 | 222 | ||
106 | static const char * const koelsch_boards_compat_dt[] __initconst = { | 223 | static const char * const koelsch_boards_compat_dt[] __initconst = { |
@@ -112,7 +229,7 @@ DT_MACHINE_START(KOELSCH_DT, "koelsch") | |||
112 | .smp = smp_ops(r8a7791_smp_ops), | 229 | .smp = smp_ops(r8a7791_smp_ops), |
113 | .init_early = r8a7791_init_early, | 230 | .init_early = r8a7791_init_early, |
114 | .init_time = rcar_gen2_timer_init, | 231 | .init_time = rcar_gen2_timer_init, |
115 | .init_machine = koelsch_add_standard_devices, | 232 | .init_machine = koelsch_init, |
116 | .init_late = shmobile_init_late, | 233 | .init_late = shmobile_init_late, |
117 | .dt_compat = koelsch_boards_compat_dt, | 234 | .dt_compat = koelsch_boards_compat_dt, |
118 | MACHINE_END | 235 | MACHINE_END |
diff --git a/arch/arm/mach-shmobile/board-lager-reference.c b/arch/arm/mach-shmobile/board-lager-reference.c index 51a3bcc704e5..a6e271d92af0 100644 --- a/arch/arm/mach-shmobile/board-lager-reference.c +++ b/arch/arm/mach-shmobile/board-lager-reference.c | |||
@@ -18,6 +18,8 @@ | |||
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/clk.h> | ||
22 | #include <linux/clkdev.h> | ||
21 | #include <linux/init.h> | 23 | #include <linux/init.h> |
22 | #include <linux/of_platform.h> | 24 | #include <linux/of_platform.h> |
23 | #include <mach/common.h> | 25 | #include <mach/common.h> |
@@ -27,12 +29,42 @@ | |||
27 | 29 | ||
28 | static void __init lager_add_standard_devices(void) | 30 | static void __init lager_add_standard_devices(void) |
29 | { | 31 | { |
32 | #ifdef CONFIG_COMMON_CLK | ||
33 | /* | ||
34 | * This is a really crude hack to provide clkdev support to the SCIF | ||
35 | * and CMT devices until they get moved to DT. | ||
36 | */ | ||
37 | static const char * const scif_names[] = { | ||
38 | "scifa0", "scifa1", "scifb0", "scifb1", | ||
39 | "scifb2", "scifa2", "scif0", "scif1", | ||
40 | "hscif0", "hscif1", | ||
41 | }; | ||
42 | struct clk *clk; | ||
43 | unsigned int i; | ||
44 | |||
45 | for (i = 0; i < ARRAY_SIZE(scif_names); ++i) { | ||
46 | clk = clk_get(NULL, scif_names[i]); | ||
47 | if (clk) { | ||
48 | clk_register_clkdev(clk, NULL, "sh-sci.%u", i); | ||
49 | clk_put(clk); | ||
50 | } | ||
51 | } | ||
52 | |||
53 | clk = clk_get(NULL, "cmt0"); | ||
54 | if (clk) { | ||
55 | clk_register_clkdev(clk, NULL, "sh_cmt.0"); | ||
56 | clk_put(clk); | ||
57 | } | ||
58 | #else | ||
30 | r8a7790_clock_init(); | 59 | r8a7790_clock_init(); |
60 | #endif | ||
61 | |||
31 | r8a7790_add_dt_devices(); | 62 | r8a7790_add_dt_devices(); |
32 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | 63 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); |
33 | } | 64 | } |
34 | 65 | ||
35 | static const char *lager_boards_compat_dt[] __initdata = { | 66 | static const char *lager_boards_compat_dt[] __initdata = { |
67 | "renesas,lager", | ||
36 | "renesas,lager-reference", | 68 | "renesas,lager-reference", |
37 | NULL, | 69 | NULL, |
38 | }; | 70 | }; |
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 207acf0e07da..b3ee96e31b82 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -1406,7 +1406,7 @@ static const struct pinctrl_map mackerel_pinctrl_map[] = { | |||
1406 | /* USBHS1 */ | 1406 | /* USBHS1 */ |
1407 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", | 1407 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", |
1408 | "usb1_vbus", "usb1"), | 1408 | "usb1_vbus", "usb1"), |
1409 | PIN_MAP_CONFIGS_GROUP_DEFAULT("renesas_usbhs.&", "pfc-sh7372", | 1409 | PIN_MAP_CONFIGS_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", |
1410 | "usb1_vbus", pin_pulldown_conf), | 1410 | "usb1_vbus", pin_pulldown_conf), |
1411 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", | 1411 | PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372", |
1412 | "usb1_otg_id_0", "usb1"), | 1412 | "usb1_otg_id_0", "usb1"), |
diff --git a/arch/arm/mach-shmobile/clock-r7s72100.c b/arch/arm/mach-shmobile/clock-r7s72100.c index 7b457aed8253..0814a508fd61 100644 --- a/arch/arm/mach-shmobile/clock-r7s72100.c +++ b/arch/arm/mach-shmobile/clock-r7s72100.c | |||
@@ -181,7 +181,6 @@ static struct clk_lookup lookups[] = { | |||
181 | CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP42]), | 181 | CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP42]), |
182 | CLKDEV_ICK_ID("sci_fck", "sh-sci.6", &mstp_clks[MSTP41]), | 182 | CLKDEV_ICK_ID("sci_fck", "sh-sci.6", &mstp_clks[MSTP41]), |
183 | CLKDEV_ICK_ID("sci_fck", "sh-sci.7", &mstp_clks[MSTP40]), | 183 | CLKDEV_ICK_ID("sci_fck", "sh-sci.7", &mstp_clks[MSTP40]), |
184 | CLKDEV_CON_ID("mtu2_fck", &mstp_clks[MSTP33]), | ||
185 | }; | 184 | }; |
186 | 185 | ||
187 | void __init r7s72100_clock_init(void) | 186 | void __init r7s72100_clock_init(void) |
diff --git a/arch/arm/mach-shmobile/clock-r8a7790.c b/arch/arm/mach-shmobile/clock-r8a7790.c index 80cd8f31fa3c..09c5c7d66431 100644 --- a/arch/arm/mach-shmobile/clock-r8a7790.c +++ b/arch/arm/mach-shmobile/clock-r8a7790.c | |||
@@ -292,9 +292,13 @@ static struct clk_lookup lookups[] = { | |||
292 | CLKDEV_DEV_ID("sh-sci.8", &mstp_clks[MSTP717]), | 292 | CLKDEV_DEV_ID("sh-sci.8", &mstp_clks[MSTP717]), |
293 | CLKDEV_DEV_ID("sh-sci.9", &mstp_clks[MSTP716]), | 293 | CLKDEV_DEV_ID("sh-sci.9", &mstp_clks[MSTP716]), |
294 | CLKDEV_DEV_ID("e6508000.i2c", &mstp_clks[MSTP931]), | 294 | CLKDEV_DEV_ID("e6508000.i2c", &mstp_clks[MSTP931]), |
295 | CLKDEV_DEV_ID("i2c-rcar.0", &mstp_clks[MSTP931]), | ||
295 | CLKDEV_DEV_ID("e6518000.i2c", &mstp_clks[MSTP930]), | 296 | CLKDEV_DEV_ID("e6518000.i2c", &mstp_clks[MSTP930]), |
297 | CLKDEV_DEV_ID("i2c-rcar.1", &mstp_clks[MSTP930]), | ||
296 | CLKDEV_DEV_ID("e6530000.i2c", &mstp_clks[MSTP929]), | 298 | CLKDEV_DEV_ID("e6530000.i2c", &mstp_clks[MSTP929]), |
299 | CLKDEV_DEV_ID("i2c-rcar.2", &mstp_clks[MSTP929]), | ||
297 | CLKDEV_DEV_ID("e6540000.i2c", &mstp_clks[MSTP928]), | 300 | CLKDEV_DEV_ID("e6540000.i2c", &mstp_clks[MSTP928]), |
301 | CLKDEV_DEV_ID("i2c-rcar.3", &mstp_clks[MSTP928]), | ||
298 | CLKDEV_DEV_ID("r8a7790-ether", &mstp_clks[MSTP813]), | 302 | CLKDEV_DEV_ID("r8a7790-ether", &mstp_clks[MSTP813]), |
299 | CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), | 303 | CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), |
300 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), | 304 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), |
diff --git a/arch/arm/mach-shmobile/clock-r8a7791.c b/arch/arm/mach-shmobile/clock-r8a7791.c index ff2d60d55bd5..f5461262ee25 100644 --- a/arch/arm/mach-shmobile/clock-r8a7791.c +++ b/arch/arm/mach-shmobile/clock-r8a7791.c | |||
@@ -122,6 +122,7 @@ static struct clk *main_clks[] = { | |||
122 | 122 | ||
123 | /* MSTP */ | 123 | /* MSTP */ |
124 | enum { | 124 | enum { |
125 | MSTP813, | ||
125 | MSTP726, MSTP724, MSTP723, MSTP721, MSTP720, | 126 | MSTP726, MSTP724, MSTP723, MSTP721, MSTP720, |
126 | MSTP719, MSTP718, MSTP715, MSTP714, | 127 | MSTP719, MSTP718, MSTP715, MSTP714, |
127 | MSTP522, | 128 | MSTP522, |
@@ -132,6 +133,7 @@ enum { | |||
132 | }; | 133 | }; |
133 | 134 | ||
134 | static struct clk mstp_clks[MSTP_NR] = { | 135 | static struct clk mstp_clks[MSTP_NR] = { |
136 | [MSTP813] = SH_CLK_MSTP32(&p_clk, SMSTPCR8, 13, 0), /* Ether */ | ||
135 | [MSTP726] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 26, 0), /* LVDS0 */ | 137 | [MSTP726] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 26, 0), /* LVDS0 */ |
136 | [MSTP724] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 24, 0), /* DU0 */ | 138 | [MSTP724] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 24, 0), /* DU0 */ |
137 | [MSTP723] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 23, 0), /* DU1 */ | 139 | [MSTP723] = SH_CLK_MSTP32(&zx_clk, SMSTPCR7, 23, 0), /* DU1 */ |
@@ -192,6 +194,7 @@ static struct clk_lookup lookups[] = { | |||
192 | CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]), | 194 | CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]), |
193 | CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), | 195 | CLKDEV_DEV_ID("e61f0000.thermal", &mstp_clks[MSTP522]), |
194 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), | 196 | CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), |
197 | CLKDEV_DEV_ID("r8a7791-ether", &mstp_clks[MSTP813]), /* Ether */ | ||
195 | }; | 198 | }; |
196 | 199 | ||
197 | #define R8A7791_CLOCK_ROOT(e, m, p0, p1, p30, p31) \ | 200 | #define R8A7791_CLOCK_ROOT(e, m, p0, p1, p30, p31) \ |
diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c index 2aeec468cf7c..87e349ddba7c 100644 --- a/arch/arm/mach-shmobile/clock-sh73a0.c +++ b/arch/arm/mach-shmobile/clock-sh73a0.c | |||
@@ -652,6 +652,7 @@ static struct clk_lookup lookups[] = { | |||
652 | CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP331]), /* SCIFA6 */ | 652 | CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP331]), /* SCIFA6 */ |
653 | CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]), /* CMT10 */ | 653 | CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]), /* CMT10 */ |
654 | CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), /* FSI */ | 654 | CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), /* FSI */ |
655 | CLKDEV_DEV_ID("ec230000.sound", &mstp_clks[MSTP328]), /* FSI */ | ||
655 | CLKDEV_DEV_ID("sh_irda.0", &mstp_clks[MSTP325]), /* IrDA */ | 656 | CLKDEV_DEV_ID("sh_irda.0", &mstp_clks[MSTP325]), /* IrDA */ |
656 | CLKDEV_DEV_ID("i2c-sh_mobile.1", &mstp_clks[MSTP323]), /* I2C1 */ | 657 | CLKDEV_DEV_ID("i2c-sh_mobile.1", &mstp_clks[MSTP323]), /* I2C1 */ |
657 | CLKDEV_DEV_ID("e6822000.i2c", &mstp_clks[MSTP323]), /* I2C1 */ | 658 | CLKDEV_DEV_ID("e6822000.i2c", &mstp_clks[MSTP323]), /* I2C1 */ |
diff --git a/arch/arm/mach-shmobile/include/mach/r8a7778.h b/arch/arm/mach-shmobile/include/mach/r8a7778.h index b497f932d04f..f4076a50e970 100644 --- a/arch/arm/mach-shmobile/include/mach/r8a7778.h +++ b/arch/arm/mach-shmobile/include/mach/r8a7778.h | |||
@@ -20,13 +20,30 @@ | |||
20 | #define __ASM_R8A7778_H__ | 20 | #define __ASM_R8A7778_H__ |
21 | 21 | ||
22 | #include <linux/sh_eth.h> | 22 | #include <linux/sh_eth.h> |
23 | #include <linux/platform_data/camera-rcar.h> | ||
24 | 23 | ||
25 | /* HPB-DMA slave IDs */ | 24 | /* HPB-DMA slave IDs */ |
26 | enum { | 25 | enum { |
27 | HPBDMA_SLAVE_DUMMY, | 26 | HPBDMA_SLAVE_DUMMY, |
28 | HPBDMA_SLAVE_SDHI0_TX, | 27 | HPBDMA_SLAVE_SDHI0_TX, |
29 | HPBDMA_SLAVE_SDHI0_RX, | 28 | HPBDMA_SLAVE_SDHI0_RX, |
29 | HPBDMA_SLAVE_SSI0_TX, | ||
30 | HPBDMA_SLAVE_SSI0_RX, | ||
31 | HPBDMA_SLAVE_SSI1_TX, | ||
32 | HPBDMA_SLAVE_SSI1_RX, | ||
33 | HPBDMA_SLAVE_SSI2_TX, | ||
34 | HPBDMA_SLAVE_SSI2_RX, | ||
35 | HPBDMA_SLAVE_SSI3_TX, | ||
36 | HPBDMA_SLAVE_SSI3_RX, | ||
37 | HPBDMA_SLAVE_SSI4_TX, | ||
38 | HPBDMA_SLAVE_SSI4_RX, | ||
39 | HPBDMA_SLAVE_SSI5_TX, | ||
40 | HPBDMA_SLAVE_SSI5_RX, | ||
41 | HPBDMA_SLAVE_SSI6_TX, | ||
42 | HPBDMA_SLAVE_SSI6_RX, | ||
43 | HPBDMA_SLAVE_SSI7_TX, | ||
44 | HPBDMA_SLAVE_SSI7_RX, | ||
45 | HPBDMA_SLAVE_SSI8_TX, | ||
46 | HPBDMA_SLAVE_SSI8_RX, | ||
30 | HPBDMA_SLAVE_HPBIF0_TX, | 47 | HPBDMA_SLAVE_HPBIF0_TX, |
31 | HPBDMA_SLAVE_HPBIF0_RX, | 48 | HPBDMA_SLAVE_HPBIF0_RX, |
32 | HPBDMA_SLAVE_HPBIF1_TX, | 49 | HPBDMA_SLAVE_HPBIF1_TX, |
@@ -45,6 +62,8 @@ enum { | |||
45 | HPBDMA_SLAVE_HPBIF7_RX, | 62 | HPBDMA_SLAVE_HPBIF7_RX, |
46 | HPBDMA_SLAVE_HPBIF8_TX, | 63 | HPBDMA_SLAVE_HPBIF8_TX, |
47 | HPBDMA_SLAVE_HPBIF8_RX, | 64 | HPBDMA_SLAVE_HPBIF8_RX, |
65 | HPBDMA_SLAVE_USBFUNC_TX, | ||
66 | HPBDMA_SLAVE_USBFUNC_RX, | ||
48 | }; | 67 | }; |
49 | 68 | ||
50 | extern void r8a7778_add_standard_devices(void); | 69 | extern void r8a7778_add_standard_devices(void); |
diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c index 81701cfb6cc6..7ea6308e5da8 100644 --- a/arch/arm/mach-shmobile/setup-r8a7778.c +++ b/arch/arm/mach-shmobile/setup-r8a7778.c | |||
@@ -319,6 +319,29 @@ void __init r8a7778_add_dt_devices(void) | |||
319 | #define HPB_DMAE_ASYNCMDR_ASMD21_SINGLE BIT(1) /* SDHI0 */ | 319 | #define HPB_DMAE_ASYNCMDR_ASMD21_SINGLE BIT(1) /* SDHI0 */ |
320 | #define HPB_DMAE_ASYNCMDR_ASMD21_MULTI 0 /* SDHI0 */ | 320 | #define HPB_DMAE_ASYNCMDR_ASMD21_MULTI 0 /* SDHI0 */ |
321 | 321 | ||
322 | #define HPBDMA_SSI(_id) \ | ||
323 | { \ | ||
324 | .id = HPBDMA_SLAVE_SSI## _id ##_TX, \ | ||
325 | .addr = 0xffd91008 + (_id * 0x40), \ | ||
326 | .dcr = HPB_DMAE_DCR_CT | \ | ||
327 | HPB_DMAE_DCR_DIP | \ | ||
328 | HPB_DMAE_DCR_SPDS_32BIT | \ | ||
329 | HPB_DMAE_DCR_DMDL | \ | ||
330 | HPB_DMAE_DCR_DPDS_32BIT, \ | ||
331 | .port = _id + (_id << 8), \ | ||
332 | .dma_ch = (28 + _id), \ | ||
333 | }, { \ | ||
334 | .id = HPBDMA_SLAVE_SSI## _id ##_RX, \ | ||
335 | .addr = 0xffd9100c + (_id * 0x40), \ | ||
336 | .dcr = HPB_DMAE_DCR_CT | \ | ||
337 | HPB_DMAE_DCR_DIP | \ | ||
338 | HPB_DMAE_DCR_SMDL | \ | ||
339 | HPB_DMAE_DCR_SPDS_32BIT | \ | ||
340 | HPB_DMAE_DCR_DPDS_32BIT, \ | ||
341 | .port = _id + (_id << 8), \ | ||
342 | .dma_ch = (28 + _id), \ | ||
343 | } | ||
344 | |||
322 | #define HPBDMA_HPBIF(_id) \ | 345 | #define HPBDMA_HPBIF(_id) \ |
323 | { \ | 346 | { \ |
324 | .id = HPBDMA_SLAVE_HPBIF## _id ##_TX, \ | 347 | .id = HPBDMA_SLAVE_HPBIF## _id ##_TX, \ |
@@ -371,8 +394,34 @@ static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = { | |||
371 | .port = 0x0D0C, | 394 | .port = 0x0D0C, |
372 | .flags = HPB_DMAE_SET_ASYNC_RESET | HPB_DMAE_SET_ASYNC_MODE, | 395 | .flags = HPB_DMAE_SET_ASYNC_RESET | HPB_DMAE_SET_ASYNC_MODE, |
373 | .dma_ch = 22, | 396 | .dma_ch = 22, |
397 | }, { | ||
398 | .id = HPBDMA_SLAVE_USBFUNC_TX, /* for D0 */ | ||
399 | .addr = 0xffe60018, | ||
400 | .dcr = HPB_DMAE_DCR_SPDS_32BIT | | ||
401 | HPB_DMAE_DCR_DMDL | | ||
402 | HPB_DMAE_DCR_DPDS_32BIT, | ||
403 | .port = 0x0000, | ||
404 | .dma_ch = 14, | ||
405 | }, { | ||
406 | .id = HPBDMA_SLAVE_USBFUNC_RX, /* for D1 */ | ||
407 | .addr = 0xffe6001c, | ||
408 | .dcr = HPB_DMAE_DCR_SMDL | | ||
409 | HPB_DMAE_DCR_SPDS_32BIT | | ||
410 | HPB_DMAE_DCR_DPDS_32BIT, | ||
411 | .port = 0x0101, | ||
412 | .dma_ch = 15, | ||
374 | }, | 413 | }, |
375 | 414 | ||
415 | HPBDMA_SSI(0), | ||
416 | HPBDMA_SSI(1), | ||
417 | HPBDMA_SSI(2), | ||
418 | HPBDMA_SSI(3), | ||
419 | HPBDMA_SSI(4), | ||
420 | HPBDMA_SSI(5), | ||
421 | HPBDMA_SSI(6), | ||
422 | HPBDMA_SSI(7), | ||
423 | HPBDMA_SSI(8), | ||
424 | |||
376 | HPBDMA_HPBIF(0), | 425 | HPBDMA_HPBIF(0), |
377 | HPBDMA_HPBIF(1), | 426 | HPBDMA_HPBIF(1), |
378 | HPBDMA_HPBIF(2), | 427 | HPBDMA_HPBIF(2), |
@@ -385,24 +434,44 @@ static const struct hpb_dmae_slave_config hpb_dmae_slaves[] = { | |||
385 | }; | 434 | }; |
386 | 435 | ||
387 | static const struct hpb_dmae_channel hpb_dmae_channels[] = { | 436 | static const struct hpb_dmae_channel hpb_dmae_channels[] = { |
437 | HPB_DMAE_CHANNEL(0x7c, HPBDMA_SLAVE_USBFUNC_TX), /* ch. 14 */ | ||
438 | HPB_DMAE_CHANNEL(0x7c, HPBDMA_SLAVE_USBFUNC_RX), /* ch. 15 */ | ||
388 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */ | 439 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_TX), /* ch. 21 */ |
389 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */ | 440 | HPB_DMAE_CHANNEL(0x7e, HPBDMA_SLAVE_SDHI0_RX), /* ch. 22 */ |
441 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI0_TX), /* ch. 28 */ | ||
442 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI0_RX), /* ch. 28 */ | ||
390 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_TX), /* ch. 28 */ | 443 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_TX), /* ch. 28 */ |
391 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_RX), /* ch. 28 */ | 444 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF0_RX), /* ch. 28 */ |
445 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI1_TX), /* ch. 29 */ | ||
446 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI1_RX), /* ch. 29 */ | ||
392 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_TX), /* ch. 29 */ | 447 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_TX), /* ch. 29 */ |
393 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_RX), /* ch. 29 */ | 448 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF1_RX), /* ch. 29 */ |
449 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI2_TX), /* ch. 30 */ | ||
450 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI2_RX), /* ch. 30 */ | ||
394 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_TX), /* ch. 30 */ | 451 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_TX), /* ch. 30 */ |
395 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_RX), /* ch. 30 */ | 452 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF2_RX), /* ch. 30 */ |
453 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI3_TX), /* ch. 31 */ | ||
454 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI3_RX), /* ch. 31 */ | ||
396 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_TX), /* ch. 31 */ | 455 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_TX), /* ch. 31 */ |
397 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_RX), /* ch. 31 */ | 456 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF3_RX), /* ch. 31 */ |
457 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI4_TX), /* ch. 32 */ | ||
458 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI4_RX), /* ch. 32 */ | ||
398 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_TX), /* ch. 32 */ | 459 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_TX), /* ch. 32 */ |
399 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_RX), /* ch. 32 */ | 460 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF4_RX), /* ch. 32 */ |
461 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI5_TX), /* ch. 33 */ | ||
462 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI5_RX), /* ch. 33 */ | ||
400 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_TX), /* ch. 33 */ | 463 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_TX), /* ch. 33 */ |
401 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_RX), /* ch. 33 */ | 464 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF5_RX), /* ch. 33 */ |
465 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI6_TX), /* ch. 34 */ | ||
466 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI6_RX), /* ch. 34 */ | ||
402 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_TX), /* ch. 34 */ | 467 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_TX), /* ch. 34 */ |
403 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_RX), /* ch. 34 */ | 468 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF6_RX), /* ch. 34 */ |
469 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI7_TX), /* ch. 35 */ | ||
470 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI7_RX), /* ch. 35 */ | ||
404 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_TX), /* ch. 35 */ | 471 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_TX), /* ch. 35 */ |
405 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_RX), /* ch. 35 */ | 472 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF7_RX), /* ch. 35 */ |
473 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI8_TX), /* ch. 36 */ | ||
474 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_SSI8_RX), /* ch. 36 */ | ||
406 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_TX), /* ch. 36 */ | 475 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_TX), /* ch. 36 */ |
407 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_RX), /* ch. 36 */ | 476 | HPB_DMAE_CHANNEL(0x7f, HPBDMA_SLAVE_HPBIF8_RX), /* ch. 36 */ |
408 | }; | 477 | }; |
diff --git a/arch/arm/mach-shmobile/setup-r8a7790.c b/arch/arm/mach-shmobile/setup-r8a7790.c index 3543c3bacb75..8474818a7ae0 100644 --- a/arch/arm/mach-shmobile/setup-r8a7790.c +++ b/arch/arm/mach-shmobile/setup-r8a7790.c | |||
@@ -67,6 +67,27 @@ R8A7790_GPIO(5); | |||
67 | &r8a7790_gpio##idx##_platform_data, \ | 67 | &r8a7790_gpio##idx##_platform_data, \ |
68 | sizeof(r8a7790_gpio##idx##_platform_data)) | 68 | sizeof(r8a7790_gpio##idx##_platform_data)) |
69 | 69 | ||
70 | static struct resource i2c_resources[] __initdata = { | ||
71 | /* I2C0 */ | ||
72 | DEFINE_RES_MEM(0xE6508000, 0x40), | ||
73 | DEFINE_RES_IRQ(gic_spi(287)), | ||
74 | /* I2C1 */ | ||
75 | DEFINE_RES_MEM(0xE6518000, 0x40), | ||
76 | DEFINE_RES_IRQ(gic_spi(288)), | ||
77 | /* I2C2 */ | ||
78 | DEFINE_RES_MEM(0xE6530000, 0x40), | ||
79 | DEFINE_RES_IRQ(gic_spi(286)), | ||
80 | /* I2C3 */ | ||
81 | DEFINE_RES_MEM(0xE6540000, 0x40), | ||
82 | DEFINE_RES_IRQ(gic_spi(290)), | ||
83 | |||
84 | }; | ||
85 | |||
86 | #define r8a7790_register_i2c(idx) \ | ||
87 | platform_device_register_simple( \ | ||
88 | "i2c-rcar", idx, \ | ||
89 | i2c_resources + (2 * idx), 2); \ | ||
90 | |||
70 | void __init r8a7790_pinmux_init(void) | 91 | void __init r8a7790_pinmux_init(void) |
71 | { | 92 | { |
72 | r8a7790_register_pfc(); | 93 | r8a7790_register_pfc(); |
@@ -76,6 +97,10 @@ void __init r8a7790_pinmux_init(void) | |||
76 | r8a7790_register_gpio(3); | 97 | r8a7790_register_gpio(3); |
77 | r8a7790_register_gpio(4); | 98 | r8a7790_register_gpio(4); |
78 | r8a7790_register_gpio(5); | 99 | r8a7790_register_gpio(5); |
100 | r8a7790_register_i2c(0); | ||
101 | r8a7790_register_i2c(1); | ||
102 | r8a7790_register_i2c(2); | ||
103 | r8a7790_register_i2c(3); | ||
79 | } | 104 | } |
80 | 105 | ||
81 | #define SCIF_COMMON(scif_type, baseaddr, irq) \ | 106 | #define SCIF_COMMON(scif_type, baseaddr, irq) \ |
diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index 5734c24bf6c7..69ccc6c6fd33 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c | |||
@@ -18,6 +18,7 @@ | |||
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/clk/shmobile.h> | ||
21 | #include <linux/clocksource.h> | 22 | #include <linux/clocksource.h> |
22 | #include <linux/io.h> | 23 | #include <linux/io.h> |
23 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
@@ -44,8 +45,10 @@ u32 __init rcar_gen2_read_mode_pins(void) | |||
44 | 45 | ||
45 | void __init rcar_gen2_timer_init(void) | 46 | void __init rcar_gen2_timer_init(void) |
46 | { | 47 | { |
47 | #ifdef CONFIG_ARM_ARCH_TIMER | 48 | #if defined(CONFIG_ARM_ARCH_TIMER) || defined(CONFIG_COMMON_CLK) |
48 | u32 mode = rcar_gen2_read_mode_pins(); | 49 | u32 mode = rcar_gen2_read_mode_pins(); |
50 | #endif | ||
51 | #ifdef CONFIG_ARM_ARCH_TIMER | ||
49 | void __iomem *base; | 52 | void __iomem *base; |
50 | int extal_mhz = 0; | 53 | int extal_mhz = 0; |
51 | u32 freq; | 54 | u32 freq; |
@@ -78,14 +81,28 @@ void __init rcar_gen2_timer_init(void) | |||
78 | /* Remap "armgcnt address map" space */ | 81 | /* Remap "armgcnt address map" space */ |
79 | base = ioremap(0xe6080000, PAGE_SIZE); | 82 | base = ioremap(0xe6080000, PAGE_SIZE); |
80 | 83 | ||
81 | /* Update registers with correct frequency */ | 84 | /* |
82 | iowrite32(freq, base + CNTFID0); | 85 | * Update the timer if it is either not running, or is not at the |
83 | asm volatile("mcr p15, 0, %0, c14, c0, 0" : : "r" (freq)); | 86 | * right frequency. The timer is only configurable in secure mode |
87 | * so this avoids an abort if the loader started the timer and | ||
88 | * entered the kernel in non-secure mode. | ||
89 | */ | ||
90 | |||
91 | if ((ioread32(base + CNTCR) & 1) == 0 || | ||
92 | ioread32(base + CNTFID0) != freq) { | ||
93 | /* Update registers with correct frequency */ | ||
94 | iowrite32(freq, base + CNTFID0); | ||
95 | asm volatile("mcr p15, 0, %0, c14, c0, 0" : : "r" (freq)); | ||
96 | |||
97 | /* make sure arch timer is started by setting bit 0 of CNTCR */ | ||
98 | iowrite32(1, base + CNTCR); | ||
99 | } | ||
84 | 100 | ||
85 | /* make sure arch timer is started by setting bit 0 of CNTCR */ | ||
86 | iowrite32(1, base + CNTCR); | ||
87 | iounmap(base); | 101 | iounmap(base); |
88 | #endif /* CONFIG_ARM_ARCH_TIMER */ | 102 | #endif /* CONFIG_ARM_ARCH_TIMER */ |
89 | 103 | ||
104 | #ifdef CONFIG_COMMON_CLK | ||
105 | rcar_gen2_clocks_init(mode); | ||
106 | #endif | ||
90 | clocksource_of_init(); | 107 | clocksource_of_init(); |
91 | } | 108 | } |
diff --git a/include/dt-bindings/clock/r8a7790-clock.h b/include/dt-bindings/clock/r8a7790-clock.h new file mode 100644 index 000000000000..420f0b00ae1e --- /dev/null +++ b/include/dt-bindings/clock/r8a7790-clock.h | |||
@@ -0,0 +1,100 @@ | |||
1 | /* | ||
2 | * Copyright 2013 Ideas On Board SPRL | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | */ | ||
9 | |||
10 | #ifndef __DT_BINDINGS_CLOCK_R8A7790_H__ | ||
11 | #define __DT_BINDINGS_CLOCK_R8A7790_H__ | ||
12 | |||
13 | /* CPG */ | ||
14 | #define R8A7790_CLK_MAIN 0 | ||
15 | #define R8A7790_CLK_PLL0 1 | ||
16 | #define R8A7790_CLK_PLL1 2 | ||
17 | #define R8A7790_CLK_PLL3 3 | ||
18 | #define R8A7790_CLK_LB 4 | ||
19 | #define R8A7790_CLK_QSPI 5 | ||
20 | #define R8A7790_CLK_SDH 6 | ||
21 | #define R8A7790_CLK_SD0 7 | ||
22 | #define R8A7790_CLK_SD1 8 | ||
23 | #define R8A7790_CLK_Z 9 | ||
24 | |||
25 | /* MSTP1 */ | ||
26 | #define R8A7790_CLK_TMU1 11 | ||
27 | #define R8A7790_CLK_TMU3 21 | ||
28 | #define R8A7790_CLK_TMU2 22 | ||
29 | #define R8A7790_CLK_CMT0 24 | ||
30 | #define R8A7790_CLK_TMU0 25 | ||
31 | #define R8A7790_CLK_VSP1_DU1 27 | ||
32 | #define R8A7790_CLK_VSP1_DU0 28 | ||
33 | #define R8A7790_CLK_VSP1_RT 30 | ||
34 | #define R8A7790_CLK_VSP1_SY 31 | ||
35 | |||
36 | /* MSTP2 */ | ||
37 | #define R8A7790_CLK_SCIFA2 2 | ||
38 | #define R8A7790_CLK_SCIFA1 3 | ||
39 | #define R8A7790_CLK_SCIFA0 4 | ||
40 | #define R8A7790_CLK_SCIFB0 6 | ||
41 | #define R8A7790_CLK_SCIFB1 7 | ||
42 | #define R8A7790_CLK_SCIFB2 16 | ||
43 | #define R8A7790_CLK_SYS_DMAC0 18 | ||
44 | #define R8A7790_CLK_SYS_DMAC1 19 | ||
45 | |||
46 | /* MSTP3 */ | ||
47 | #define R8A7790_CLK_TPU0 4 | ||
48 | #define R8A7790_CLK_MMCIF1 5 | ||
49 | #define R8A7790_CLK_SDHI3 11 | ||
50 | #define R8A7790_CLK_SDHI2 12 | ||
51 | #define R8A7790_CLK_SDHI1 13 | ||
52 | #define R8A7790_CLK_SDHI0 14 | ||
53 | #define R8A7790_CLK_MMCIF0 15 | ||
54 | #define R8A7790_CLK_SSUSB 28 | ||
55 | #define R8A7790_CLK_CMT1 29 | ||
56 | #define R8A7790_CLK_USBDMAC0 30 | ||
57 | #define R8A7790_CLK_USBDMAC1 31 | ||
58 | |||
59 | /* MSTP5 */ | ||
60 | #define R8A7790_CLK_THERMAL 22 | ||
61 | #define R8A7790_CLK_PWM 23 | ||
62 | |||
63 | /* MSTP7 */ | ||
64 | #define R8A7790_CLK_EHCI 3 | ||
65 | #define R8A7790_CLK_HSUSB 4 | ||
66 | #define R8A7790_CLK_HSCIF1 16 | ||
67 | #define R8A7790_CLK_HSCIF0 17 | ||
68 | #define R8A7790_CLK_SCIF1 20 | ||
69 | #define R8A7790_CLK_SCIF0 21 | ||
70 | #define R8A7790_CLK_DU2 22 | ||
71 | #define R8A7790_CLK_DU1 23 | ||
72 | #define R8A7790_CLK_DU0 24 | ||
73 | #define R8A7790_CLK_LVDS1 25 | ||
74 | #define R8A7790_CLK_LVDS0 26 | ||
75 | |||
76 | /* MSTP8 */ | ||
77 | #define R8A7790_CLK_VIN3 8 | ||
78 | #define R8A7790_CLK_VIN2 9 | ||
79 | #define R8A7790_CLK_VIN1 10 | ||
80 | #define R8A7790_CLK_VIN0 11 | ||
81 | #define R8A7790_CLK_ETHER 13 | ||
82 | #define R8A7790_CLK_SATA1 14 | ||
83 | #define R8A7790_CLK_SATA0 15 | ||
84 | |||
85 | /* MSTP9 */ | ||
86 | #define R8A7790_CLK_GPIO5 7 | ||
87 | #define R8A7790_CLK_GPIO4 8 | ||
88 | #define R8A7790_CLK_GPIO3 9 | ||
89 | #define R8A7790_CLK_GPIO2 10 | ||
90 | #define R8A7790_CLK_GPIO1 11 | ||
91 | #define R8A7790_CLK_GPIO0 12 | ||
92 | #define R8A7790_CLK_RCAN1 15 | ||
93 | #define R8A7790_CLK_RCAN0 16 | ||
94 | #define R8A7790_CLK_IICDVFS 26 | ||
95 | #define R8A7790_CLK_I2C3 28 | ||
96 | #define R8A7790_CLK_I2C2 29 | ||
97 | #define R8A7790_CLK_I2C1 30 | ||
98 | #define R8A7790_CLK_I2C0 31 | ||
99 | |||
100 | #endif /* __DT_BINDINGS_CLOCK_R8A7790_H__ */ | ||
diff --git a/include/dt-bindings/clock/r8a7791-clock.h b/include/dt-bindings/clock/r8a7791-clock.h new file mode 100644 index 000000000000..df1715b77f96 --- /dev/null +++ b/include/dt-bindings/clock/r8a7791-clock.h | |||
@@ -0,0 +1,105 @@ | |||
1 | /* | ||
2 | * Copyright 2013 Ideas On Board SPRL | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | */ | ||
9 | |||
10 | #ifndef __DT_BINDINGS_CLOCK_R8A7791_H__ | ||
11 | #define __DT_BINDINGS_CLOCK_R8A7791_H__ | ||
12 | |||
13 | /* CPG */ | ||
14 | #define R8A7791_CLK_MAIN 0 | ||
15 | #define R8A7791_CLK_PLL0 1 | ||
16 | #define R8A7791_CLK_PLL1 2 | ||
17 | #define R8A7791_CLK_PLL3 3 | ||
18 | #define R8A7791_CLK_LB 4 | ||
19 | #define R8A7791_CLK_QSPI 5 | ||
20 | #define R8A7791_CLK_SDH 6 | ||
21 | #define R8A7791_CLK_SD0 7 | ||
22 | #define R8A7791_CLK_Z 8 | ||
23 | |||
24 | /* MSTP1 */ | ||
25 | #define R8A7791_CLK_TMU1 11 | ||
26 | #define R8A7791_CLK_TMU3 21 | ||
27 | #define R8A7791_CLK_TMU2 22 | ||
28 | #define R8A7791_CLK_CMT0 24 | ||
29 | #define R8A7791_CLK_TMU0 25 | ||
30 | #define R8A7791_CLK_VSP1_DU1 27 | ||
31 | #define R8A7791_CLK_VSP1_DU0 28 | ||
32 | #define R8A7791_CLK_VSP1_SY 31 | ||
33 | |||
34 | /* MSTP2 */ | ||
35 | #define R8A7791_CLK_SCIFA2 2 | ||
36 | #define R8A7791_CLK_SCIFA1 3 | ||
37 | #define R8A7791_CLK_SCIFA0 4 | ||
38 | #define R8A7791_CLK_SCIFB0 6 | ||
39 | #define R8A7791_CLK_SCIFB1 7 | ||
40 | #define R8A7791_CLK_SCIFB2 16 | ||
41 | #define R8A7791_CLK_DMAC 18 | ||
42 | |||
43 | /* MSTP3 */ | ||
44 | #define R8A7791_CLK_TPU0 4 | ||
45 | #define R8A7791_CLK_SDHI2 11 | ||
46 | #define R8A7791_CLK_SDHI1 12 | ||
47 | #define R8A7791_CLK_SDHI0 14 | ||
48 | #define R8A7791_CLK_MMCIF0 15 | ||
49 | #define R8A7791_CLK_SSUSB 28 | ||
50 | #define R8A7791_CLK_CMT1 29 | ||
51 | #define R8A7791_CLK_USBDMAC0 30 | ||
52 | #define R8A7791_CLK_USBDMAC1 31 | ||
53 | |||
54 | /* MSTP5 */ | ||
55 | #define R8A7791_CLK_THERMAL 22 | ||
56 | #define R8A7791_CLK_PWM 23 | ||
57 | |||
58 | /* MSTP7 */ | ||
59 | #define R8A7791_CLK_HSUSB 4 | ||
60 | #define R8A7791_CLK_HSCIF2 13 | ||
61 | #define R8A7791_CLK_SCIF5 14 | ||
62 | #define R8A7791_CLK_SCIF4 15 | ||
63 | #define R8A7791_CLK_HSCIF1 16 | ||
64 | #define R8A7791_CLK_HSCIF0 17 | ||
65 | #define R8A7791_CLK_SCIF3 18 | ||
66 | #define R8A7791_CLK_SCIF2 19 | ||
67 | #define R8A7791_CLK_SCIF1 20 | ||
68 | #define R8A7791_CLK_SCIF0 21 | ||
69 | #define R8A7791_CLK_DU1 23 | ||
70 | #define R8A7791_CLK_DU0 24 | ||
71 | #define R8A7791_CLK_LVDS0 26 | ||
72 | |||
73 | /* MSTP8 */ | ||
74 | #define R8A7791_CLK_VIN2 9 | ||
75 | #define R8A7791_CLK_VIN1 10 | ||
76 | #define R8A7791_CLK_VIN0 11 | ||
77 | #define R8A7791_CLK_ETHER 13 | ||
78 | #define R8A7791_CLK_SATA1 14 | ||
79 | #define R8A7791_CLK_SATA0 15 | ||
80 | |||
81 | /* MSTP9 */ | ||
82 | #define R8A7791_CLK_GPIO7 4 | ||
83 | #define R8A7791_CLK_GPIO6 5 | ||
84 | #define R8A7791_CLK_GPIO5 7 | ||
85 | #define R8A7791_CLK_GPIO4 8 | ||
86 | #define R8A7791_CLK_GPIO3 9 | ||
87 | #define R8A7791_CLK_GPIO2 10 | ||
88 | #define R8A7791_CLK_GPIO1 11 | ||
89 | #define R8A7791_CLK_GPIO0 12 | ||
90 | #define R8A7791_CLK_RCAN1 15 | ||
91 | #define R8A7791_CLK_RCAN0 16 | ||
92 | #define R8A7791_CLK_I2C5 25 | ||
93 | #define R8A7791_CLK_IICDVFS 26 | ||
94 | #define R8A7791_CLK_I2C4 27 | ||
95 | #define R8A7791_CLK_I2C3 28 | ||
96 | #define R8A7791_CLK_I2C2 29 | ||
97 | #define R8A7791_CLK_I2C1 30 | ||
98 | #define R8A7791_CLK_I2C0 31 | ||
99 | |||
100 | /* MSTP11 */ | ||
101 | #define R8A7791_CLK_SCIFA3 6 | ||
102 | #define R8A7791_CLK_SCIFA4 7 | ||
103 | #define R8A7791_CLK_SCIFA5 8 | ||
104 | |||
105 | #endif /* __DT_BINDINGS_CLOCK_R8A7791_H__ */ | ||