aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2014-07-19 00:39:29 -0400
committerOlof Johansson <olof@lixom.net>2014-07-19 00:39:29 -0400
commitc6ffdc07411d982972fce6b4bfbd1c8b96990a48 (patch)
treeb2b9758f79f560f08c28b2969ff6cfed44051f78
parentdc8fbed5d9cc169ce0d50e2003416a43dda45ba6 (diff)
parent700ce7c2bb2a4963472d95eba1436d6b0945918e (diff)
Merge tag 'renesas-dt3-for-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt
Merge "Third Round of Renesas ARM Based SoC DT Updates for v3.17" from Simon Horman: * Initialise SCI using DT when booting the kzm9g, armadillo800eva, ape6evm and bockw boards without legacy-C code. * tag 'renesas-dt3-for-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (24 commits) ARM: shmobile: kzm9g-reference: Initialise SCIF device using DT ARM: shmobile: sh73a0: Add SCIF nodes ARM: shmobile: armadillo800eva-reference: Initialise SCIF device using DT ARM: shmobile: r8a7740: Add SCIF nodes ARM: shmobile: ape6evm-reference: Initialise SCIF device using DT ARM: shmobile: r8a73a4: Add SCIF nodes ARM: shmobile: bockw-reference: Initialise SCIF device using DT ARM: shmobile: r8a7778: Add SCIF nodes ARM: shmobile: sh73a0: add SCI clock support for DT ARM: shmobile: r8a7740: correct SCI clock support for DT ARM: shmobile: r8a73a4: add SCI clock support for DT ARM: shmobile: r8a7778: add SCI clock support for DT ARM: shmobile: r8a7790: lager: use iic cores instead of i2c ARM: shmobile: Lager: Correct I2C bus for VDD MPU regulator ARM: shmobile: kzm9g-reference: Remove early_printk from command line ARM: shmobile: armadillo800eva-reference: Remove early_printk from command line ARM: shmobile: r8a7779: Consistently use tabs for indentation ARM: shmobile: henninger: Consistently use tabs for indentation ARM: shmobile: henninger: enable internal PCI ARM: shmobile: koelsch: enable internal PCI ... Signed-off-by: Olof Johansson <olof@lixom.net>
-rw-r--r--arch/arm/boot/dts/r7s72100-genmai.dts10
-rw-r--r--arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts14
-rw-r--r--arch/arm/boot/dts/r8a73a4.dtsi42
-rw-r--r--arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts16
-rw-r--r--arch/arm/boot/dts/r8a7740.dtsi63
-rw-r--r--arch/arm/boot/dts/r8a7778-bockw-reference.dts14
-rw-r--r--arch/arm/boot/dts/r8a7778.dtsi42
-rw-r--r--arch/arm/boot/dts/r8a7779.dtsi14
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts32
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi12
-rw-r--r--arch/arm/boot/dts/r8a7791-henninger.dts24
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts22
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi40
-rw-r--r--arch/arm/boot/dts/sh73a0-kzm9g-reference.dts16
-rw-r--r--arch/arm/boot/dts/sh73a0.dtsi72
-rw-r--r--arch/arm/mach-shmobile/clock-r8a73a4.c6
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7740.c18
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7778.c6
-rw-r--r--arch/arm/mach-shmobile/clock-sh73a0.c9
-rw-r--r--arch/arm/mach-shmobile/setup-r8a73a4.c12
-rw-r--r--arch/arm/mach-shmobile/setup-r8a7740.c8
-rw-r--r--arch/arm/mach-shmobile/setup-r8a7778.c12
-rw-r--r--arch/arm/mach-shmobile/setup-sh73a0.c8
-rw-r--r--arch/arm/mach-shmobile/timer.c50
24 files changed, 468 insertions, 94 deletions
diff --git a/arch/arm/boot/dts/r7s72100-genmai.dts b/arch/arm/boot/dts/r7s72100-genmai.dts
index 56849b55e1c2..20705467f4c9 100644
--- a/arch/arm/boot/dts/r7s72100-genmai.dts
+++ b/arch/arm/boot/dts/r7s72100-genmai.dts
@@ -57,3 +57,13 @@
57&scif2 { 57&scif2 {
58 status = "okay"; 58 status = "okay";
59}; 59};
60
61&spi4 {
62 status = "okay";
63
64 codec: codec@0 {
65 compatible = "wlf,wm8978";
66 reg = <0>;
67 spi-max-frequency = <5000000>;
68 };
69};
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts b/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts
index 70b1fff8f4a3..a860f32bca27 100644
--- a/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts
+++ b/arch/arm/boot/dts/r8a73a4-ape6evm-reference.dts
@@ -16,6 +16,10 @@
16 model = "APE6EVM"; 16 model = "APE6EVM";
17 compatible = "renesas,ape6evm-reference", "renesas,r8a73a4"; 17 compatible = "renesas,ape6evm-reference", "renesas,r8a73a4";
18 18
19 aliases {
20 serial0 = &scifa0;
21 };
22
19 chosen { 23 chosen {
20 bootargs = "console=ttySC0,115200 ignore_loglevel rw"; 24 bootargs = "console=ttySC0,115200 ignore_loglevel rw";
21 }; 25 };
@@ -90,9 +94,6 @@
90}; 94};
91 95
92&pfc { 96&pfc {
93 pinctrl-0 = <&scifa0_pins>;
94 pinctrl-names = "default";
95
96 scifa0_pins: serial0 { 97 scifa0_pins: serial0 {
97 renesas,groups = "scifa0_data"; 98 renesas,groups = "scifa0_data";
98 renesas,function = "scifa0"; 99 renesas,function = "scifa0";
@@ -123,6 +124,13 @@
123 status = "okay"; 124 status = "okay";
124}; 125};
125 126
127&scifa0 {
128 pinctrl-0 = <&scifa0_pins>;
129 pinctrl-names = "default";
130
131 status = "okay";
132};
133
126&sdhi0 { 134&sdhi0 {
127 vmmc-supply = <&vcc_sdhi0>; 135 vmmc-supply = <&vcc_sdhi0>;
128 bus-width = <4>; 136 bus-width = <4>;
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index 82c5ac825386..d8ec5058c351 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -252,6 +252,48 @@
252 status = "disabled"; 252 status = "disabled";
253 }; 253 };
254 254
255 scifa0: serial@e6c40000 {
256 compatible = "renesas,scifa-r8a73a4", "renesas,scifa";
257 reg = <0 0xe6c40000 0 0x100>;
258 interrupts = <0 144 IRQ_TYPE_LEVEL_HIGH>;
259 status = "disabled";
260 };
261
262 scifa1: serial@e6c50000 {
263 compatible = "renesas,scifa-r8a73a4", "renesas,scifa";
264 reg = <0 0xe6c50000 0 0x100>;
265 interrupts = <0 145 IRQ_TYPE_LEVEL_HIGH>;
266 status = "disabled";
267 };
268
269 scifb2: serial@e6c20000 {
270 compatible = "renesas,scifb-r8a73a4", "renesas,scifb";
271 reg = <0 0xe6c20000 0 0x100>;
272 interrupts = <0 148 IRQ_TYPE_LEVEL_HIGH>;
273 status = "disabled";
274 };
275
276 scifb3: serial@e6c30000 {
277 compatible = "renesas,scifb-r8a73a4", "renesas,scifb";
278 reg = <0 0xe6c30000 0 0x100>;
279 interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH>;
280 status = "disabled";
281 };
282
283 scifb4: serial@e6ce0000 {
284 compatible = "renesas,scifb-r8a73a4", "renesas,scifb";
285 reg = <0 0xe6ce0000 0 0x100>;
286 interrupts = <0 150 IRQ_TYPE_LEVEL_HIGH>;
287 status = "disabled";
288 };
289
290 scifb5: serial@e6cf0000 {
291 compatible = "renesas,scifb-r8a73a4", "renesas,scifb";
292 reg = <0 0xe6cf0000 0 0x100>;
293 interrupts = <0 151 IRQ_TYPE_LEVEL_HIGH>;
294 status = "disabled";
295 };
296
255 mmcif0: mmc@ee200000 { 297 mmcif0: mmc@ee200000 {
256 compatible = "renesas,sh-mmcif"; 298 compatible = "renesas,sh-mmcif";
257 reg = <0 0xee200000 0 0x80>; 299 reg = <0 0xee200000 0 0x80>;
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
index f6ef73ff49e8..ee9e7d5c97a9 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva-reference.dts
@@ -19,8 +19,12 @@
19 model = "armadillo 800 eva reference"; 19 model = "armadillo 800 eva reference";
20 compatible = "renesas,armadillo800eva-reference", "renesas,r8a7740"; 20 compatible = "renesas,armadillo800eva-reference", "renesas,r8a7740";
21 21
22 aliases {
23 serial1 = &scifa1;
24 };
25
22 chosen { 26 chosen {
23 bootargs = "console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw"; 27 bootargs = "console=tty0 console=ttySC1,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw";
24 }; 28 };
25 29
26 memory { 30 memory {
@@ -202,9 +206,6 @@
202}; 206};
203 207
204&pfc { 208&pfc {
205 pinctrl-0 = <&scifa1_pins>;
206 pinctrl-names = "default";
207
208 ether_pins: ether { 209 ether_pins: ether {
209 renesas,groups = "gether_mii", "gether_int"; 210 renesas,groups = "gether_mii", "gether_int";
210 renesas,function = "gether"; 211 renesas,function = "gether";
@@ -256,6 +257,13 @@
256 status = "okay"; 257 status = "okay";
257}; 258};
258 259
260&scifa1 {
261 pinctrl-0 = <&scifa1_pins>;
262 pinctrl-names = "default";
263
264 status = "okay";
265};
266
259&sdhi0 { 267&sdhi0 {
260 pinctrl-0 = <&sdhi0_pins>; 268 pinctrl-0 = <&sdhi0_pins>;
261 pinctrl-names = "default"; 269 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi
index 55d29f4d2ed6..bda18fb3d9e5 100644
--- a/arch/arm/boot/dts/r8a7740.dtsi
+++ b/arch/arm/boot/dts/r8a7740.dtsi
@@ -156,6 +156,69 @@
156 status = "disabled"; 156 status = "disabled";
157 }; 157 };
158 158
159 scifa0: serial@e6c40000 {
160 compatible = "renesas,scifa-r8a7740", "renesas,scifa";
161 reg = <0xe6c40000 0x100>;
162 interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
163 status = "disabled";
164 };
165
166 scifa1: serial@e6c50000 {
167 compatible = "renesas,scifa-r8a7740", "renesas,scifa";
168 reg = <0xe6c50000 0x100>;
169 interrupts = <0 101 IRQ_TYPE_LEVEL_HIGH>;
170 status = "disabled";
171 };
172
173 scifa2: serial@e6c60000 {
174 compatible = "renesas,scifa-r8a7740", "renesas,scifa";
175 reg = <0xe6c60000 0x100>;
176 interrupts = <0 102 IRQ_TYPE_LEVEL_HIGH>;
177 status = "disabled";
178 };
179
180 scifa3: serial@e6c70000 {
181 compatible = "renesas,scifa-r8a7740", "renesas,scifa";
182 reg = <0xe6c70000 0x100>;
183 interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>;
184 status = "disabled";
185 };
186
187 scifa4: serial@e6c80000 {
188 compatible = "renesas,scifa-r8a7740", "renesas,scifa";
189 reg = <0xe6c80000 0x100>;
190 interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH>;
191 status = "disabled";
192 };
193
194 scifa5: serial@e6cb0000 {
195 compatible = "renesas,scifa-r8a7740", "renesas,scifa";
196 reg = <0xe6cb0000 0x100>;
197 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
198 status = "disabled";
199 };
200
201 scifa6: serial@e6cc0000 {
202 compatible = "renesas,scifa-r8a7740", "renesas,scifa";
203 reg = <0xe6cc0000 0x100>;
204 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
205 status = "disabled";
206 };
207
208 scifa7: serial@e6cd0000 {
209 compatible = "renesas,scifa-r8a7740", "renesas,scifa";
210 reg = <0xe6cd0000 0x100>;
211 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
212 status = "disabled";
213 };
214
215 scifb8: serial@e6c30000 {
216 compatible = "renesas,scifb-r8a7740", "renesas,scifb";
217 reg = <0xe6c30000 0x100>;
218 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
219 status = "disabled";
220 };
221
159 pfc: pfc@e6050000 { 222 pfc: pfc@e6050000 {
160 compatible = "renesas,pfc-r8a7740"; 223 compatible = "renesas,pfc-r8a7740";
161 reg = <0xe6050000 0x8000>, 224 reg = <0xe6050000 0x8000>,
diff --git a/arch/arm/boot/dts/r8a7778-bockw-reference.dts b/arch/arm/boot/dts/r8a7778-bockw-reference.dts
index f76f6ec01e19..3342c74c5de8 100644
--- a/arch/arm/boot/dts/r8a7778-bockw-reference.dts
+++ b/arch/arm/boot/dts/r8a7778-bockw-reference.dts
@@ -23,6 +23,10 @@
23 model = "bockw"; 23 model = "bockw";
24 compatible = "renesas,bockw-reference", "renesas,r8a7778"; 24 compatible = "renesas,bockw-reference", "renesas,r8a7778";
25 25
26 aliases {
27 serial0 = &scif0;
28 };
29
26 chosen { 30 chosen {
27 bootargs = "console=ttySC0,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw"; 31 bootargs = "console=ttySC0,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw";
28 }; 32 };
@@ -70,9 +74,6 @@
70}; 74};
71 75
72&pfc { 76&pfc {
73 pinctrl-0 = <&scif0_pins>;
74 pinctrl-names = "default";
75
76 scif0_pins: serial0 { 77 scif0_pins: serial0 {
77 renesas,groups = "scif0_data_a", "scif0_ctrl"; 78 renesas,groups = "scif0_data_a", "scif0_ctrl";
78 renesas,function = "scif0"; 79 renesas,function = "scif0";
@@ -124,3 +125,10 @@
124 }; 125 };
125 }; 126 };
126}; 127};
128
129&scif0 {
130 pinctrl-0 = <&scif0_pins>;
131 pinctrl-names = "default";
132
133 status = "okay";
134};
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi
index 3af0a2187493..ecfdf4b01b5a 100644
--- a/arch/arm/boot/dts/r8a7778.dtsi
+++ b/arch/arm/boot/dts/r8a7778.dtsi
@@ -156,6 +156,48 @@
156 status = "disabled"; 156 status = "disabled";
157 }; 157 };
158 158
159 scif0: serial@ffe40000 {
160 compatible = "renesas,scif-r8a7778", "renesas,scif";
161 reg = <0xffe40000 0x100>;
162 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>;
163 status = "disabled";
164 };
165
166 scif1: serial@ffe41000 {
167 compatible = "renesas,scif-r8a7778", "renesas,scif";
168 reg = <0xffe41000 0x100>;
169 interrupts = <0 71 IRQ_TYPE_LEVEL_HIGH>;
170 status = "disabled";
171 };
172
173 scif2: serial@ffe42000 {
174 compatible = "renesas,scif-r8a7778", "renesas,scif";
175 reg = <0xffe42000 0x100>;
176 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>;
177 status = "disabled";
178 };
179
180 scif3: serial@ffe43000 {
181 compatible = "renesas,scif-r8a7778", "renesas,scif";
182 reg = <0xffe43000 0x100>;
183 interrupts = <0 73 IRQ_TYPE_LEVEL_HIGH>;
184 status = "disabled";
185 };
186
187 scif4: serial@ffe44000 {
188 compatible = "renesas,scif-r8a7778", "renesas,scif";
189 reg = <0xffe44000 0x100>;
190 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>;
191 status = "disabled";
192 };
193
194 scif5: serial@ffe45000 {
195 compatible = "renesas,scif-r8a7778", "renesas,scif";
196 reg = <0xffe45000 0x100>;
197 interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>;
198 status = "disabled";
199 };
200
159 mmcif: mmc@ffe4e000 { 201 mmcif: mmc@ffe4e000 {
160 compatible = "renesas,sh-mmcif"; 202 compatible = "renesas,sh-mmcif";
161 reg = <0xffe4e000 0x100>; 203 reg = <0xffe4e000 0x100>;
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
index b517c8e6b420..13bf08ac6011 100644
--- a/arch/arm/boot/dts/r8a7779.dtsi
+++ b/arch/arm/boot/dts/r8a7779.dtsi
@@ -49,13 +49,13 @@
49 spi2 = &hspi2; 49 spi2 = &hspi2;
50 }; 50 };
51 51
52 gic: interrupt-controller@f0001000 { 52 gic: interrupt-controller@f0001000 {
53 compatible = "arm,cortex-a9-gic"; 53 compatible = "arm,cortex-a9-gic";
54 #interrupt-cells = <3>; 54 #interrupt-cells = <3>;
55 interrupt-controller; 55 interrupt-controller;
56 reg = <0xf0001000 0x1000>, 56 reg = <0xf0001000 0x1000>,
57 <0xf0000100 0x100>; 57 <0xf0000100 0x100>;
58 }; 58 };
59 59
60 gpio0: gpio@ffc40000 { 60 gpio0: gpio@ffc40000 {
61 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar"; 61 compatible = "renesas,gpio-r8a7779", "renesas,gpio-rcar";
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index 544202bab9fa..856b4236b674 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -205,19 +205,19 @@
205 renesas,function = "msiof1"; 205 renesas,function = "msiof1";
206 }; 206 };
207 207
208 i2c1_pins: i2c1 { 208 iic1_pins: iic1 {
209 renesas,groups = "i2c1"; 209 renesas,groups = "iic1";
210 renesas,function = "i2c1"; 210 renesas,function = "iic1";
211 }; 211 };
212 212
213 i2c2_pins: i2c2 { 213 iic2_pins: iic2 {
214 renesas,groups = "i2c2"; 214 renesas,groups = "iic2";
215 renesas,function = "i2c2"; 215 renesas,function = "iic2";
216 }; 216 };
217 217
218 i2c3_pins: i2c3 { 218 iic3_pins: iic3 {
219 renesas,groups = "i2c3"; 219 renesas,groups = "iic3";
220 renesas,function = "i2c3"; 220 renesas,function = "iic3";
221 }; 221 };
222 222
223 usb0_pins: usb0 { 223 usb0_pins: usb0 {
@@ -352,25 +352,25 @@
352 cpu0-supply = <&vdd_dvfs>; 352 cpu0-supply = <&vdd_dvfs>;
353}; 353};
354 354
355&i2c0 { 355&iic0 {
356 status = "ok"; 356 status = "ok";
357}; 357};
358 358
359&i2c1 { 359&iic1 {
360 status = "ok"; 360 status = "ok";
361 pinctrl-0 = <&i2c1_pins>; 361 pinctrl-0 = <&iic1_pins>;
362 pinctrl-names = "default"; 362 pinctrl-names = "default";
363}; 363};
364 364
365&i2c2 { 365&iic2 {
366 status = "ok"; 366 status = "ok";
367 pinctrl-0 = <&i2c2_pins>; 367 pinctrl-0 = <&iic2_pins>;
368 pinctrl-names = "default"; 368 pinctrl-names = "default";
369}; 369};
370 370
371&i2c3 { 371&iic3 {
372 pinctrl-names = "default"; 372 pinctrl-names = "default";
373 pinctrl-0 = <&i2c3_pins>; 373 pinctrl-0 = <&iic3_pins>;
374 status = "okay"; 374 status = "okay";
375 375
376 vdd_dvfs: regulator@68 { 376 vdd_dvfs: regulator@68 {
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index bdcb7f08fcc5..d9ddecbb859c 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -946,8 +946,8 @@
946 ranges = <0x02000000 0 0xee080000 0 0xee080000 0 0x00010000>; 946 ranges = <0x02000000 0 0xee080000 0 0xee080000 0 0x00010000>;
947 interrupt-map-mask = <0xff00 0 0 0x7>; 947 interrupt-map-mask = <0xff00 0 0 0x7>;
948 interrupt-map = <0x0000 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH 948 interrupt-map = <0x0000 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH
949 0x0800 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH 949 0x0800 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH
950 0x1000 0 0 2 &gic 0 108 IRQ_TYPE_LEVEL_HIGH>; 950 0x1000 0 0 2 &gic 0 108 IRQ_TYPE_LEVEL_HIGH>;
951 }; 951 };
952 952
953 pci1: pci@ee0b0000 { 953 pci1: pci@ee0b0000 {
@@ -966,8 +966,8 @@
966 ranges = <0x02000000 0 0xee0a0000 0 0xee0a0000 0 0x00010000>; 966 ranges = <0x02000000 0 0xee0a0000 0 0xee0a0000 0 0x00010000>;
967 interrupt-map-mask = <0xff00 0 0 0x7>; 967 interrupt-map-mask = <0xff00 0 0 0x7>;
968 interrupt-map = <0x0000 0 0 1 &gic 0 112 IRQ_TYPE_LEVEL_HIGH 968 interrupt-map = <0x0000 0 0 1 &gic 0 112 IRQ_TYPE_LEVEL_HIGH
969 0x0800 0 0 1 &gic 0 112 IRQ_TYPE_LEVEL_HIGH 969 0x0800 0 0 1 &gic 0 112 IRQ_TYPE_LEVEL_HIGH
970 0x1000 0 0 2 &gic 0 112 IRQ_TYPE_LEVEL_HIGH>; 970 0x1000 0 0 2 &gic 0 112 IRQ_TYPE_LEVEL_HIGH>;
971 }; 971 };
972 972
973 pci2: pci@ee0d0000 { 973 pci2: pci@ee0d0000 {
@@ -986,8 +986,8 @@
986 ranges = <0x02000000 0 0xee0c0000 0 0xee0c0000 0 0x00010000>; 986 ranges = <0x02000000 0 0xee0c0000 0 0xee0c0000 0 0x00010000>;
987 interrupt-map-mask = <0xff00 0 0 0x7>; 987 interrupt-map-mask = <0xff00 0 0 0x7>;
988 interrupt-map = <0x0000 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH 988 interrupt-map = <0x0000 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH
989 0x0800 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH 989 0x0800 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH
990 0x1000 0 0 2 &gic 0 113 IRQ_TYPE_LEVEL_HIGH>; 990 0x1000 0 0 2 &gic 0 113 IRQ_TYPE_LEVEL_HIGH>;
991 }; 991 };
992 992
993 pciec: pcie@fe000000 { 993 pciec: pcie@fe000000 {
diff --git a/arch/arm/boot/dts/r8a7791-henninger.dts b/arch/arm/boot/dts/r8a7791-henninger.dts
index bc48bccfff54..3a2ef0a2a137 100644
--- a/arch/arm/boot/dts/r8a7791-henninger.dts
+++ b/arch/arm/boot/dts/r8a7791-henninger.dts
@@ -125,6 +125,16 @@
125 "msiof0_tx"; 125 "msiof0_tx";
126 renesas,function = "msiof0"; 126 renesas,function = "msiof0";
127 }; 127 };
128
129 usb0_pins: usb0 {
130 renesas,groups = "usb0";
131 renesas,function = "usb0";
132 };
133
134 usb1_pins: usb1 {
135 renesas,groups = "usb1";
136 renesas,function = "usb1";
137 };
128}; 138};
129 139
130&scif0 { 140&scif0 {
@@ -151,7 +161,7 @@
151}; 161};
152 162
153&sata0 { 163&sata0 {
154 status = "okay"; 164 status = "okay";
155}; 165};
156 166
157&sdhi0 { 167&sdhi0 {
@@ -231,6 +241,18 @@
231 }; 241 };
232}; 242};
233 243
244&pci0 {
245 status = "okay";
246 pinctrl-0 = <&usb0_pins>;
247 pinctrl-names = "default";
248};
249
250&pci1 {
251 status = "okay";
252 pinctrl-0 = <&usb1_pins>;
253 pinctrl-names = "default";
254};
255
234&pcie_bus_clk { 256&pcie_bus_clk {
235 status = "okay"; 257 status = "okay";
236}; 258};
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index 5dac67395525..23486c081a69 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -279,6 +279,16 @@
279 renesas,groups = "i2c6"; 279 renesas,groups = "i2c6";
280 renesas,function = "i2c6"; 280 renesas,function = "i2c6";
281 }; 281 };
282
283 usb0_pins: usb0 {
284 renesas,groups = "usb0";
285 renesas,function = "usb0";
286 };
287
288 usb1_pins: usb1 {
289 renesas,groups = "usb1";
290 renesas,function = "usb1";
291 };
282}; 292};
283 293
284&ether { 294&ether {
@@ -426,6 +436,18 @@
426 }; 436 };
427}; 437};
428 438
439&pci0 {
440 status = "okay";
441 pinctrl-0 = <&usb0_pins>;
442 pinctrl-names = "default";
443};
444
445&pci1 {
446 status = "okay";
447 pinctrl-0 = <&usb1_pins>;
448 pinctrl-names = "default";
449};
450
429&pcie_bus_clk { 451&pcie_bus_clk {
430 status = "okay"; 452 status = "okay";
431}; 453};
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index 336a6c03b510..6e9a556e1509 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -961,6 +961,46 @@
961 status = "disabled"; 961 status = "disabled";
962 }; 962 };
963 963
964 pci0: pci@ee090000 {
965 compatible = "renesas,pci-r8a7791";
966 device_type = "pci";
967 clocks = <&mstp7_clks R8A7791_CLK_EHCI>;
968 reg = <0 0xee090000 0 0xc00>,
969 <0 0xee080000 0 0x1100>;
970 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
971 status = "disabled";
972
973 bus-range = <0 0>;
974 #address-cells = <3>;
975 #size-cells = <2>;
976 #interrupt-cells = <1>;
977 ranges = <0x02000000 0 0xee080000 0 0xee080000 0 0x00010000>;
978 interrupt-map-mask = <0xff00 0 0 0x7>;
979 interrupt-map = <0x0000 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH
980 0x0800 0 0 1 &gic 0 108 IRQ_TYPE_LEVEL_HIGH
981 0x1000 0 0 2 &gic 0 108 IRQ_TYPE_LEVEL_HIGH>;
982 };
983
984 pci1: pci@ee0d0000 {
985 compatible = "renesas,pci-r8a7791";
986 device_type = "pci";
987 clocks = <&mstp7_clks R8A7791_CLK_EHCI>;
988 reg = <0 0xee0d0000 0 0xc00>,
989 <0 0xee0c0000 0 0x1100>;
990 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
991 status = "disabled";
992
993 bus-range = <1 1>;
994 #address-cells = <3>;
995 #size-cells = <2>;
996 #interrupt-cells = <1>;
997 ranges = <0x02000000 0 0xee0c0000 0 0xee0c0000 0 0x00010000>;
998 interrupt-map-mask = <0xff00 0 0 0x7>;
999 interrupt-map = <0x0000 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH
1000 0x0800 0 0 1 &gic 0 113 IRQ_TYPE_LEVEL_HIGH
1001 0x1000 0 0 2 &gic 0 113 IRQ_TYPE_LEVEL_HIGH>;
1002 };
1003
964 pciec: pcie@fe000000 { 1004 pciec: pcie@fe000000 {
965 compatible = "renesas,pcie-r8a7791"; 1005 compatible = "renesas,pcie-r8a7791";
966 reg = <0 0xfe000000 0 0x80000>; 1006 reg = <0 0xfe000000 0 0x80000>;
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
index a99171c8a782..18662aec2ec4 100644
--- a/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
+++ b/arch/arm/boot/dts/sh73a0-kzm9g-reference.dts
@@ -21,6 +21,10 @@
21 model = "KZM-A9-GT"; 21 model = "KZM-A9-GT";
22 compatible = "renesas,kzm9g-reference", "renesas,sh73a0"; 22 compatible = "renesas,kzm9g-reference", "renesas,sh73a0";
23 23
24 aliases {
25 serial4 = &scifa4;
26 };
27
24 cpus { 28 cpus {
25 cpu@0 { 29 cpu@0 {
26 cpu0-supply = <&vdd_dvfs>; 30 cpu0-supply = <&vdd_dvfs>;
@@ -35,7 +39,7 @@
35 }; 39 };
36 40
37 chosen { 41 chosen {
38 bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel earlyprintk=sh-sci.4,115200 rw"; 42 bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel rw";
39 }; 43 };
40 44
41 memory { 45 memory {
@@ -276,9 +280,6 @@
276}; 280};
277 281
278&pfc { 282&pfc {
279 pinctrl-0 = <&scifa4_pins>;
280 pinctrl-names = "default";
281
282 i2c3_pins: i2c3 { 283 i2c3_pins: i2c3 {
283 renesas,groups = "i2c3_1"; 284 renesas,groups = "i2c3_1";
284 renesas,function = "i2c3"; 285 renesas,function = "i2c3";
@@ -318,6 +319,13 @@
318 }; 319 };
319}; 320};
320 321
322&scifa4 {
323 pinctrl-0 = <&scifa4_pins>;
324 pinctrl-names = "default";
325
326 status = "okay";
327};
328
321&sdhi0 { 329&sdhi0 {
322 pinctrl-0 = <&sdhi0_pins>; 330 pinctrl-0 = <&sdhi0_pins>;
323 pinctrl-names = "default"; 331 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi
index 5ecf552e1c00..910b79079d5a 100644
--- a/arch/arm/boot/dts/sh73a0.dtsi
+++ b/arch/arm/boot/dts/sh73a0.dtsi
@@ -235,6 +235,78 @@
235 status = "disabled"; 235 status = "disabled";
236 }; 236 };
237 237
238 scifa0: serial@e6c40000 {
239 compatible = "renesas,scifa-sh73a0", "renesas,scifa";
240 reg = <0xe6c40000 0x100>;
241 interrupt-parent = <&gic>;
242 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>;
243 status = "disabled";
244 };
245
246 scifa1: serial@e6c50000 {
247 compatible = "renesas,scifa-sh73a0", "renesas,scifa";
248 reg = <0xe6c50000 0x100>;
249 interrupt-parent = <&gic>;
250 interrupts = <0 73 IRQ_TYPE_LEVEL_HIGH>;
251 status = "disabled";
252 };
253
254 scifa2: serial@e6c60000 {
255 compatible = "renesas,scifa-sh73a0", "renesas,scifa";
256 reg = <0xe6c60000 0x100>;
257 interrupt-parent = <&gic>;
258 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>;
259 status = "disabled";
260 };
261
262 scifa3: serial@e6c70000 {
263 compatible = "renesas,scifa-sh73a0", "renesas,scifa";
264 reg = <0xe6c70000 0x100>;
265 interrupt-parent = <&gic>;
266 interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>;
267 status = "disabled";
268 };
269
270 scifa4: serial@e6c80000 {
271 compatible = "renesas,scifa-sh73a0", "renesas,scifa";
272 reg = <0xe6c80000 0x100>;
273 interrupt-parent = <&gic>;
274 interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>;
275 status = "disabled";
276 };
277
278 scifa5: serial@e6cb0000 {
279 compatible = "renesas,scifa-sh73a0", "renesas,scifa";
280 reg = <0xe6cb0000 0x100>;
281 interrupt-parent = <&gic>;
282 interrupts = <0 79 IRQ_TYPE_LEVEL_HIGH>;
283 status = "disabled";
284 };
285
286 scifa6: serial@e6cc0000 {
287 compatible = "renesas,scifa-sh73a0", "renesas,scifa";
288 reg = <0xe6cc0000 0x100>;
289 interrupt-parent = <&gic>;
290 interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>;
291 status = "disabled";
292 };
293
294 scifa7: serial@e6cd0000 {
295 compatible = "renesas,scifa-sh73a0", "renesas,scifa";
296 reg = <0xe6cd0000 0x100>;
297 interrupt-parent = <&gic>;
298 interrupts = <0 143 IRQ_TYPE_LEVEL_HIGH>;
299 status = "disabled";
300 };
301
302 scifb8: serial@e6c30000 {
303 compatible = "renesas,scifb-sh73a0", "renesas,scifb";
304 reg = <0xe6c30000 0x100>;
305 interrupt-parent = <&gic>;
306 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
307 status = "disabled";
308 };
309
238 pfc: pfc@e6050000 { 310 pfc: pfc@e6050000 {
239 compatible = "renesas,pfc-sh73a0"; 311 compatible = "renesas,pfc-sh73a0";
240 reg = <0xe6050000 0x8000>, 312 reg = <0xe6050000 0x8000>,
diff --git a/arch/arm/mach-shmobile/clock-r8a73a4.c b/arch/arm/mach-shmobile/clock-r8a73a4.c
index b5bc22c6a858..1d2fe056fa20 100644
--- a/arch/arm/mach-shmobile/clock-r8a73a4.c
+++ b/arch/arm/mach-shmobile/clock-r8a73a4.c
@@ -574,11 +574,17 @@ static struct clk_lookup lookups[] = {
574 574
575 /* MSTP */ 575 /* MSTP */
576 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), 576 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]),
577 CLKDEV_DEV_ID("e6c40000.serial", &mstp_clks[MSTP204]),
577 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]), 578 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]),
579 CLKDEV_DEV_ID("e6c50000.serial", &mstp_clks[MSTP203]),
578 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP206]), 580 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP206]),
581 CLKDEV_DEV_ID("e6c20000.serial", &mstp_clks[MSTP206]),
579 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP207]), 582 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP207]),
583 CLKDEV_DEV_ID("e6c30000.serial", &mstp_clks[MSTP207]),
580 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP216]), 584 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP216]),
585 CLKDEV_DEV_ID("e6ce0000.serial", &mstp_clks[MSTP216]),
581 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP217]), 586 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP217]),
587 CLKDEV_DEV_ID("e6cf0000.serial", &mstp_clks[MSTP217]),
582 CLKDEV_DEV_ID("sh-dma-engine.0", &mstp_clks[MSTP218]), 588 CLKDEV_DEV_ID("sh-dma-engine.0", &mstp_clks[MSTP218]),
583 CLKDEV_DEV_ID("e6700020.dma-controller", &mstp_clks[MSTP218]), 589 CLKDEV_DEV_ID("e6700020.dma-controller", &mstp_clks[MSTP218]),
584 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), 590 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]),
diff --git a/arch/arm/mach-shmobile/clock-r8a7740.c b/arch/arm/mach-shmobile/clock-r8a7740.c
index 50931e3c97c7..68592b7109f7 100644
--- a/arch/arm/mach-shmobile/clock-r8a7740.c
+++ b/arch/arm/mach-shmobile/clock-r8a7740.c
@@ -555,27 +555,27 @@ static struct clk_lookup lookups[] = {
555 CLKDEV_DEV_ID("sh_mobile_ceu.1", &mstp_clks[MSTP128]), 555 CLKDEV_DEV_ID("sh_mobile_ceu.1", &mstp_clks[MSTP128]),
556 556
557 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP200]), 557 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP200]),
558 CLKDEV_DEV_ID("e6c80000.sci", &mstp_clks[MSTP200]), 558 CLKDEV_DEV_ID("e6c80000.serial", &mstp_clks[MSTP200]),
559 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP201]), 559 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP201]),
560 CLKDEV_DEV_ID("e6c70000.sci", &mstp_clks[MSTP201]), 560 CLKDEV_DEV_ID("e6c70000.serial", &mstp_clks[MSTP201]),
561 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP202]), 561 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP202]),
562 CLKDEV_DEV_ID("e6c60000.sci", &mstp_clks[MSTP202]), 562 CLKDEV_DEV_ID("e6c60000.serial", &mstp_clks[MSTP202]),
563 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]), 563 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]),
564 CLKDEV_DEV_ID("e6c50000.sci", &mstp_clks[MSTP203]), 564 CLKDEV_DEV_ID("e6c50000.serial", &mstp_clks[MSTP203]),
565 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), 565 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]),
566 CLKDEV_DEV_ID("e6c40000.sci", &mstp_clks[MSTP204]), 566 CLKDEV_DEV_ID("e6c40000.serial", &mstp_clks[MSTP204]),
567 CLKDEV_DEV_ID("sh-sci.8", &mstp_clks[MSTP206]), 567 CLKDEV_DEV_ID("sh-sci.8", &mstp_clks[MSTP206]),
568 CLKDEV_DEV_ID("e6c30000.sci", &mstp_clks[MSTP206]), 568 CLKDEV_DEV_ID("e6c30000.serial", &mstp_clks[MSTP206]),
569 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP207]), 569 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP207]),
570 CLKDEV_DEV_ID("e6cb0000.sci", &mstp_clks[MSTP207]), 570 CLKDEV_DEV_ID("e6cb0000.serial", &mstp_clks[MSTP207]),
571 CLKDEV_DEV_ID("sh-dma-engine.3", &mstp_clks[MSTP214]), 571 CLKDEV_DEV_ID("sh-dma-engine.3", &mstp_clks[MSTP214]),
572 CLKDEV_DEV_ID("sh-dma-engine.2", &mstp_clks[MSTP216]), 572 CLKDEV_DEV_ID("sh-dma-engine.2", &mstp_clks[MSTP216]),
573 CLKDEV_DEV_ID("sh-dma-engine.1", &mstp_clks[MSTP217]), 573 CLKDEV_DEV_ID("sh-dma-engine.1", &mstp_clks[MSTP217]),
574 CLKDEV_DEV_ID("sh-dma-engine.0", &mstp_clks[MSTP218]), 574 CLKDEV_DEV_ID("sh-dma-engine.0", &mstp_clks[MSTP218]),
575 CLKDEV_DEV_ID("sh-sci.7", &mstp_clks[MSTP222]), 575 CLKDEV_DEV_ID("sh-sci.7", &mstp_clks[MSTP222]),
576 CLKDEV_DEV_ID("e6cd0000.sci", &mstp_clks[MSTP222]), 576 CLKDEV_DEV_ID("e6cd0000.serial", &mstp_clks[MSTP222]),
577 CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP230]), 577 CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP230]),
578 CLKDEV_DEV_ID("e6cc0000.sci", &mstp_clks[MSTP230]), 578 CLKDEV_DEV_ID("e6cc0000.serial", &mstp_clks[MSTP230]),
579 579
580 CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), 580 CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]),
581 CLKDEV_DEV_ID("fe1f0000.sound", &mstp_clks[MSTP328]), 581 CLKDEV_DEV_ID("fe1f0000.sound", &mstp_clks[MSTP328]),
diff --git a/arch/arm/mach-shmobile/clock-r8a7778.c b/arch/arm/mach-shmobile/clock-r8a7778.c
index 13f8f3ab8840..a6dd601165e2 100644
--- a/arch/arm/mach-shmobile/clock-r8a7778.c
+++ b/arch/arm/mach-shmobile/clock-r8a7778.c
@@ -202,11 +202,17 @@ static struct clk_lookup lookups[] = {
202 CLKDEV_DEV_ID("i2c-rcar.3", &mstp_clks[MSTP027]), /* I2C3 */ 202 CLKDEV_DEV_ID("i2c-rcar.3", &mstp_clks[MSTP027]), /* I2C3 */
203 CLKDEV_DEV_ID("ffc73000.i2c", &mstp_clks[MSTP027]), /* I2C3 */ 203 CLKDEV_DEV_ID("ffc73000.i2c", &mstp_clks[MSTP027]), /* I2C3 */
204 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP026]), /* SCIF0 */ 204 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP026]), /* SCIF0 */
205 CLKDEV_DEV_ID("ffe40000.serial", &mstp_clks[MSTP026]), /* SCIF0 */
205 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP025]), /* SCIF1 */ 206 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP025]), /* SCIF1 */
207 CLKDEV_DEV_ID("ffe41000.serial", &mstp_clks[MSTP025]), /* SCIF1 */
206 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP024]), /* SCIF2 */ 208 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP024]), /* SCIF2 */
209 CLKDEV_DEV_ID("ffe42000.serial", &mstp_clks[MSTP024]), /* SCIF2 */
207 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP023]), /* SCIF3 */ 210 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP023]), /* SCIF3 */
211 CLKDEV_DEV_ID("ffe43000.serial", &mstp_clks[MSTP023]), /* SCIF3 */
208 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP022]), /* SCIF4 */ 212 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP022]), /* SCIF4 */
213 CLKDEV_DEV_ID("ffe44000.serial", &mstp_clks[MSTP022]), /* SCIF4 */
209 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP021]), /* SCIF6 */ 214 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP021]), /* SCIF6 */
215 CLKDEV_DEV_ID("ffe45000.serial", &mstp_clks[MSTP021]), /* SCIF5 */
210 CLKDEV_DEV_ID("sh-hspi.0", &mstp_clks[MSTP007]), /* HSPI0 */ 216 CLKDEV_DEV_ID("sh-hspi.0", &mstp_clks[MSTP007]), /* HSPI0 */
211 CLKDEV_DEV_ID("fffc7000.spi", &mstp_clks[MSTP007]), /* HSPI0 */ 217 CLKDEV_DEV_ID("fffc7000.spi", &mstp_clks[MSTP007]), /* HSPI0 */
212 CLKDEV_DEV_ID("sh-hspi.1", &mstp_clks[MSTP007]), /* HSPI1 */ 218 CLKDEV_DEV_ID("sh-hspi.1", &mstp_clks[MSTP007]), /* HSPI1 */
diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c
index 0d9cd1fe0212..4990e03482d2 100644
--- a/arch/arm/mach-shmobile/clock-sh73a0.c
+++ b/arch/arm/mach-shmobile/clock-sh73a0.c
@@ -638,16 +638,25 @@ static struct clk_lookup lookups[] = {
638 CLKDEV_DEV_ID("e6820000.i2c", &mstp_clks[MSTP116]), /* I2C0 */ 638 CLKDEV_DEV_ID("e6820000.i2c", &mstp_clks[MSTP116]), /* I2C0 */
639 CLKDEV_DEV_ID("sh_mobile_lcdc_fb.0", &mstp_clks[MSTP100]), /* LCDC0 */ 639 CLKDEV_DEV_ID("sh_mobile_lcdc_fb.0", &mstp_clks[MSTP100]), /* LCDC0 */
640 CLKDEV_DEV_ID("sh-sci.7", &mstp_clks[MSTP219]), /* SCIFA7 */ 640 CLKDEV_DEV_ID("sh-sci.7", &mstp_clks[MSTP219]), /* SCIFA7 */
641 CLKDEV_DEV_ID("e6cd0000.serial", &mstp_clks[MSTP219]), /* SCIFA7 */
641 CLKDEV_DEV_ID("sh-dma-engine.0", &mstp_clks[MSTP218]), /* SY-DMAC */ 642 CLKDEV_DEV_ID("sh-dma-engine.0", &mstp_clks[MSTP218]), /* SY-DMAC */
642 CLKDEV_DEV_ID("sh-dma-engine.1", &mstp_clks[MSTP217]), /* MP-DMAC */ 643 CLKDEV_DEV_ID("sh-dma-engine.1", &mstp_clks[MSTP217]), /* MP-DMAC */
643 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP207]), /* SCIFA5 */ 644 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP207]), /* SCIFA5 */
645 CLKDEV_DEV_ID("e6cb0000.serial", &mstp_clks[MSTP207]), /* SCIFA5 */
644 CLKDEV_DEV_ID("sh-sci.8", &mstp_clks[MSTP206]), /* SCIFB */ 646 CLKDEV_DEV_ID("sh-sci.8", &mstp_clks[MSTP206]), /* SCIFB */
647 CLKDEV_DEV_ID("0xe6c3000.serial", &mstp_clks[MSTP206]), /* SCIFB */
645 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), /* SCIFA0 */ 648 CLKDEV_DEV_ID("sh-sci.0", &mstp_clks[MSTP204]), /* SCIFA0 */
649 CLKDEV_DEV_ID("e6c40000.serial", &mstp_clks[MSTP204]), /* SCIFA0 */
646 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]), /* SCIFA1 */ 650 CLKDEV_DEV_ID("sh-sci.1", &mstp_clks[MSTP203]), /* SCIFA1 */
651 CLKDEV_DEV_ID("e6c50000.serial", &mstp_clks[MSTP203]), /* SCIFA1 */
647 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP202]), /* SCIFA2 */ 652 CLKDEV_DEV_ID("sh-sci.2", &mstp_clks[MSTP202]), /* SCIFA2 */
653 CLKDEV_DEV_ID("e6c60000.serial", &mstp_clks[MSTP202]), /* SCIFA2 */
648 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP201]), /* SCIFA3 */ 654 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP201]), /* SCIFA3 */
655 CLKDEV_DEV_ID("e6c70000.serial", &mstp_clks[MSTP201]), /* SCIFA3 */
649 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP200]), /* SCIFA4 */ 656 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP200]), /* SCIFA4 */
657 CLKDEV_DEV_ID("e6c80000.serial", &mstp_clks[MSTP200]), /* SCIFA4 */
650 CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP331]), /* SCIFA6 */ 658 CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP331]), /* SCIFA6 */
659 CLKDEV_DEV_ID("e6cc0000.serial", &mstp_clks[MSTP331]), /* SCIFA6 */
651 CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), /* FSI */ 660 CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), /* FSI */
652 CLKDEV_DEV_ID("ec230000.sound", &mstp_clks[MSTP328]), /* FSI */ 661 CLKDEV_DEV_ID("ec230000.sound", &mstp_clks[MSTP328]), /* FSI */
653 CLKDEV_DEV_ID("sh_irda.0", &mstp_clks[MSTP325]), /* IrDA */ 662 CLKDEV_DEV_ID("sh_irda.0", &mstp_clks[MSTP325]), /* IrDA */
diff --git a/arch/arm/mach-shmobile/setup-r8a73a4.c b/arch/arm/mach-shmobile/setup-r8a73a4.c
index 9333770cfac2..e84b6a5e4b19 100644
--- a/arch/arm/mach-shmobile/setup-r8a73a4.c
+++ b/arch/arm/mach-shmobile/setup-r8a73a4.c
@@ -187,12 +187,6 @@ static struct resource cmt1_resources[] = {
187 187
188void __init r8a73a4_add_dt_devices(void) 188void __init r8a73a4_add_dt_devices(void)
189{ 189{
190 r8a73a4_register_scif(0);
191 r8a73a4_register_scif(1);
192 r8a73a4_register_scif(2);
193 r8a73a4_register_scif(3);
194 r8a73a4_register_scif(4);
195 r8a73a4_register_scif(5);
196 r8a7790_register_cmt(1); 190 r8a7790_register_cmt(1);
197} 191}
198 192
@@ -287,6 +281,12 @@ static struct resource dma_resources[] = {
287void __init r8a73a4_add_standard_devices(void) 281void __init r8a73a4_add_standard_devices(void)
288{ 282{
289 r8a73a4_add_dt_devices(); 283 r8a73a4_add_dt_devices();
284 r8a73a4_register_scif(0);
285 r8a73a4_register_scif(1);
286 r8a73a4_register_scif(2);
287 r8a73a4_register_scif(3);
288 r8a73a4_register_scif(4);
289 r8a73a4_register_scif(5);
290 r8a73a4_register_irqc(0); 290 r8a73a4_register_irqc(0);
291 r8a73a4_register_irqc(1); 291 r8a73a4_register_irqc(1);
292 r8a73a4_register_thermal(); 292 r8a73a4_register_thermal();
diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c
index 35dec233301e..d0f51f1f697d 100644
--- a/arch/arm/mach-shmobile/setup-r8a7740.c
+++ b/arch/arm/mach-shmobile/setup-r8a7740.c
@@ -310,6 +310,10 @@ static struct platform_device ipmmu_device = {
310}; 310};
311 311
312static struct platform_device *r8a7740_devices_dt[] __initdata = { 312static struct platform_device *r8a7740_devices_dt[] __initdata = {
313 &cmt1_device,
314};
315
316static struct platform_device *r8a7740_early_devices[] __initdata = {
313 &scif0_device, 317 &scif0_device,
314 &scif1_device, 318 &scif1_device,
315 &scif2_device, 319 &scif2_device,
@@ -319,10 +323,6 @@ static struct platform_device *r8a7740_devices_dt[] __initdata = {
319 &scif6_device, 323 &scif6_device,
320 &scif7_device, 324 &scif7_device,
321 &scif8_device, 325 &scif8_device,
322 &cmt1_device,
323};
324
325static struct platform_device *r8a7740_early_devices[] __initdata = {
326 &irqpin0_device, 326 &irqpin0_device,
327 &irqpin1_device, 327 &irqpin1_device,
328 &irqpin2_device, 328 &irqpin2_device,
diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c
index d311ef903b39..3d5a5ae619bf 100644
--- a/arch/arm/mach-shmobile/setup-r8a7778.c
+++ b/arch/arm/mach-shmobile/setup-r8a7778.c
@@ -292,12 +292,6 @@ void __init r8a7778_add_dt_devices(void)
292 } 292 }
293#endif 293#endif
294 294
295 r8a7778_register_scif(0);
296 r8a7778_register_scif(1);
297 r8a7778_register_scif(2);
298 r8a7778_register_scif(3);
299 r8a7778_register_scif(4);
300 r8a7778_register_scif(5);
301 r8a7778_register_tmu(0); 295 r8a7778_register_tmu(0);
302} 296}
303 297
@@ -506,6 +500,12 @@ static void __init r8a7778_register_hpb_dmae(void)
506void __init r8a7778_add_standard_devices(void) 500void __init r8a7778_add_standard_devices(void)
507{ 501{
508 r8a7778_add_dt_devices(); 502 r8a7778_add_dt_devices();
503 r8a7778_register_scif(0);
504 r8a7778_register_scif(1);
505 r8a7778_register_scif(2);
506 r8a7778_register_scif(3);
507 r8a7778_register_scif(4);
508 r8a7778_register_scif(5);
509 r8a7778_register_i2c(0); 509 r8a7778_register_i2c(0);
510 r8a7778_register_i2c(1); 510 r8a7778_register_i2c(1);
511 r8a7778_register_i2c(2); 511 r8a7778_register_i2c(2);
diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
index ad00724a2269..2e1e2894a784 100644
--- a/arch/arm/mach-shmobile/setup-sh73a0.c
+++ b/arch/arm/mach-shmobile/setup-sh73a0.c
@@ -696,6 +696,10 @@ static struct platform_device irqpin3_device = {
696}; 696};
697 697
698static struct platform_device *sh73a0_devices_dt[] __initdata = { 698static struct platform_device *sh73a0_devices_dt[] __initdata = {
699 &cmt1_device,
700};
701
702static struct platform_device *sh73a0_early_devices[] __initdata = {
699 &scif0_device, 703 &scif0_device,
700 &scif1_device, 704 &scif1_device,
701 &scif2_device, 705 &scif2_device,
@@ -705,10 +709,6 @@ static struct platform_device *sh73a0_devices_dt[] __initdata = {
705 &scif6_device, 709 &scif6_device,
706 &scif7_device, 710 &scif7_device,
707 &scif8_device, 711 &scif8_device,
708 &cmt1_device,
709};
710
711static struct platform_device *sh73a0_early_devices[] __initdata = {
712 &tmu0_device, 712 &tmu0_device,
713 &ipmmu_device, 713 &ipmmu_device,
714}; 714};
diff --git a/arch/arm/mach-shmobile/timer.c b/arch/arm/mach-shmobile/timer.c
index 68bc0b82226d..942efdc82a62 100644
--- a/arch/arm/mach-shmobile/timer.c
+++ b/arch/arm/mach-shmobile/timer.c
@@ -59,29 +59,37 @@ void __init shmobile_setup_delay(unsigned int max_cpu_core_mhz,
59 59
60void __init shmobile_init_delay(void) 60void __init shmobile_init_delay(void)
61{ 61{
62 struct device_node *np, *parent; 62 struct device_node *np, *cpus;
63 u32 max_freq, freq; 63 bool is_a8_a9 = false;
64 64 bool is_a15 = false;
65 max_freq = 0; 65 u32 max_freq = 0;
66 66
67 parent = of_find_node_by_path("/cpus"); 67 cpus = of_find_node_by_path("/cpus");
68 if (parent) { 68 if (!cpus)
69 for_each_child_of_node(parent, np) { 69 return;
70 if (!of_property_read_u32(np, "clock-frequency", &freq)) 70
71 max_freq = max(max_freq, freq); 71 for_each_child_of_node(cpus, np) {
72 } 72 u32 freq;
73 of_node_put(parent); 73
74 } 74 if (!of_property_read_u32(np, "clock-frequency", &freq))
75 max_freq = max(max_freq, freq);
75 76
76 if (max_freq) { 77 if (of_device_is_compatible(np, "arm,cortex-a8") ||
77 if (of_find_compatible_node(NULL, NULL, "arm,cortex-a8")) 78 of_device_is_compatible(np, "arm,cortex-a9"))
78 shmobile_setup_delay_hz(max_freq, 1, 3); 79 is_a8_a9 = true;
79 else if (of_find_compatible_node(NULL, NULL, "arm,cortex-a9")) 80 else if (of_device_is_compatible(np, "arm,cortex-a15"))
80 shmobile_setup_delay_hz(max_freq, 1, 3); 81 is_a15 = true;
81 else if (of_find_compatible_node(NULL, NULL, "arm,cortex-a15"))
82 if (!IS_ENABLED(CONFIG_ARM_ARCH_TIMER))
83 shmobile_setup_delay_hz(max_freq, 2, 4);
84 } 82 }
83
84 of_node_put(cpus);
85
86 if (!max_freq)
87 return;
88
89 if (is_a8_a9)
90 shmobile_setup_delay_hz(max_freq, 1, 3);
91 else if (is_a15 && !IS_ENABLED(CONFIG_ARM_ARCH_TIMER))
92 shmobile_setup_delay_hz(max_freq, 2, 4);
85} 93}
86 94
87static void __init shmobile_late_time_init(void) 95static void __init shmobile_late_time_init(void)