diff options
-rw-r--r-- | Documentation/devicetree/bindings/arm/shmobile.txt | 10 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/Kconfig | 16 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7792.c | 35 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7793.c | 33 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-r8a7794.c | 33 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/setup-rcar-gen2.c | 44 |
7 files changed, 63 insertions, 111 deletions
diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt index 2f0b7169f132..9a60cb38cf56 100644 --- a/Documentation/devicetree/bindings/arm/shmobile.txt +++ b/Documentation/devicetree/bindings/arm/shmobile.txt | |||
@@ -13,6 +13,8 @@ SoCs: | |||
13 | compatible = "renesas,r8a73a4" | 13 | compatible = "renesas,r8a73a4" |
14 | - R-Mobile A1 (R8A77400) | 14 | - R-Mobile A1 (R8A77400) |
15 | compatible = "renesas,r8a7740" | 15 | compatible = "renesas,r8a7740" |
16 | - RZ/G1M (R8A77430) | ||
17 | compatible = "renesas,r8a7743" | ||
16 | - R-Car M1A (R8A77781) | 18 | - R-Car M1A (R8A77781) |
17 | compatible = "renesas,r8a7778" | 19 | compatible = "renesas,r8a7778" |
18 | - R-Car H1 (R8A77790) | 20 | - R-Car H1 (R8A77790) |
@@ -35,7 +37,7 @@ SoCs: | |||
35 | 37 | ||
36 | Boards: | 38 | Boards: |
37 | 39 | ||
38 | - Alt | 40 | - Alt (RTP0RC7794SEB00010S) |
39 | compatible = "renesas,alt", "renesas,r8a7794" | 41 | compatible = "renesas,alt", "renesas,r8a7794" |
40 | - APE6-EVM | 42 | - APE6-EVM |
41 | compatible = "renesas,ape6evm", "renesas,r8a73a4" | 43 | compatible = "renesas,ape6evm", "renesas,r8a73a4" |
@@ -47,7 +49,7 @@ Boards: | |||
47 | compatible = "renesas,bockw", "renesas,r8a7778" | 49 | compatible = "renesas,bockw", "renesas,r8a7778" |
48 | - Genmai (RTK772100BC00000BR) | 50 | - Genmai (RTK772100BC00000BR) |
49 | compatible = "renesas,genmai", "renesas,r7s72100" | 51 | compatible = "renesas,genmai", "renesas,r7s72100" |
50 | - Gose | 52 | - Gose (RTP0RC7793SEB00010S) |
51 | compatible = "renesas,gose", "renesas,r8a7793" | 53 | compatible = "renesas,gose", "renesas,r8a7793" |
52 | - H3ULCB (RTP0RC7795SKB00010S) | 54 | - H3ULCB (RTP0RC7795SKB00010S) |
53 | compatible = "renesas,h3ulcb", "renesas,r8a7795"; | 55 | compatible = "renesas,h3ulcb", "renesas,r8a7795"; |
@@ -61,7 +63,7 @@ Boards: | |||
61 | compatible = "renesas,kzm9g", "renesas,sh73a0" | 63 | compatible = "renesas,kzm9g", "renesas,sh73a0" |
62 | - Lager (RTP0RC7790SEB00010S) | 64 | - Lager (RTP0RC7790SEB00010S) |
63 | compatible = "renesas,lager", "renesas,r8a7790" | 65 | compatible = "renesas,lager", "renesas,r8a7790" |
64 | - Marzen | 66 | - Marzen (R0P7779A00010S) |
65 | compatible = "renesas,marzen", "renesas,r8a7779" | 67 | compatible = "renesas,marzen", "renesas,r8a7779" |
66 | - Porter (M2-LCDP) | 68 | - Porter (M2-LCDP) |
67 | compatible = "renesas,porter", "renesas,r8a7791" | 69 | compatible = "renesas,porter", "renesas,r8a7791" |
@@ -73,5 +75,7 @@ Boards: | |||
73 | compatible = "renesas,salvator-x", "renesas,r8a7796"; | 75 | compatible = "renesas,salvator-x", "renesas,r8a7796"; |
74 | - SILK (RTP0RC7794LCB00011S) | 76 | - SILK (RTP0RC7794LCB00011S) |
75 | compatible = "renesas,silk", "renesas,r8a7794" | 77 | compatible = "renesas,silk", "renesas,r8a7794" |
78 | - SK-RZG1M (YR8A77430S000BE) | ||
79 | compatible = "renesas,sk-rzg1m", "renesas,r8a7743" | ||
76 | - Wheat | 80 | - Wheat |
77 | compatible = "renesas,wheat", "renesas,r8a7792" | 81 | compatible = "renesas,wheat", "renesas,r8a7792" |
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig index 09817bae4558..6fbd9b7d2d67 100644 --- a/arch/arm/mach-shmobile/Kconfig +++ b/arch/arm/mach-shmobile/Kconfig | |||
@@ -32,15 +32,15 @@ config ARCH_RMOBILE | |||
32 | menuconfig ARCH_RENESAS | 32 | menuconfig ARCH_RENESAS |
33 | bool "Renesas ARM SoCs" | 33 | bool "Renesas ARM SoCs" |
34 | depends on ARCH_MULTI_V7 && MMU | 34 | depends on ARCH_MULTI_V7 && MMU |
35 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE | ||
35 | select ARCH_SHMOBILE | 36 | select ARCH_SHMOBILE |
36 | select ARCH_SHMOBILE_MULTI | 37 | select ARCH_SHMOBILE_MULTI |
38 | select ARM_GIC | ||
39 | select GPIOLIB | ||
37 | select HAVE_ARM_SCU if SMP | 40 | select HAVE_ARM_SCU if SMP |
38 | select HAVE_ARM_TWD if SMP | 41 | select HAVE_ARM_TWD if SMP |
39 | select ARM_GIC | ||
40 | select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE | ||
41 | select NO_IOPORT_MAP | 42 | select NO_IOPORT_MAP |
42 | select PINCTRL | 43 | select PINCTRL |
43 | select GPIOLIB | ||
44 | select ZONE_DMA if ARM_LPAE | 44 | select ZONE_DMA if ARM_LPAE |
45 | 45 | ||
46 | if ARCH_RENESAS | 46 | if ARCH_RENESAS |
@@ -60,6 +60,7 @@ config ARCH_R7S72100 | |||
60 | config ARCH_R8A73A4 | 60 | config ARCH_R8A73A4 |
61 | bool "R-Mobile APE6 (R8A73A40)" | 61 | bool "R-Mobile APE6 (R8A73A40)" |
62 | select ARCH_RMOBILE | 62 | select ARCH_RMOBILE |
63 | select ARM_ERRATA_798181 if SMP | ||
63 | select RENESAS_IRQC | 64 | select RENESAS_IRQC |
64 | 65 | ||
65 | config ARCH_R8A7740 | 66 | config ARCH_R8A7740 |
@@ -67,6 +68,11 @@ config ARCH_R8A7740 | |||
67 | select ARCH_RMOBILE | 68 | select ARCH_RMOBILE |
68 | select RENESAS_INTC_IRQPIN | 69 | select RENESAS_INTC_IRQPIN |
69 | 70 | ||
71 | config ARCH_R8A7743 | ||
72 | bool "RZ/G1M (R8A77430)" | ||
73 | select ARCH_RCAR_GEN2 | ||
74 | select ARM_ERRATA_798181 if SMP | ||
75 | |||
70 | config ARCH_R8A7778 | 76 | config ARCH_R8A7778 |
71 | bool "R-Car M1A (R8A77781)" | 77 | bool "R-Car M1A (R8A77781)" |
72 | select ARCH_RCAR_GEN1 | 78 | select ARCH_RCAR_GEN1 |
@@ -78,20 +84,24 @@ config ARCH_R8A7779 | |||
78 | config ARCH_R8A7790 | 84 | config ARCH_R8A7790 |
79 | bool "R-Car H2 (R8A77900)" | 85 | bool "R-Car H2 (R8A77900)" |
80 | select ARCH_RCAR_GEN2 | 86 | select ARCH_RCAR_GEN2 |
87 | select ARM_ERRATA_798181 if SMP | ||
81 | select I2C | 88 | select I2C |
82 | 89 | ||
83 | config ARCH_R8A7791 | 90 | config ARCH_R8A7791 |
84 | bool "R-Car M2-W (R8A77910)" | 91 | bool "R-Car M2-W (R8A77910)" |
85 | select ARCH_RCAR_GEN2 | 92 | select ARCH_RCAR_GEN2 |
93 | select ARM_ERRATA_798181 if SMP | ||
86 | select I2C | 94 | select I2C |
87 | 95 | ||
88 | config ARCH_R8A7792 | 96 | config ARCH_R8A7792 |
89 | bool "R-Car V2H (R8A77920)" | 97 | bool "R-Car V2H (R8A77920)" |
90 | select ARCH_RCAR_GEN2 | 98 | select ARCH_RCAR_GEN2 |
99 | select ARM_ERRATA_798181 if SMP | ||
91 | 100 | ||
92 | config ARCH_R8A7793 | 101 | config ARCH_R8A7793 |
93 | bool "R-Car M2-N (R8A7793)" | 102 | bool "R-Car M2-N (R8A7793)" |
94 | select ARCH_RCAR_GEN2 | 103 | select ARCH_RCAR_GEN2 |
104 | select ARM_ERRATA_798181 if SMP | ||
95 | select I2C | 105 | select I2C |
96 | 106 | ||
97 | config ARCH_R8A7794 | 107 | config ARCH_R8A7794 |
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile index 3fc48b02eb4f..64611a1b4276 100644 --- a/arch/arm/mach-shmobile/Makefile +++ b/arch/arm/mach-shmobile/Makefile | |||
@@ -13,9 +13,6 @@ obj-$(CONFIG_ARCH_R8A7778) += setup-r8a7778.o | |||
13 | obj-$(CONFIG_ARCH_R8A7779) += setup-r8a7779.o pm-r8a7779.o | 13 | obj-$(CONFIG_ARCH_R8A7779) += setup-r8a7779.o pm-r8a7779.o |
14 | obj-$(CONFIG_ARCH_R8A7790) += setup-r8a7790.o | 14 | obj-$(CONFIG_ARCH_R8A7790) += setup-r8a7790.o |
15 | obj-$(CONFIG_ARCH_R8A7791) += setup-r8a7791.o | 15 | obj-$(CONFIG_ARCH_R8A7791) += setup-r8a7791.o |
16 | obj-$(CONFIG_ARCH_R8A7792) += setup-r8a7792.o | ||
17 | obj-$(CONFIG_ARCH_R8A7793) += setup-r8a7793.o | ||
18 | obj-$(CONFIG_ARCH_R8A7794) += setup-r8a7794.o | ||
19 | obj-$(CONFIG_ARCH_EMEV2) += setup-emev2.o | 16 | obj-$(CONFIG_ARCH_EMEV2) += setup-emev2.o |
20 | obj-$(CONFIG_ARCH_R7S72100) += setup-r7s72100.o | 17 | obj-$(CONFIG_ARCH_R7S72100) += setup-r7s72100.o |
21 | 18 | ||
diff --git a/arch/arm/mach-shmobile/setup-r8a7792.c b/arch/arm/mach-shmobile/setup-r8a7792.c deleted file mode 100644 index a0910395da09..000000000000 --- a/arch/arm/mach-shmobile/setup-r8a7792.c +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | /* | ||
2 | * r8a7792 processor support | ||
3 | * | ||
4 | * Copyright (C) 2014 Renesas Electronics Corporation | ||
5 | * Copyright (C) 2016 Cogent Embedded, Inc. | ||
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. | ||
15 | */ | ||
16 | |||
17 | #include <linux/of_platform.h> | ||
18 | |||
19 | #include <asm/mach/arch.h> | ||
20 | |||
21 | #include "common.h" | ||
22 | #include "rcar-gen2.h" | ||
23 | |||
24 | static const char * const r8a7792_boards_compat_dt[] __initconst = { | ||
25 | "renesas,r8a7792", | ||
26 | NULL, | ||
27 | }; | ||
28 | |||
29 | DT_MACHINE_START(R8A7792_DT, "Generic R8A7792 (Flattened Device Tree)") | ||
30 | .init_early = shmobile_init_delay, | ||
31 | .init_late = shmobile_init_late, | ||
32 | .init_time = rcar_gen2_timer_init, | ||
33 | .reserve = rcar_gen2_reserve, | ||
34 | .dt_compat = r8a7792_boards_compat_dt, | ||
35 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/setup-r8a7793.c b/arch/arm/mach-shmobile/setup-r8a7793.c deleted file mode 100644 index 5fce87f7f254..000000000000 --- a/arch/arm/mach-shmobile/setup-r8a7793.c +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | /* | ||
2 | * r8a7793 processor support | ||
3 | * | ||
4 | * Copyright (C) 2015 Ulrich Hecht | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; version 2 of the License. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | */ | ||
15 | |||
16 | #include <linux/init.h> | ||
17 | #include <asm/mach/arch.h> | ||
18 | |||
19 | #include "common.h" | ||
20 | #include "rcar-gen2.h" | ||
21 | |||
22 | static const char * const r8a7793_boards_compat_dt[] __initconst = { | ||
23 | "renesas,r8a7793", | ||
24 | NULL, | ||
25 | }; | ||
26 | |||
27 | DT_MACHINE_START(R8A7793_DT, "Generic R8A7793 (Flattened Device Tree)") | ||
28 | .init_early = shmobile_init_delay, | ||
29 | .init_time = rcar_gen2_timer_init, | ||
30 | .init_late = shmobile_init_late, | ||
31 | .reserve = rcar_gen2_reserve, | ||
32 | .dt_compat = r8a7793_boards_compat_dt, | ||
33 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/setup-r8a7794.c b/arch/arm/mach-shmobile/setup-r8a7794.c deleted file mode 100644 index d2b093033132..000000000000 --- a/arch/arm/mach-shmobile/setup-r8a7794.c +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | /* | ||
2 | * r8a7794 processor support | ||
3 | * | ||
4 | * Copyright (C) 2014 Renesas Electronics Corporation | ||
5 | * Copyright (C) 2014 Ulrich Hecht | ||
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. | ||
15 | */ | ||
16 | |||
17 | #include <linux/of_platform.h> | ||
18 | #include "common.h" | ||
19 | #include "rcar-gen2.h" | ||
20 | #include <asm/mach/arch.h> | ||
21 | |||
22 | static const char * const r8a7794_boards_compat_dt[] __initconst = { | ||
23 | "renesas,r8a7794", | ||
24 | NULL, | ||
25 | }; | ||
26 | |||
27 | DT_MACHINE_START(R8A7794_DT, "Generic R8A7794 (Flattened Device Tree)") | ||
28 | .init_early = shmobile_init_delay, | ||
29 | .init_late = shmobile_init_late, | ||
30 | .init_time = rcar_gen2_timer_init, | ||
31 | .reserve = rcar_gen2_reserve, | ||
32 | .dt_compat = r8a7794_boards_compat_dt, | ||
33 | MACHINE_END | ||
diff --git a/arch/arm/mach-shmobile/setup-rcar-gen2.c b/arch/arm/mach-shmobile/setup-rcar-gen2.c index afb9fdcd3d90..d6b4841e51a9 100644 --- a/arch/arm/mach-shmobile/setup-rcar-gen2.c +++ b/arch/arm/mach-shmobile/setup-rcar-gen2.c | |||
@@ -15,6 +15,7 @@ | |||
15 | * GNU General Public License for more details. | 15 | * GNU General Public License for more details. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/clk-provider.h> | ||
18 | #include <linux/clk/renesas.h> | 19 | #include <linux/clk/renesas.h> |
19 | #include <linux/clocksource.h> | 20 | #include <linux/clocksource.h> |
20 | #include <linux/device.h> | 21 | #include <linux/device.h> |
@@ -24,6 +25,7 @@ | |||
24 | #include <linux/memblock.h> | 25 | #include <linux/memblock.h> |
25 | #include <linux/of.h> | 26 | #include <linux/of.h> |
26 | #include <linux/of_fdt.h> | 27 | #include <linux/of_fdt.h> |
28 | #include <linux/of_platform.h> | ||
27 | #include <asm/mach/arch.h> | 29 | #include <asm/mach/arch.h> |
28 | #include "common.h" | 30 | #include "common.h" |
29 | #include "rcar-gen2.h" | 31 | #include "rcar-gen2.h" |
@@ -130,7 +132,15 @@ void __init rcar_gen2_timer_init(void) | |||
130 | iounmap(base); | 132 | iounmap(base); |
131 | #endif /* CONFIG_ARM_ARCH_TIMER */ | 133 | #endif /* CONFIG_ARM_ARCH_TIMER */ |
132 | 134 | ||
133 | rcar_gen2_clocks_init(mode); | 135 | if (IS_ENABLED(CONFIG_ARCH_R8A7790) || |
136 | IS_ENABLED(CONFIG_ARCH_R8A7791) || | ||
137 | IS_ENABLED(CONFIG_ARCH_R8A7792) || | ||
138 | IS_ENABLED(CONFIG_ARCH_R8A7793) || | ||
139 | IS_ENABLED(CONFIG_ARCH_R8A7794)) | ||
140 | rcar_gen2_clocks_init(mode); | ||
141 | else | ||
142 | of_clk_init(NULL); | ||
143 | |||
134 | clocksource_probe(); | 144 | clocksource_probe(); |
135 | } | 145 | } |
136 | 146 | ||
@@ -203,3 +213,35 @@ void __init rcar_gen2_reserve(void) | |||
203 | } | 213 | } |
204 | #endif | 214 | #endif |
205 | } | 215 | } |
216 | |||
217 | static const char * const rcar_gen2_boards_compat_dt[] __initconst = { | ||
218 | /* | ||
219 | * R8A7790 and R8A7791 can't be handled here as long as they need SMP | ||
220 | * initialization fallback. | ||
221 | */ | ||
222 | "renesas,r8a7792", | ||
223 | "renesas,r8a7793", | ||
224 | "renesas,r8a7794", | ||
225 | NULL, | ||
226 | }; | ||
227 | |||
228 | DT_MACHINE_START(RCAR_GEN2_DT, "Generic R-Car Gen2 (Flattened Device Tree)") | ||
229 | .init_early = shmobile_init_delay, | ||
230 | .init_late = shmobile_init_late, | ||
231 | .init_time = rcar_gen2_timer_init, | ||
232 | .reserve = rcar_gen2_reserve, | ||
233 | .dt_compat = rcar_gen2_boards_compat_dt, | ||
234 | MACHINE_END | ||
235 | |||
236 | static const char * const rz_g1_boards_compat_dt[] __initconst = { | ||
237 | "renesas,r8a7743", | ||
238 | NULL, | ||
239 | }; | ||
240 | |||
241 | DT_MACHINE_START(RZ_G1_DT, "Generic RZ/G1 (Flattened Device Tree)") | ||
242 | .init_early = shmobile_init_delay, | ||
243 | .init_late = shmobile_init_late, | ||
244 | .init_time = rcar_gen2_timer_init, | ||
245 | .reserve = rcar_gen2_reserve, | ||
246 | .dt_compat = rz_g1_boards_compat_dt, | ||
247 | MACHINE_END | ||