aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/boot/dts/Makefile3
-rw-r--r--arch/arm/boot/dts/r7s72100-genmai-reference.dts42
-rw-r--r--arch/arm/boot/dts/r7s72100-genmai.dts30
-rw-r--r--arch/arm/boot/dts/r7s72100.dtsi215
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts21
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts21
-rw-r--r--arch/arm/configs/davinci_all_defconfig1
-rw-r--r--arch/arm/configs/dove_defconfig2
-rw-r--r--arch/arm/configs/kirkwood_defconfig1
-rw-r--r--arch/arm/configs/multi_v5_defconfig3
-rw-r--r--arch/arm/configs/multi_v7_defconfig11
-rw-r--r--arch/arm/configs/mvebu_v5_defconfig5
-rw-r--r--arch/arm/configs/mvebu_v7_defconfig9
-rw-r--r--arch/arm/configs/shmobile_defconfig14
-rw-r--r--arch/arm/configs/sunxi_defconfig1
-rw-r--r--arch/arm/configs/tegra_defconfig10
-rw-r--r--arch/arm/mach-davinci/board-dm355-evm.c4
-rw-r--r--arch/arm/mach-davinci/board-dm355-leopard.c4
-rw-r--r--arch/arm/mach-omap1/board-h2.c2
-rw-r--r--arch/arm/mach-omap1/board-h3.c2
-rw-r--r--arch/arm/mach-omap1/board-innovator.c2
-rw-r--r--arch/arm/mach-omap1/board-osk.c2
-rw-r--r--arch/arm/mach-omap1/board-sx1.c26
-rw-r--r--arch/arm/mach-omap1/pm.c13
-rw-r--r--arch/arm/mach-omap2/board-am3517evm.c5
-rw-r--r--arch/arm/mach-omap2/board-omap3stalker.c4
-rw-r--r--arch/arm/mach-omap2/pdata-quirks.c12
-rw-r--r--arch/arm/mach-shmobile/Kconfig11
-rw-r--r--arch/arm/mach-shmobile/Makefile1
-rw-r--r--arch/arm/mach-shmobile/Makefile.boot1
-rw-r--r--arch/arm/mach-shmobile/board-armadillo800eva.c7
-rw-r--r--arch/arm/mach-shmobile/board-bockw.c63
-rw-r--r--arch/arm/mach-shmobile/board-genmai-reference.c18
-rw-r--r--arch/arm/mach-shmobile/board-genmai.c44
-rw-r--r--arch/arm/mach-shmobile/board-koelsch-reference.c71
-rw-r--r--arch/arm/mach-shmobile/board-koelsch.c2
-rw-r--r--arch/arm/mach-shmobile/board-lager-reference.c69
-rw-r--r--arch/arm/mach-shmobile/board-lager.c29
-rw-r--r--arch/arm/mach-shmobile/clock-r7s72100.c11
-rw-r--r--arch/arm/mach-shmobile/clock-r8a73a4.c2
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7740.c10
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7778.c4
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7779.c4
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7790.c2
-rw-r--r--arch/arm/mach-shmobile/clock-r8a7791.c2
-rw-r--r--arch/arm/mach-shmobile/clock-sh7372.c9
-rw-r--r--arch/arm/mach-shmobile/clock-sh73a0.c5
-rw-r--r--arch/arm/mach-shmobile/include/mach/clock.h1
-rw-r--r--arch/arm/mach-shmobile/setup-r7s72100.c69
-rw-r--r--arch/arm/mach-shmobile/setup-r8a73a4.c17
-rw-r--r--arch/arm/mach-shmobile/setup-r8a7740.c133
-rw-r--r--arch/arm/mach-shmobile/setup-r8a7778.c28
-rw-r--r--arch/arm/mach-shmobile/setup-r8a7779.c66
-rw-r--r--arch/arm/mach-shmobile/setup-r8a7790.c25
-rw-r--r--arch/arm/mach-shmobile/setup-r8a7791.c25
-rw-r--r--arch/arm/mach-shmobile/setup-sh7372.c89
-rw-r--r--arch/arm/mach-shmobile/setup-sh73a0.c92
57 files changed, 669 insertions, 706 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index ff7a04b68d88..1ae42ed4b919 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -303,7 +303,6 @@ dtb-$(CONFIG_ARCH_S3C24XX) += s3c2416-smdk2416.dtb
303dtb-$(CONFIG_ARCH_S3C64XX) += s3c6410-mini6410.dtb \ 303dtb-$(CONFIG_ARCH_S3C64XX) += s3c6410-mini6410.dtb \
304 s3c6410-smdk6410.dtb 304 s3c6410-smdk6410.dtb
305dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += r7s72100-genmai.dtb \ 305dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += r7s72100-genmai.dtb \
306 r7s72100-genmai-reference.dtb \
307 r8a7740-armadillo800eva.dtb \ 306 r8a7740-armadillo800eva.dtb \
308 r8a7778-bockw.dtb \ 307 r8a7778-bockw.dtb \
309 r8a7778-bockw-reference.dtb \ 308 r8a7778-bockw-reference.dtb \
@@ -318,7 +317,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_LEGACY) += r7s72100-genmai.dtb \
318 r8a73a4-ape6evm-reference.dtb \ 317 r8a73a4-ape6evm-reference.dtb \
319 sh7372-mackerel.dtb 318 sh7372-mackerel.dtb
320dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += emev2-kzm9d.dtb \ 319dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += emev2-kzm9d.dtb \
321 r7s72100-genmai-reference.dtb \ 320 r7s72100-genmai.dtb \
322 r8a7791-koelsch.dtb \ 321 r8a7791-koelsch.dtb \
323 r8a7790-lager.dtb 322 r8a7790-lager.dtb
324dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_arria5_socdk.dtb \ 323dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_arria5_socdk.dtb \
diff --git a/arch/arm/boot/dts/r7s72100-genmai-reference.dts b/arch/arm/boot/dts/r7s72100-genmai-reference.dts
deleted file mode 100644
index e664611a47c8..000000000000
--- a/arch/arm/boot/dts/r7s72100-genmai-reference.dts
+++ /dev/null
@@ -1,42 +0,0 @@
1/*
2 * Device Tree Source for the Genmai board
3 *
4 * Copyright (C) 2013 Renesas Solutions Corp.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11/dts-v1/;
12#include "r7s72100.dtsi"
13
14/ {
15 model = "Genmai";
16 compatible = "renesas,genmai-reference", "renesas,r7s72100";
17
18 chosen {
19 bootargs = "console=ttySC2,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp";
20 };
21
22 memory {
23 device_type = "memory";
24 reg = <0x08000000 0x08000000>;
25 };
26
27 lbsc {
28 #address-cells = <1>;
29 #size-cells = <1>;
30 };
31};
32
33&i2c2 {
34 status = "okay";
35 clock-frequency = <400000>;
36
37 eeprom@50 {
38 compatible = "renesas,24c128";
39 reg = <0x50>;
40 pagesize = <64>;
41 };
42};
diff --git a/arch/arm/boot/dts/r7s72100-genmai.dts b/arch/arm/boot/dts/r7s72100-genmai.dts
index b1deaf7e2e06..56849b55e1c2 100644
--- a/arch/arm/boot/dts/r7s72100-genmai.dts
+++ b/arch/arm/boot/dts/r7s72100-genmai.dts
@@ -1,7 +1,8 @@
1/* 1/*
2 * Device Tree Source for the Genmai board 2 * Device Tree Source for the Genmai board
3 * 3 *
4 * Copyright (C) 2013 Renesas Solutions Corp. 4 * Copyright (C) 2013-14 Renesas Solutions Corp.
5 * Copyright (C) 2014 Wolfram Sang, Sang Engineering <wsa@sang-engineering.com>
5 * 6 *
6 * This file is licensed under the terms of the GNU General Public License 7 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any 8 * version 2. This program is licensed "as is" without any warranty of any
@@ -15,6 +16,10 @@
15 model = "Genmai"; 16 model = "Genmai";
16 compatible = "renesas,genmai", "renesas,r7s72100"; 17 compatible = "renesas,genmai", "renesas,r7s72100";
17 18
19 aliases {
20 serial2 = &scif2;
21 };
22
18 chosen { 23 chosen {
19 bootargs = "console=ttySC2,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp"; 24 bootargs = "console=ttySC2,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp";
20 }; 25 };
@@ -29,3 +34,26 @@
29 #size-cells = <1>; 34 #size-cells = <1>;
30 }; 35 };
31}; 36};
37
38&extal_clk {
39 clock-frequency = <13330000>;
40};
41
42&usb_x1_clk {
43 clock-frequency = <48000000>;
44};
45
46&i2c2 {
47 status = "okay";
48 clock-frequency = <400000>;
49
50 eeprom@50 {
51 compatible = "renesas,24c128";
52 reg = <0x50>;
53 pagesize = <64>;
54 };
55};
56
57&scif2 {
58 status = "okay";
59};
diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi
index ee700717a34b..f50fbc8f3bd9 100644
--- a/arch/arm/boot/dts/r7s72100.dtsi
+++ b/arch/arm/boot/dts/r7s72100.dtsi
@@ -1,13 +1,15 @@
1/* 1/*
2 * Device Tree Source for the r7s72100 SoC 2 * Device Tree Source for the r7s72100 SoC
3 * 3 *
4 * Copyright (C) 2013 Renesas Solutions Corp. 4 * Copyright (C) 2013-14 Renesas Solutions Corp.
5 * Copyright (C) 2014 Wolfram Sang, Sang Engineering <wsa@sang-engineering.com>
5 * 6 *
6 * This file is licensed under the terms of the GNU General Public License 7 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any 8 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied. 9 * kind, whether express or implied.
9 */ 10 */
10 11
12#include <dt-bindings/clock/r7s72100-clock.h>
11#include <dt-bindings/interrupt-controller/irq.h> 13#include <dt-bindings/interrupt-controller/irq.h>
12 14
13/ { 15/ {
@@ -28,6 +30,112 @@
28 spi4 = &spi4; 30 spi4 = &spi4;
29 }; 31 };
30 32
33 clocks {
34 ranges;
35 #address-cells = <1>;
36 #size-cells = <1>;
37
38 /* External clocks */
39 extal_clk: extal_clk {
40 #clock-cells = <0>;
41 compatible = "fixed-clock";
42 /* If clk present, value must be set by board */
43 clock-frequency = <0>;
44 clock-output-names = "extal";
45 };
46
47 usb_x1_clk: usb_x1_clk {
48 #clock-cells = <0>;
49 compatible = "fixed-clock";
50 /* If clk present, value must be set by board */
51 clock-frequency = <0>;
52 clock-output-names = "usb_x1";
53 };
54
55 /* Special CPG clocks */
56 cpg_clocks: cpg_clocks@fcfe0000 {
57 #clock-cells = <1>;
58 compatible = "renesas,r7s72100-cpg-clocks",
59 "renesas,rz-cpg-clocks";
60 reg = <0xfcfe0000 0x18>;
61 clocks = <&extal_clk>, <&usb_x1_clk>;
62 clock-output-names = "pll", "i", "g";
63 };
64
65 /* Fixed factor clocks */
66 b_clk: b_clk {
67 #clock-cells = <0>;
68 compatible = "fixed-factor-clock";
69 clocks = <&cpg_clocks R7S72100_CLK_PLL>;
70 clock-mult = <1>;
71 clock-div = <3>;
72 clock-output-names = "b";
73 };
74 p1_clk: p1_clk {
75 #clock-cells = <0>;
76 compatible = "fixed-factor-clock";
77 clocks = <&cpg_clocks R7S72100_CLK_PLL>;
78 clock-mult = <1>;
79 clock-div = <6>;
80 clock-output-names = "p1";
81 };
82 p0_clk: p0_clk {
83 #clock-cells = <0>;
84 compatible = "fixed-factor-clock";
85 clocks = <&cpg_clocks R7S72100_CLK_PLL>;
86 clock-mult = <1>;
87 clock-div = <12>;
88 clock-output-names = "p0";
89 };
90
91 /* MSTP clocks */
92 mstp3_clks: mstp3_clks@fcfe0420 {
93 #clock-cells = <1>;
94 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
95 reg = <0xfcfe0420 4>;
96 clocks = <&p0_clk>;
97 clock-indices = <R7S72100_CLK_MTU2>;
98 clock-output-names = "mtu2";
99 };
100
101 mstp4_clks: mstp4_clks@fcfe0424 {
102 #clock-cells = <1>;
103 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
104 reg = <0xfcfe0424 4>;
105 clocks = <&p1_clk>, <&p1_clk>, <&p1_clk>, <&p1_clk>,
106 <&p1_clk>, <&p1_clk>, <&p1_clk>, <&p1_clk>;
107 clock-indices = <
108 R7S72100_CLK_SCIF0 R7S72100_CLK_SCIF1 R7S72100_CLK_SCIF2 R7S72100_CLK_SCIF3
109 R7S72100_CLK_SCIF4 R7S72100_CLK_SCIF5 R7S72100_CLK_SCIF6 R7S72100_CLK_SCIF7
110 >;
111 clock-output-names = "scif0", "scif1", "scif2", "scif3", "scif4", "scif5", "scif6", "scif7";
112 };
113
114 mstp9_clks: mstp9_clks@fcfe0438 {
115 #clock-cells = <1>;
116 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
117 reg = <0xfcfe0438 4>;
118 clocks = <&p0_clk>, <&p0_clk>, <&p0_clk>, <&p0_clk>;
119 clock-indices = <
120 R7S72100_CLK_I2C0 R7S72100_CLK_I2C1 R7S72100_CLK_I2C2 R7S72100_CLK_I2C3
121 >;
122 clock-output-names = "i2c0", "i2c1", "i2c2", "i2c3";
123 };
124
125 mstp10_clks: mstp10_clks@fcfe043c {
126 #clock-cells = <1>;
127 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
128 reg = <0xfcfe043c 4>;
129 clocks = <&p1_clk>, <&p1_clk>, <&p1_clk>, <&p1_clk>,
130 <&p1_clk>;
131 clock-indices = <
132 R7S72100_CLK_SPI0 R7S72100_CLK_SPI1 R7S72100_CLK_SPI2 R7S72100_CLK_SPI3
133 R7S72100_CLK_SPI4
134 >;
135 clock-output-names = "spi0", "spi1", "spi2", "spi3", "spi4";
136 };
137 };
138
31 cpus { 139 cpus {
32 #address-cells = <1>; 140 #address-cells = <1>;
33 #size-cells = <0>; 141 #size-cells = <0>;
@@ -61,6 +169,7 @@
61 <0 162 IRQ_TYPE_LEVEL_HIGH>, 169 <0 162 IRQ_TYPE_LEVEL_HIGH>,
62 <0 163 IRQ_TYPE_LEVEL_HIGH>, 170 <0 163 IRQ_TYPE_LEVEL_HIGH>,
63 <0 164 IRQ_TYPE_LEVEL_HIGH>; 171 <0 164 IRQ_TYPE_LEVEL_HIGH>;
172 clocks = <&mstp9_clks R7S72100_CLK_I2C0>;
64 clock-frequency = <100000>; 173 clock-frequency = <100000>;
65 status = "disabled"; 174 status = "disabled";
66 }; 175 };
@@ -78,6 +187,7 @@
78 <0 170 IRQ_TYPE_LEVEL_HIGH>, 187 <0 170 IRQ_TYPE_LEVEL_HIGH>,
79 <0 171 IRQ_TYPE_LEVEL_HIGH>, 188 <0 171 IRQ_TYPE_LEVEL_HIGH>,
80 <0 172 IRQ_TYPE_LEVEL_HIGH>; 189 <0 172 IRQ_TYPE_LEVEL_HIGH>;
190 clocks = <&mstp9_clks R7S72100_CLK_I2C1>;
81 clock-frequency = <100000>; 191 clock-frequency = <100000>;
82 status = "disabled"; 192 status = "disabled";
83 }; 193 };
@@ -95,6 +205,7 @@
95 <0 178 IRQ_TYPE_LEVEL_HIGH>, 205 <0 178 IRQ_TYPE_LEVEL_HIGH>,
96 <0 179 IRQ_TYPE_LEVEL_HIGH>, 206 <0 179 IRQ_TYPE_LEVEL_HIGH>,
97 <0 180 IRQ_TYPE_LEVEL_HIGH>; 207 <0 180 IRQ_TYPE_LEVEL_HIGH>;
208 clocks = <&mstp9_clks R7S72100_CLK_I2C2>;
98 clock-frequency = <100000>; 209 clock-frequency = <100000>;
99 status = "disabled"; 210 status = "disabled";
100 }; 211 };
@@ -112,10 +223,107 @@
112 <0 186 IRQ_TYPE_LEVEL_HIGH>, 223 <0 186 IRQ_TYPE_LEVEL_HIGH>,
113 <0 187 IRQ_TYPE_LEVEL_HIGH>, 224 <0 187 IRQ_TYPE_LEVEL_HIGH>,
114 <0 188 IRQ_TYPE_LEVEL_HIGH>; 225 <0 188 IRQ_TYPE_LEVEL_HIGH>;
226 clocks = <&mstp9_clks R7S72100_CLK_I2C3>;
115 clock-frequency = <100000>; 227 clock-frequency = <100000>;
116 status = "disabled"; 228 status = "disabled";
117 }; 229 };
118 230
231 scif0: serial@e8007000 {
232 compatible = "renesas,scif-r7s72100", "renesas,scif";
233 reg = <0xe8007000 64>;
234 interrupts = <0 190 IRQ_TYPE_LEVEL_HIGH>,
235 <0 191 IRQ_TYPE_LEVEL_HIGH>,
236 <0 192 IRQ_TYPE_LEVEL_HIGH>,
237 <0 189 IRQ_TYPE_LEVEL_HIGH>;
238 clocks = <&mstp4_clks R7S72100_CLK_SCIF0>;
239 clock-names = "sci_ick";
240 status = "disabled";
241 };
242
243 scif1: serial@e8007800 {
244 compatible = "renesas,scif-r7s72100", "renesas,scif";
245 reg = <0xe8007800 64>;
246 interrupts = <0 194 IRQ_TYPE_LEVEL_HIGH>,
247 <0 195 IRQ_TYPE_LEVEL_HIGH>,
248 <0 196 IRQ_TYPE_LEVEL_HIGH>,
249 <0 193 IRQ_TYPE_LEVEL_HIGH>;
250 clocks = <&mstp4_clks R7S72100_CLK_SCIF1>;
251 clock-names = "sci_ick";
252 status = "disabled";
253 };
254
255 scif2: serial@e8008000 {
256 compatible = "renesas,scif-r7s72100", "renesas,scif";
257 reg = <0xe8008000 64>;
258 interrupts = <0 198 IRQ_TYPE_LEVEL_HIGH>,
259 <0 199 IRQ_TYPE_LEVEL_HIGH>,
260 <0 200 IRQ_TYPE_LEVEL_HIGH>,
261 <0 197 IRQ_TYPE_LEVEL_HIGH>;
262 clocks = <&mstp4_clks R7S72100_CLK_SCIF2>;
263 clock-names = "sci_ick";
264 status = "disabled";
265 };
266
267 scif3: serial@e8008800 {
268 compatible = "renesas,scif-r7s72100", "renesas,scif";
269 reg = <0xe8008800 64>;
270 interrupts = <0 202 IRQ_TYPE_LEVEL_HIGH>,
271 <0 203 IRQ_TYPE_LEVEL_HIGH>,
272 <0 204 IRQ_TYPE_LEVEL_HIGH>,
273 <0 201 IRQ_TYPE_LEVEL_HIGH>;
274 clocks = <&mstp4_clks R7S72100_CLK_SCIF3>;
275 clock-names = "sci_ick";
276 status = "disabled";
277 };
278
279 scif4: serial@e8009000 {
280 compatible = "renesas,scif-r7s72100", "renesas,scif";
281 reg = <0xe8009000 64>;
282 interrupts = <0 206 IRQ_TYPE_LEVEL_HIGH>,
283 <0 207 IRQ_TYPE_LEVEL_HIGH>,
284 <0 208 IRQ_TYPE_LEVEL_HIGH>,
285 <0 205 IRQ_TYPE_LEVEL_HIGH>;
286 clocks = <&mstp4_clks R7S72100_CLK_SCIF4>;
287 clock-names = "sci_ick";
288 status = "disabled";
289 };
290
291 scif5: serial@e8009800 {
292 compatible = "renesas,scif-r7s72100", "renesas,scif";
293 reg = <0xe8009800 64>;
294 interrupts = <0 210 IRQ_TYPE_LEVEL_HIGH>,
295 <0 211 IRQ_TYPE_LEVEL_HIGH>,
296 <0 212 IRQ_TYPE_LEVEL_HIGH>,
297 <0 209 IRQ_TYPE_LEVEL_HIGH>;
298 clocks = <&mstp4_clks R7S72100_CLK_SCIF5>;
299 clock-names = "sci_ick";
300 status = "disabled";
301 };
302
303 scif6: serial@e800a000 {
304 compatible = "renesas,scif-r7s72100", "renesas,scif";
305 reg = <0xe800a000 64>;
306 interrupts = <0 214 IRQ_TYPE_LEVEL_HIGH>,
307 <0 215 IRQ_TYPE_LEVEL_HIGH>,
308 <0 216 IRQ_TYPE_LEVEL_HIGH>,
309 <0 213 IRQ_TYPE_LEVEL_HIGH>;
310 clocks = <&mstp4_clks R7S72100_CLK_SCIF6>;
311 clock-names = "sci_ick";
312 status = "disabled";
313 };
314
315 scif7: serial@e800a800 {
316 compatible = "renesas,scif-r7s72100", "renesas,scif";
317 reg = <0xe800a800 64>;
318 interrupts = <0 218 IRQ_TYPE_LEVEL_HIGH>,
319 <0 219 IRQ_TYPE_LEVEL_HIGH>,
320 <0 220 IRQ_TYPE_LEVEL_HIGH>,
321 <0 217 IRQ_TYPE_LEVEL_HIGH>;
322 clocks = <&mstp4_clks R7S72100_CLK_SCIF7>;
323 clock-names = "sci_ick";
324 status = "disabled";
325 };
326
119 spi0: spi@e800c800 { 327 spi0: spi@e800c800 {
120 compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz"; 328 compatible = "renesas,rspi-r7s72100", "renesas,rspi-rz";
121 reg = <0xe800c800 0x24>; 329 reg = <0xe800c800 0x24>;
@@ -123,6 +331,7 @@
123 <0 239 IRQ_TYPE_LEVEL_HIGH>, 331 <0 239 IRQ_TYPE_LEVEL_HIGH>,
124 <0 240 IRQ_TYPE_LEVEL_HIGH>; 332 <0 240 IRQ_TYPE_LEVEL_HIGH>;
125 interrupt-names = "error", "rx", "tx"; 333 interrupt-names = "error", "rx", "tx";
334 clocks = <&mstp10_clks R7S72100_CLK_SPI0>;
126 num-cs = <1>; 335 num-cs = <1>;
127 #address-cells = <1>; 336 #address-cells = <1>;
128 #size-cells = <0>; 337 #size-cells = <0>;
@@ -136,6 +345,7 @@
136 <0 242 IRQ_TYPE_LEVEL_HIGH>, 345 <0 242 IRQ_TYPE_LEVEL_HIGH>,
137 <0 243 IRQ_TYPE_LEVEL_HIGH>; 346 <0 243 IRQ_TYPE_LEVEL_HIGH>;
138 interrupt-names = "error", "rx", "tx"; 347 interrupt-names = "error", "rx", "tx";
348 clocks = <&mstp10_clks R7S72100_CLK_SPI1>;
139 num-cs = <1>; 349 num-cs = <1>;
140 #address-cells = <1>; 350 #address-cells = <1>;
141 #size-cells = <0>; 351 #size-cells = <0>;
@@ -149,6 +359,7 @@
149 <0 245 IRQ_TYPE_LEVEL_HIGH>, 359 <0 245 IRQ_TYPE_LEVEL_HIGH>,
150 <0 246 IRQ_TYPE_LEVEL_HIGH>; 360 <0 246 IRQ_TYPE_LEVEL_HIGH>;
151 interrupt-names = "error", "rx", "tx"; 361 interrupt-names = "error", "rx", "tx";
362 clocks = <&mstp10_clks R7S72100_CLK_SPI2>;
152 num-cs = <1>; 363 num-cs = <1>;
153 #address-cells = <1>; 364 #address-cells = <1>;
154 #size-cells = <0>; 365 #size-cells = <0>;
@@ -162,6 +373,7 @@
162 <0 248 IRQ_TYPE_LEVEL_HIGH>, 373 <0 248 IRQ_TYPE_LEVEL_HIGH>,
163 <0 249 IRQ_TYPE_LEVEL_HIGH>; 374 <0 249 IRQ_TYPE_LEVEL_HIGH>;
164 interrupt-names = "error", "rx", "tx"; 375 interrupt-names = "error", "rx", "tx";
376 clocks = <&mstp10_clks R7S72100_CLK_SPI3>;
165 num-cs = <1>; 377 num-cs = <1>;
166 #address-cells = <1>; 378 #address-cells = <1>;
167 #size-cells = <0>; 379 #size-cells = <0>;
@@ -175,6 +387,7 @@
175 <0 251 IRQ_TYPE_LEVEL_HIGH>, 387 <0 251 IRQ_TYPE_LEVEL_HIGH>,
176 <0 252 IRQ_TYPE_LEVEL_HIGH>; 388 <0 252 IRQ_TYPE_LEVEL_HIGH>;
177 interrupt-names = "error", "rx", "tx"; 389 interrupt-names = "error", "rx", "tx";
390 clocks = <&mstp10_clks R7S72100_CLK_SPI4>;
178 num-cs = <1>; 391 num-cs = <1>;
179 #address-cells = <1>; 392 #address-cells = <1>;
180 #size-cells = <0>; 393 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index d01048ab3e77..f5e548735d7a 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -17,6 +17,11 @@
17 model = "Lager"; 17 model = "Lager";
18 compatible = "renesas,lager", "renesas,r8a7790"; 18 compatible = "renesas,lager", "renesas,r8a7790";
19 19
20 aliases {
21 serial6 = &scif0;
22 serial7 = &scif1;
23 };
24
20 chosen { 25 chosen {
21 bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp"; 26 bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp";
22 }; 27 };
@@ -112,7 +117,7 @@
112}; 117};
113 118
114&pfc { 119&pfc {
115 pinctrl-0 = <&du_pins &scif0_pins &scif1_pins>; 120 pinctrl-0 = <&du_pins>;
116 pinctrl-names = "default"; 121 pinctrl-names = "default";
117 122
118 du_pins: du { 123 du_pins: du {
@@ -221,6 +226,20 @@
221 }; 226 };
222}; 227};
223 228
229&scif0 {
230 pinctrl-0 = <&scif0_pins>;
231 pinctrl-names = "default";
232
233 status = "okay";
234};
235
236&scif1 {
237 pinctrl-0 = <&scif1_pins>;
238 pinctrl-names = "default";
239
240 status = "okay";
241};
242
224&sdhi0 { 243&sdhi0 {
225 pinctrl-0 = <&sdhi0_pins>; 244 pinctrl-0 = <&sdhi0_pins>;
226 pinctrl-names = "default"; 245 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index de1b6977c69a..277385dfe99a 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -18,6 +18,11 @@
18 model = "Koelsch"; 18 model = "Koelsch";
19 compatible = "renesas,koelsch", "renesas,r8a7791"; 19 compatible = "renesas,koelsch", "renesas,r8a7791";
20 20
21 aliases {
22 serial6 = &scif0;
23 serial7 = &scif1;
24 };
25
21 chosen { 26 chosen {
22 bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp"; 27 bootargs = "console=ttySC6,115200 ignore_loglevel rw root=/dev/nfs ip=dhcp";
23 }; 28 };
@@ -196,7 +201,7 @@
196}; 201};
197 202
198&pfc { 203&pfc {
199 pinctrl-0 = <&du_pins &scif0_pins &scif1_pins>; 204 pinctrl-0 = <&du_pins>;
200 pinctrl-names = "default"; 205 pinctrl-names = "default";
201 206
202 i2c2_pins: i2c { 207 i2c2_pins: i2c {
@@ -269,6 +274,20 @@
269 status = "okay"; 274 status = "okay";
270}; 275};
271 276
277&scif0 {
278 pinctrl-0 = <&scif0_pins>;
279 pinctrl-names = "default";
280
281 status = "okay";
282};
283
284&scif1 {
285 pinctrl-0 = <&scif1_pins>;
286 pinctrl-names = "default";
287
288 status = "okay";
289};
290
272&sdhi0 { 291&sdhi0 {
273 pinctrl-0 = <&sdhi0_pins>; 292 pinctrl-0 = <&sdhi0_pins>;
274 pinctrl-names = "default"; 293 pinctrl-names = "default";
diff --git a/arch/arm/configs/davinci_all_defconfig b/arch/arm/configs/davinci_all_defconfig
index 2a282c051cfd..2f8ff65e3ef1 100644
--- a/arch/arm/configs/davinci_all_defconfig
+++ b/arch/arm/configs/davinci_all_defconfig
@@ -160,7 +160,6 @@ CONFIG_USB=m
160CONFIG_USB_DEVICEFS=y 160CONFIG_USB_DEVICEFS=y
161CONFIG_USB_MON=m 161CONFIG_USB_MON=m
162CONFIG_USB_MUSB_HDRC=m 162CONFIG_USB_MUSB_HDRC=m
163CONFIG_USB_MUSB_PERIPHERAL=y
164CONFIG_USB_GADGET_MUSB_HDRC=y 163CONFIG_USB_GADGET_MUSB_HDRC=y
165CONFIG_MUSB_PIO_ONLY=y 164CONFIG_MUSB_PIO_ONLY=y
166CONFIG_USB_STORAGE=m 165CONFIG_USB_STORAGE=m
diff --git a/arch/arm/configs/dove_defconfig b/arch/arm/configs/dove_defconfig
index f15955144175..701677f9248c 100644
--- a/arch/arm/configs/dove_defconfig
+++ b/arch/arm/configs/dove_defconfig
@@ -37,7 +37,6 @@ CONFIG_DEVTMPFS=y
37CONFIG_DEVTMPFS_MOUNT=y 37CONFIG_DEVTMPFS_MOUNT=y
38CONFIG_MTD=y 38CONFIG_MTD=y
39CONFIG_MTD_CMDLINE_PARTS=y 39CONFIG_MTD_CMDLINE_PARTS=y
40CONFIG_MTD_CHAR=y
41CONFIG_MTD_BLOCK=y 40CONFIG_MTD_BLOCK=y
42CONFIG_MTD_CFI=y 41CONFIG_MTD_CFI=y
43CONFIG_MTD_JEDECPROBE=y 42CONFIG_MTD_JEDECPROBE=y
@@ -48,6 +47,7 @@ CONFIG_MTD_CFI_INTELEXT=y
48CONFIG_MTD_CFI_STAA=y 47CONFIG_MTD_CFI_STAA=y
49CONFIG_MTD_PHYSMAP=y 48CONFIG_MTD_PHYSMAP=y
50CONFIG_MTD_M25P80=y 49CONFIG_MTD_M25P80=y
50CONFIG_MTD_SPI_NOR=y
51CONFIG_BLK_DEV_LOOP=y 51CONFIG_BLK_DEV_LOOP=y
52CONFIG_BLK_DEV_RAM=y 52CONFIG_BLK_DEV_RAM=y
53CONFIG_BLK_DEV_RAM_COUNT=1 53CONFIG_BLK_DEV_RAM_COUNT=1
diff --git a/arch/arm/configs/kirkwood_defconfig b/arch/arm/configs/kirkwood_defconfig
index 2e762d94e94b..b9e480c10b10 100644
--- a/arch/arm/configs/kirkwood_defconfig
+++ b/arch/arm/configs/kirkwood_defconfig
@@ -61,6 +61,7 @@ CONFIG_MTD_PHYSMAP=y
61CONFIG_MTD_M25P80=y 61CONFIG_MTD_M25P80=y
62CONFIG_MTD_NAND=y 62CONFIG_MTD_NAND=y
63CONFIG_MTD_NAND_ORION=y 63CONFIG_MTD_NAND_ORION=y
64CONFIG_MTD_SPI_NOR=y
64CONFIG_BLK_DEV_LOOP=y 65CONFIG_BLK_DEV_LOOP=y
65CONFIG_EEPROM_AT24=y 66CONFIG_EEPROM_AT24=y
66# CONFIG_SCSI_PROC_FS is not set 67# CONFIG_SCSI_PROC_FS is not set
diff --git a/arch/arm/configs/multi_v5_defconfig b/arch/arm/configs/multi_v5_defconfig
index aa3dfb084fed..5ebfa8bf8509 100644
--- a/arch/arm/configs/multi_v5_defconfig
+++ b/arch/arm/configs/multi_v5_defconfig
@@ -11,7 +11,6 @@ CONFIG_MODULE_UNLOAD=y
11# CONFIG_ARCH_MULTI_V7 is not set 11# CONFIG_ARCH_MULTI_V7 is not set
12CONFIG_ARCH_MVEBU=y 12CONFIG_ARCH_MVEBU=y
13CONFIG_MACH_KIRKWOOD=y 13CONFIG_MACH_KIRKWOOD=y
14CONFIG_MACH_T5325=y
15CONFIG_ARCH_MXC=y 14CONFIG_ARCH_MXC=y
16CONFIG_MACH_IMX25_DT=y 15CONFIG_MACH_IMX25_DT=y
17CONFIG_MACH_IMX27_DT=y 16CONFIG_MACH_IMX27_DT=y
@@ -108,6 +107,8 @@ CONFIG_SND=y
108CONFIG_SND_SOC=y 107CONFIG_SND_SOC=y
109CONFIG_SND_KIRKWOOD_SOC=y 108CONFIG_SND_KIRKWOOD_SOC=y
110CONFIG_SND_KIRKWOOD_SOC_T5325=y 109CONFIG_SND_KIRKWOOD_SOC_T5325=y
110CONFIG_SND_SOC_ALC5623=y
111CONFIG_SND_SIMPLE_CARD=y
111# CONFIG_ABX500_CORE is not set 112# CONFIG_ABX500_CORE is not set
112CONFIG_REGULATOR=y 113CONFIG_REGULATOR=y
113CONFIG_REGULATOR_FIXED_VOLTAGE=y 114CONFIG_REGULATOR_FIXED_VOLTAGE=y
diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig
index d4e8a47a2f7c..86e01a86e8cc 100644
--- a/arch/arm/configs/multi_v7_defconfig
+++ b/arch/arm/configs/multi_v7_defconfig
@@ -20,6 +20,7 @@ CONFIG_ARCH_BCM_MOBILE=y
20CONFIG_ARCH_BERLIN=y 20CONFIG_ARCH_BERLIN=y
21CONFIG_MACH_BERLIN_BG2=y 21CONFIG_MACH_BERLIN_BG2=y
22CONFIG_MACH_BERLIN_BG2CD=y 22CONFIG_MACH_BERLIN_BG2CD=y
23CONFIG_MACH_BERLIN_BG2Q=y
23CONFIG_GPIO_PCA953X=y 24CONFIG_GPIO_PCA953X=y
24CONFIG_ARCH_HIGHBANK=y 25CONFIG_ARCH_HIGHBANK=y
25CONFIG_ARCH_HI3xxx=y 26CONFIG_ARCH_HI3xxx=y
@@ -96,6 +97,11 @@ CONFIG_INET6_IPCOMP=m
96CONFIG_IPV6_MIP6=m 97CONFIG_IPV6_MIP6=m
97CONFIG_IPV6_TUNNEL=m 98CONFIG_IPV6_TUNNEL=m
98CONFIG_IPV6_MULTIPLE_TABLES=y 99CONFIG_IPV6_MULTIPLE_TABLES=y
100CONFIG_CAN=y
101CONFIG_CAN_RAW=y
102CONFIG_CAN_BCM=y
103CONFIG_CAN_DEV=y
104CONFIG_CAN_MCP251X=y
99CONFIG_CFG80211=m 105CONFIG_CFG80211=m
100CONFIG_MAC80211=m 106CONFIG_MAC80211=m
101CONFIG_RFKILL=y 107CONFIG_RFKILL=y
@@ -112,6 +118,7 @@ CONFIG_BLK_DEV_LOOP=y
112CONFIG_ICS932S401=y 118CONFIG_ICS932S401=y
113CONFIG_APDS9802ALS=y 119CONFIG_APDS9802ALS=y
114CONFIG_ISL29003=y 120CONFIG_ISL29003=y
121CONFIG_EEPROM_AT24=y
115CONFIG_BLK_DEV_SD=y 122CONFIG_BLK_DEV_SD=y
116CONFIG_BLK_DEV_SR=y 123CONFIG_BLK_DEV_SR=y
117CONFIG_SCSI_MULTI_LUN=y 124CONFIG_SCSI_MULTI_LUN=y
@@ -191,6 +198,7 @@ CONFIG_PINCTRL_AS3722=y
191CONFIG_PINCTRL_PALMAS=y 198CONFIG_PINCTRL_PALMAS=y
192CONFIG_GPIO_SYSFS=y 199CONFIG_GPIO_SYSFS=y
193CONFIG_GPIO_GENERIC_PLATFORM=y 200CONFIG_GPIO_GENERIC_PLATFORM=y
201CONFIG_GPIO_DWAPB=y
194CONFIG_GPIO_PCA953X_IRQ=y 202CONFIG_GPIO_PCA953X_IRQ=y
195CONFIG_GPIO_TWL4030=y 203CONFIG_GPIO_TWL4030=y
196CONFIG_GPIO_PALMAS=y 204CONFIG_GPIO_PALMAS=y
@@ -254,6 +262,7 @@ CONFIG_SND_SOC_TEGRA_ALC5632=y
254CONFIG_SND_SOC_TEGRA_MAX98090=y 262CONFIG_SND_SOC_TEGRA_MAX98090=y
255CONFIG_USB=y 263CONFIG_USB=y
256CONFIG_USB_XHCI_HCD=y 264CONFIG_USB_XHCI_HCD=y
265CONFIG_USB_XHCI_MVEBU=y
257CONFIG_USB_EHCI_HCD=y 266CONFIG_USB_EHCI_HCD=y
258CONFIG_USB_EHCI_TEGRA=y 267CONFIG_USB_EHCI_TEGRA=y
259CONFIG_USB_EHCI_HCD_PLATFORM=y 268CONFIG_USB_EHCI_HCD_PLATFORM=y
@@ -273,6 +282,7 @@ CONFIG_MMC_BLOCK_MINORS=16
273CONFIG_MMC_ARMMMCI=y 282CONFIG_MMC_ARMMMCI=y
274CONFIG_MMC_SDHCI=y 283CONFIG_MMC_SDHCI=y
275CONFIG_MMC_SDHCI_ESDHC_IMX=y 284CONFIG_MMC_SDHCI_ESDHC_IMX=y
285CONFIG_MMC_SDHCI_PXAV3=y
276CONFIG_MMC_SDHCI_TEGRA=y 286CONFIG_MMC_SDHCI_TEGRA=y
277CONFIG_MMC_SDHCI_DOVE=y 287CONFIG_MMC_SDHCI_DOVE=y
278CONFIG_MMC_SDHCI_SPEAR=y 288CONFIG_MMC_SDHCI_SPEAR=y
@@ -286,6 +296,7 @@ CONFIG_EDAC_HIGHBANK_MC=y
286CONFIG_EDAC_HIGHBANK_L2=y 296CONFIG_EDAC_HIGHBANK_L2=y
287CONFIG_RTC_CLASS=y 297CONFIG_RTC_CLASS=y
288CONFIG_RTC_DRV_AS3722=y 298CONFIG_RTC_DRV_AS3722=y
299CONFIG_RTC_DRV_DS1307=y
289CONFIG_RTC_DRV_MAX8907=y 300CONFIG_RTC_DRV_MAX8907=y
290CONFIG_RTC_DRV_PALMAS=y 301CONFIG_RTC_DRV_PALMAS=y
291CONFIG_RTC_DRV_TWL4030=y 302CONFIG_RTC_DRV_TWL4030=y
diff --git a/arch/arm/configs/mvebu_v5_defconfig b/arch/arm/configs/mvebu_v5_defconfig
index 36484a37a1ca..27c732fdf21e 100644
--- a/arch/arm/configs/mvebu_v5_defconfig
+++ b/arch/arm/configs/mvebu_v5_defconfig
@@ -1,4 +1,5 @@
1CONFIG_SYSVIPC=y 1CONFIG_SYSVIPC=y
2CONFIG_FHANDLE=y
2CONFIG_NO_HZ=y 3CONFIG_NO_HZ=y
3CONFIG_HIGH_RES_TIMERS=y 4CONFIG_HIGH_RES_TIMERS=y
4CONFIG_LOG_BUF_SHIFT=19 5CONFIG_LOG_BUF_SHIFT=19
@@ -11,7 +12,6 @@ CONFIG_MODULE_UNLOAD=y
11# CONFIG_ARCH_MULTI_V7 is not set 12# CONFIG_ARCH_MULTI_V7 is not set
12CONFIG_ARCH_MVEBU=y 13CONFIG_ARCH_MVEBU=y
13CONFIG_MACH_KIRKWOOD=y 14CONFIG_MACH_KIRKWOOD=y
14CONFIG_MACH_T5325=y
15# CONFIG_CPU_FEROCEON_OLD_ID is not set 15# CONFIG_CPU_FEROCEON_OLD_ID is not set
16CONFIG_PCI_MVEBU=y 16CONFIG_PCI_MVEBU=y
17CONFIG_PREEMPT=y 17CONFIG_PREEMPT=y
@@ -50,6 +50,7 @@ CONFIG_MTD_PHYSMAP=y
50CONFIG_MTD_M25P80=y 50CONFIG_MTD_M25P80=y
51CONFIG_MTD_NAND=y 51CONFIG_MTD_NAND=y
52CONFIG_MTD_NAND_ORION=y 52CONFIG_MTD_NAND_ORION=y
53CONFIG_MTD_SPI_NOR=y
53CONFIG_BLK_DEV_LOOP=y 54CONFIG_BLK_DEV_LOOP=y
54CONFIG_EEPROM_AT24=y 55CONFIG_EEPROM_AT24=y
55# CONFIG_SCSI_PROC_FS is not set 56# CONFIG_SCSI_PROC_FS is not set
@@ -100,6 +101,8 @@ CONFIG_SND=y
100CONFIG_SND_SOC=y 101CONFIG_SND_SOC=y
101CONFIG_SND_KIRKWOOD_SOC=y 102CONFIG_SND_KIRKWOOD_SOC=y
102CONFIG_SND_KIRKWOOD_SOC_T5325=y 103CONFIG_SND_KIRKWOOD_SOC_T5325=y
104CONFIG_SND_SOC_ALC5623=y
105CONFIG_SND_SIMPLE_CARD=y
103CONFIG_REGULATOR=y 106CONFIG_REGULATOR=y
104CONFIG_REGULATOR_FIXED_VOLTAGE=y 107CONFIG_REGULATOR_FIXED_VOLTAGE=y
105CONFIG_HID_DRAGONRISE=y 108CONFIG_HID_DRAGONRISE=y
diff --git a/arch/arm/configs/mvebu_v7_defconfig b/arch/arm/configs/mvebu_v7_defconfig
index a34713d8db9f..b52a6f5c5225 100644
--- a/arch/arm/configs/mvebu_v7_defconfig
+++ b/arch/arm/configs/mvebu_v7_defconfig
@@ -1,5 +1,6 @@
1CONFIG_EXPERIMENTAL=y 1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
3CONFIG_FHANDLE=y
3CONFIG_IRQ_DOMAIN_DEBUG=y 4CONFIG_IRQ_DOMAIN_DEBUG=y
4CONFIG_HIGH_RES_TIMERS=y 5CONFIG_HIGH_RES_TIMERS=y
5CONFIG_LOG_BUF_SHIFT=14 6CONFIG_LOG_BUF_SHIFT=14
@@ -29,6 +30,9 @@ CONFIG_ARM_ATAG_DTB_COMPAT=y
29CONFIG_VFP=y 30CONFIG_VFP=y
30CONFIG_NET=y 31CONFIG_NET=y
31CONFIG_INET=y 32CONFIG_INET=y
33CONFIG_IP_PNP=y
34CONFIG_IP_PNP_DHCP=y
35CONFIG_IP_PNP_BOOTP=y
32CONFIG_BT=y 36CONFIG_BT=y
33CONFIG_BT_MRVL=y 37CONFIG_BT_MRVL=y
34CONFIG_BT_MRVL_SDIO=y 38CONFIG_BT_MRVL_SDIO=y
@@ -36,6 +40,7 @@ CONFIG_CFG80211=y
36CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 40CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
37CONFIG_BLK_DEV_SD=y 41CONFIG_BLK_DEV_SD=y
38CONFIG_ATA=y 42CONFIG_ATA=y
43CONFIG_AHCI_MVEBU=y
39CONFIG_SATA_MV=y 44CONFIG_SATA_MV=y
40CONFIG_NETDEVICES=y 45CONFIG_NETDEVICES=y
41CONFIG_MVNETA=y 46CONFIG_MVNETA=y
@@ -53,6 +58,7 @@ CONFIG_I2C_MV64XXX=y
53CONFIG_MTD=y 58CONFIG_MTD=y
54CONFIG_MTD_CHAR=y 59CONFIG_MTD_CHAR=y
55CONFIG_MTD_M25P80=y 60CONFIG_MTD_M25P80=y
61CONFIG_MTD_SPI_NOR=y
56CONFIG_MTD_CFI=y 62CONFIG_MTD_CFI=y
57CONFIG_MTD_CFI_INTELEXT=y 63CONFIG_MTD_CFI_INTELEXT=y
58CONFIG_MTD_CFI_AMDSTD=y 64CONFIG_MTD_CFI_AMDSTD=y
@@ -79,6 +85,7 @@ CONFIG_USB_EHCI_ROOT_HUB_TT=y
79CONFIG_USB_STORAGE=y 85CONFIG_USB_STORAGE=y
80CONFIG_USB_XHCI_HCD=y 86CONFIG_USB_XHCI_HCD=y
81CONFIG_MMC=y 87CONFIG_MMC=y
88CONFIG_MMC_SDHCI_PXAV3=y
82CONFIG_MMC_MVSDIO=y 89CONFIG_MMC_MVSDIO=y
83CONFIG_NEW_LEDS=y 90CONFIG_NEW_LEDS=y
84CONFIG_LEDS_GPIO=y 91CONFIG_LEDS_GPIO=y
@@ -103,6 +110,8 @@ CONFIG_UDF_FS=m
103CONFIG_MSDOS_FS=y 110CONFIG_MSDOS_FS=y
104CONFIG_VFAT_FS=y 111CONFIG_VFAT_FS=y
105CONFIG_TMPFS=y 112CONFIG_TMPFS=y
113CONFIG_NFS_FS=y
114CONFIG_ROOT_NFS=y
106CONFIG_NLS_CODEPAGE_437=y 115CONFIG_NLS_CODEPAGE_437=y
107CONFIG_NLS_CODEPAGE_850=y 116CONFIG_NLS_CODEPAGE_850=y
108CONFIG_NLS_ISO8859_1=y 117CONFIG_NLS_ISO8859_1=y
diff --git a/arch/arm/configs/shmobile_defconfig b/arch/arm/configs/shmobile_defconfig
index 83b07258a385..6d6437cbbc52 100644
--- a/arch/arm/configs/shmobile_defconfig
+++ b/arch/arm/configs/shmobile_defconfig
@@ -25,6 +25,7 @@ CONFIG_SCHED_MC=y
25CONFIG_HAVE_ARM_ARCH_TIMER=y 25CONFIG_HAVE_ARM_ARCH_TIMER=y
26CONFIG_NR_CPUS=8 26CONFIG_NR_CPUS=8
27CONFIG_AEABI=y 27CONFIG_AEABI=y
28CONFIG_HIGHMEM=y
28CONFIG_ZBOOT_ROM_TEXT=0x0 29CONFIG_ZBOOT_ROM_TEXT=0x0
29CONFIG_ZBOOT_ROM_BSS=0x0 30CONFIG_ZBOOT_ROM_BSS=0x0
30CONFIG_ARM_APPENDED_DTB=y 31CONFIG_ARM_APPENDED_DTB=y
@@ -43,6 +44,7 @@ CONFIG_DEVTMPFS=y
43CONFIG_DEVTMPFS_MOUNT=y 44CONFIG_DEVTMPFS_MOUNT=y
44CONFIG_MTD=y 45CONFIG_MTD=y
45CONFIG_MTD_M25P80=y 46CONFIG_MTD_M25P80=y
47CONFIG_EEPROM_AT24=y
46CONFIG_BLK_DEV_SD=y 48CONFIG_BLK_DEV_SD=y
47CONFIG_ATA=y 49CONFIG_ATA=y
48CONFIG_SATA_RCAR=y 50CONFIG_SATA_RCAR=y
@@ -75,9 +77,11 @@ CONFIG_SERIAL_SH_SCI=y
75CONFIG_SERIAL_SH_SCI_NR_UARTS=20 77CONFIG_SERIAL_SH_SCI_NR_UARTS=20
76CONFIG_SERIAL_SH_SCI_CONSOLE=y 78CONFIG_SERIAL_SH_SCI_CONSOLE=y
77CONFIG_I2C_GPIO=y 79CONFIG_I2C_GPIO=y
80CONFIG_I2C_SH_MOBILE=y
78CONFIG_I2C_RCAR=y 81CONFIG_I2C_RCAR=y
79CONFIG_SPI=y 82CONFIG_SPI=y
80CONFIG_SPI_RSPI=y 83CONFIG_SPI_RSPI=y
84CONFIG_SPI_SH_MSIOF=y
81CONFIG_GPIO_EM=y 85CONFIG_GPIO_EM=y
82CONFIG_GPIO_RCAR=y 86CONFIG_GPIO_RCAR=y
83# CONFIG_HWMON is not set 87# CONFIG_HWMON is not set
@@ -88,10 +92,14 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
88CONFIG_REGULATOR_GPIO=y 92CONFIG_REGULATOR_GPIO=y
89CONFIG_MEDIA_SUPPORT=y 93CONFIG_MEDIA_SUPPORT=y
90CONFIG_MEDIA_CAMERA_SUPPORT=y 94CONFIG_MEDIA_CAMERA_SUPPORT=y
95CONFIG_MEDIA_CONTROLLER=y
96CONFIG_VIDEO_V4L2_SUBDEV_API=y
91CONFIG_V4L_PLATFORM_DRIVERS=y 97CONFIG_V4L_PLATFORM_DRIVERS=y
92CONFIG_SOC_CAMERA=y 98CONFIG_SOC_CAMERA=y
93CONFIG_SOC_CAMERA_PLATFORM=y 99CONFIG_SOC_CAMERA_PLATFORM=y
94CONFIG_VIDEO_RCAR_VIN=y 100CONFIG_VIDEO_RCAR_VIN=y
101CONFIG_V4L_MEM2MEM_DRIVERS=y
102CONFIG_VIDEO_RENESAS_VSP1=y
95# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set 103# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
96CONFIG_VIDEO_ADV7180=y 104CONFIG_VIDEO_ADV7180=y
97CONFIG_DRM=y 105CONFIG_DRM=y
@@ -100,7 +108,13 @@ CONFIG_SOUND=y
100CONFIG_SND=y 108CONFIG_SND=y
101CONFIG_SND_SOC=y 109CONFIG_SND_SOC=y
102CONFIG_SND_SOC_RCAR=y 110CONFIG_SND_SOC_RCAR=y
111CONFIG_USB=y
103CONFIG_USB_RCAR_GEN2_PHY=y 112CONFIG_USB_RCAR_GEN2_PHY=y
113CONFIG_USB_EHCI_HCD=y
114CONFIG_USB_OHCI_HCD=y
115CONFIG_USB_RENESAS_USBHS=y
116CONFIG_USB_GADGET=y
117CONFIG_USB_RENESAS_USBHS_UDC=y
104CONFIG_MMC=y 118CONFIG_MMC=y
105CONFIG_MMC_SDHI=y 119CONFIG_MMC_SDHI=y
106CONFIG_MMC_SH_MMCIF=y 120CONFIG_MMC_SH_MMCIF=y
diff --git a/arch/arm/configs/sunxi_defconfig b/arch/arm/configs/sunxi_defconfig
index 81ba78eaf54a..4b259569a006 100644
--- a/arch/arm/configs/sunxi_defconfig
+++ b/arch/arm/configs/sunxi_defconfig
@@ -62,7 +62,6 @@ CONFIG_LEDS_GPIO=y
62CONFIG_LEDS_TRIGGERS=y 62CONFIG_LEDS_TRIGGERS=y
63CONFIG_LEDS_TRIGGER_HEARTBEAT=y 63CONFIG_LEDS_TRIGGER_HEARTBEAT=y
64CONFIG_LEDS_TRIGGER_DEFAULT_ON=y 64CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
65CONFIG_COMMON_CLK_DEBUG=y
66# CONFIG_IOMMU_SUPPORT is not set 65# CONFIG_IOMMU_SUPPORT is not set
67CONFIG_TMPFS=y 66CONFIG_TMPFS=y
68CONFIG_NFS_FS=y 67CONFIG_NFS_FS=y
diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
index 2926281368ab..fb25e2982f64 100644
--- a/arch/arm/configs/tegra_defconfig
+++ b/arch/arm/configs/tegra_defconfig
@@ -73,6 +73,11 @@ CONFIG_INET6_IPCOMP=y
73CONFIG_IPV6_MIP6=y 73CONFIG_IPV6_MIP6=y
74CONFIG_IPV6_TUNNEL=y 74CONFIG_IPV6_TUNNEL=y
75CONFIG_IPV6_MULTIPLE_TABLES=y 75CONFIG_IPV6_MULTIPLE_TABLES=y
76CONFIG_CAN=y
77CONFIG_CAN_RAW=y
78CONFIG_CAN_BCM=y
79CONFIG_CAN_DEV=y
80CONFIG_CAN_MCP251X=y
76CONFIG_BT=y 81CONFIG_BT=y
77CONFIG_BT_RFCOMM=y 82CONFIG_BT_RFCOMM=y
78CONFIG_BT_BNEP=y 83CONFIG_BT_BNEP=y
@@ -90,6 +95,7 @@ CONFIG_DMA_CMA=y
90CONFIG_CMA_SIZE_MBYTES=64 95CONFIG_CMA_SIZE_MBYTES=64
91CONFIG_MTD=y 96CONFIG_MTD=y
92CONFIG_MTD_M25P80=y 97CONFIG_MTD_M25P80=y
98CONFIG_MTD_SPI_NOR=y
93CONFIG_PROC_DEVICETREE=y 99CONFIG_PROC_DEVICETREE=y
94CONFIG_BLK_DEV_LOOP=y 100CONFIG_BLK_DEV_LOOP=y
95CONFIG_AD525X_DPOT=y 101CONFIG_AD525X_DPOT=y
@@ -97,6 +103,7 @@ CONFIG_AD525X_DPOT_I2C=y
97CONFIG_ICS932S401=y 103CONFIG_ICS932S401=y
98CONFIG_APDS9802ALS=y 104CONFIG_APDS9802ALS=y
99CONFIG_ISL29003=y 105CONFIG_ISL29003=y
106CONFIG_EEPROM_AT24=y
100CONFIG_SCSI=y 107CONFIG_SCSI=y
101CONFIG_BLK_DEV_SD=y 108CONFIG_BLK_DEV_SD=y
102CONFIG_BLK_DEV_SR=y 109CONFIG_BLK_DEV_SR=y
@@ -112,6 +119,7 @@ CONFIG_USB_NET_SMSC95XX=y
112CONFIG_BRCMFMAC=m 119CONFIG_BRCMFMAC=m
113CONFIG_RT2X00=y 120CONFIG_RT2X00=y
114CONFIG_RT2800USB=m 121CONFIG_RT2800USB=m
122CONFIG_INPUT_JOYDEV=y
115CONFIG_INPUT_EVDEV=y 123CONFIG_INPUT_EVDEV=y
116CONFIG_KEYBOARD_GPIO=y 124CONFIG_KEYBOARD_GPIO=y
117CONFIG_KEYBOARD_TEGRA=y 125CONFIG_KEYBOARD_TEGRA=y
@@ -181,6 +189,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
181# CONFIG_BACKLIGHT_GENERIC is not set 189# CONFIG_BACKLIGHT_GENERIC is not set
182CONFIG_BACKLIGHT_PWM=y 190CONFIG_BACKLIGHT_PWM=y
183CONFIG_FRAMEBUFFER_CONSOLE=y 191CONFIG_FRAMEBUFFER_CONSOLE=y
192CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
184CONFIG_LOGO=y 193CONFIG_LOGO=y
185CONFIG_SOUND=y 194CONFIG_SOUND=y
186CONFIG_SND=y 195CONFIG_SND=y
@@ -222,6 +231,7 @@ CONFIG_LEDS_TRIGGER_TRANSIENT=y
222CONFIG_LEDS_TRIGGER_CAMERA=y 231CONFIG_LEDS_TRIGGER_CAMERA=y
223CONFIG_RTC_CLASS=y 232CONFIG_RTC_CLASS=y
224CONFIG_RTC_DRV_AS3722=y 233CONFIG_RTC_DRV_AS3722=y
234CONFIG_RTC_DRV_DS1307=y
225CONFIG_RTC_DRV_MAX8907=y 235CONFIG_RTC_DRV_MAX8907=y
226CONFIG_RTC_DRV_PALMAS=y 236CONFIG_RTC_DRV_PALMAS=y
227CONFIG_RTC_DRV_TPS6586X=y 237CONFIG_RTC_DRV_TPS6586X=y
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c
index ecdc7d44fa70..06d63d5651f3 100644
--- a/arch/arm/mach-davinci/board-dm355-evm.c
+++ b/arch/arm/mach-davinci/board-dm355-evm.c
@@ -350,11 +350,7 @@ static struct davinci_mmc_config dm355evm_mmc_config = {
350 * you have proper Mini-B or Mini-A cables (or Mini-A adapters) 350 * you have proper Mini-B or Mini-A cables (or Mini-A adapters)
351 * the ID pin won't need any help. 351 * the ID pin won't need any help.
352 */ 352 */
353#ifdef CONFIG_USB_MUSB_PERIPHERAL
354#define USB_ID_VALUE 0 /* ID pulled high; *should* float */
355#else
356#define USB_ID_VALUE 1 /* ID pulled low */ 353#define USB_ID_VALUE 1 /* ID pulled low */
357#endif
358 354
359static struct spi_eeprom at25640a = { 355static struct spi_eeprom at25640a = {
360 .byte_len = SZ_64K / 8, 356 .byte_len = SZ_64K / 8,
diff --git a/arch/arm/mach-davinci/board-dm355-leopard.c b/arch/arm/mach-davinci/board-dm355-leopard.c
index 43bacbf15314..680a7a2d9102 100644
--- a/arch/arm/mach-davinci/board-dm355-leopard.c
+++ b/arch/arm/mach-davinci/board-dm355-leopard.c
@@ -208,11 +208,7 @@ static struct davinci_mmc_config dm355leopard_mmc_config = {
208 * you have proper Mini-B or Mini-A cables (or Mini-A adapters) 208 * you have proper Mini-B or Mini-A cables (or Mini-A adapters)
209 * the ID pin won't need any help. 209 * the ID pin won't need any help.
210 */ 210 */
211#ifdef CONFIG_USB_MUSB_PERIPHERAL
212#define USB_ID_VALUE 0 /* ID pulled high; *should* float */
213#else
214#define USB_ID_VALUE 1 /* ID pulled low */ 211#define USB_ID_VALUE 1 /* ID pulled low */
215#endif
216 212
217static struct spi_eeprom at25640a = { 213static struct spi_eeprom at25640a = {
218 .byte_len = SZ_64K / 8, 214 .byte_len = SZ_64K / 8,
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c
index 65d2acb31498..5b45d266d83e 100644
--- a/arch/arm/mach-omap1/board-h2.c
+++ b/arch/arm/mach-omap1/board-h2.c
@@ -346,7 +346,7 @@ static struct omap_usb_config h2_usb_config __initdata = {
346 /* usb1 has a Mini-AB port and external isp1301 transceiver */ 346 /* usb1 has a Mini-AB port and external isp1301 transceiver */
347 .otg = 2, 347 .otg = 2,
348 348
349#ifdef CONFIG_USB_GADGET_OMAP 349#if IS_ENABLED(CONFIG_USB_OMAP)
350 .hmc_mode = 19, /* 0:host(off) 1:dev|otg 2:disabled */ 350 .hmc_mode = 19, /* 0:host(off) 1:dev|otg 2:disabled */
351 /* .hmc_mode = 21,*/ /* 0:host(off) 1:dev(loopback) 2:host(loopback) */ 351 /* .hmc_mode = 21,*/ /* 0:host(off) 1:dev(loopback) 2:host(loopback) */
352#elif defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 352#elif defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
index 816ecd13f81e..bfed4f928663 100644
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -366,7 +366,7 @@ static struct omap_usb_config h3_usb_config __initdata = {
366 /* usb1 has a Mini-AB port and external isp1301 transceiver */ 366 /* usb1 has a Mini-AB port and external isp1301 transceiver */
367 .otg = 2, 367 .otg = 2,
368 368
369#ifdef CONFIG_USB_GADGET_OMAP 369#if IS_ENABLED(CONFIG_USB_OMAP)
370 .hmc_mode = 19, /* 0:host(off) 1:dev|otg 2:disabled */ 370 .hmc_mode = 19, /* 0:host(off) 1:dev|otg 2:disabled */
371#elif defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 371#elif defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
372 /* NONSTANDARD CABLE NEEDED (B-to-Mini-B) */ 372 /* NONSTANDARD CABLE NEEDED (B-to-Mini-B) */
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c
index bd5f02e9c354..c49ce83cc1eb 100644
--- a/arch/arm/mach-omap1/board-innovator.c
+++ b/arch/arm/mach-omap1/board-innovator.c
@@ -312,7 +312,7 @@ static struct omap_usb_config h2_usb_config __initdata = {
312 /* usb1 has a Mini-AB port and external isp1301 transceiver */ 312 /* usb1 has a Mini-AB port and external isp1301 transceiver */
313 .otg = 2, 313 .otg = 2,
314 314
315#ifdef CONFIG_USB_GADGET_OMAP 315#if IS_ENABLED(CONFIG_USB_OMAP)
316 .hmc_mode = 19, /* 0:host(off) 1:dev|otg 2:disabled */ 316 .hmc_mode = 19, /* 0:host(off) 1:dev|otg 2:disabled */
317 /* .hmc_mode = 21,*/ /* 0:host(off) 1:dev(loopback) 2:host(loopback) */ 317 /* .hmc_mode = 21,*/ /* 0:host(off) 1:dev(loopback) 2:host(loopback) */
318#elif defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 318#elif defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c
index 3a0262156e93..7436d4cf6596 100644
--- a/arch/arm/mach-omap1/board-osk.c
+++ b/arch/arm/mach-omap1/board-osk.c
@@ -283,7 +283,7 @@ static struct omap_usb_config osk_usb_config __initdata = {
283 * be used, with a NONSTANDARD gender-bending cable/dongle, as 283 * be used, with a NONSTANDARD gender-bending cable/dongle, as
284 * a peripheral. 284 * a peripheral.
285 */ 285 */
286#ifdef CONFIG_USB_GADGET_OMAP 286#if IS_ENABLED(CONFIG_USB_OMAP)
287 .register_dev = 1, 287 .register_dev = 1,
288 .hmc_mode = 0, 288 .hmc_mode = 0,
289#else 289#else
diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c
index 0a8d3349149c..29e526235dc2 100644
--- a/arch/arm/mach-omap1/board-sx1.c
+++ b/arch/arm/mach-omap1/board-sx1.c
@@ -266,31 +266,6 @@ static struct physmap_flash_data sx1_flash_data = {
266 .nr_parts = ARRAY_SIZE(sx1_partitions), 266 .nr_parts = ARRAY_SIZE(sx1_partitions),
267}; 267};
268 268
269#ifdef CONFIG_SX1_OLD_FLASH
270/* MTD Intel StrataFlash - old flashes */
271static struct resource sx1_old_flash_resource[] = {
272 [0] = {
273 .start = OMAP_CS0_PHYS, /* Physical */
274 .end = OMAP_CS0_PHYS + SZ_16M - 1,,
275 .flags = IORESOURCE_MEM,
276 },
277 [1] = {
278 .start = OMAP_CS1_PHYS,
279 .end = OMAP_CS1_PHYS + SZ_8M - 1,
280 .flags = IORESOURCE_MEM,
281 },
282};
283
284static struct platform_device sx1_flash_device = {
285 .name = "physmap-flash",
286 .id = 0,
287 .dev = {
288 .platform_data = &sx1_flash_data,
289 },
290 .num_resources = 2,
291 .resource = &sx1_old_flash_resource,
292};
293#else
294/* MTD Intel 4000 flash - new flashes */ 269/* MTD Intel 4000 flash - new flashes */
295static struct resource sx1_new_flash_resource = { 270static struct resource sx1_new_flash_resource = {
296 .start = OMAP_CS0_PHYS, 271 .start = OMAP_CS0_PHYS,
@@ -307,7 +282,6 @@ static struct platform_device sx1_flash_device = {
307 .num_resources = 1, 282 .num_resources = 1,
308 .resource = &sx1_new_flash_resource, 283 .resource = &sx1_new_flash_resource,
309}; 284};
310#endif
311 285
312/*----------- USB -------------------------*/ 286/*----------- USB -------------------------*/
313 287
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index dbee729e3b6d..34b4c0044961 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -123,19 +123,8 @@ void omap1_pm_idle(void)
123#warning Enable 32kHz OS timer in order to allow sleep states in idle 123#warning Enable 32kHz OS timer in order to allow sleep states in idle
124 use_idlect1 = use_idlect1 & ~(1 << 9); 124 use_idlect1 = use_idlect1 & ~(1 << 9);
125#else 125#else
126 126 if (enable_dyn_sleep)
127 while (enable_dyn_sleep) {
128
129#ifdef CONFIG_CBUS_TAHVO_USB
130 extern int vbus_active;
131 /* Clock requirements? */
132 if (vbus_active)
133 break;
134#endif
135 do_sleep = 1; 127 do_sleep = 1;
136 break;
137 }
138
139#endif 128#endif
140 129
141#ifdef CONFIG_OMAP_DM_TIMER 130#ifdef CONFIG_OMAP_DM_TIMER
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 543d9a882de3..4f9383cecf76 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -262,12 +262,7 @@ static struct usbhs_phy_data phy_data[] __initdata = {
262 262
263static struct usbhs_omap_platform_data usbhs_bdata __initdata = { 263static struct usbhs_omap_platform_data usbhs_bdata __initdata = {
264 .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, 264 .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY,
265#if defined(CONFIG_PANEL_SHARP_LQ043T1DG01) || \
266 defined(CONFIG_PANEL_SHARP_LQ043T1DG01_MODULE)
267 .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED,
268#else
269 .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY, 265 .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
270#endif
271}; 266};
272 267
273#ifdef CONFIG_OMAP_MUX 268#ifdef CONFIG_OMAP_MUX
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
index 119efaf5808a..a2e035e0792a 100644
--- a/arch/arm/mach-omap2/board-omap3stalker.c
+++ b/arch/arm/mach-omap2/board-omap3stalker.c
@@ -121,11 +121,7 @@ static struct platform_device omap3stalker_tfp410_device = {
121static struct connector_atv_platform_data omap3stalker_tv_pdata = { 121static struct connector_atv_platform_data omap3stalker_tv_pdata = {
122 .name = "tv", 122 .name = "tv",
123 .source = "venc.0", 123 .source = "venc.0",
124#if defined(CONFIG_OMAP2_VENC_OUT_TYPE_SVIDEO)
125 .connector_type = OMAP_DSS_VENC_TYPE_SVIDEO,
126#elif defined(CONFIG_OMAP2_VENC_OUT_TYPE_COMPOSITE)
127 .connector_type = OMAP_DSS_VENC_TYPE_COMPOSITE, 124 .connector_type = OMAP_DSS_VENC_TYPE_COMPOSITE,
128#endif
129 .invert_polarity = false, 125 .invert_polarity = false,
130}; 126};
131 127
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index c3b73351cb7a..fa298bd2476e 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -226,6 +226,14 @@ static void __init am3517_evm_legacy_init(void)
226 am35xx_emac_reset(); 226 am35xx_emac_reset();
227} 227}
228 228
229static struct platform_device omap3_rom_rng_device = {
230 .name = "omap3-rom-rng",
231 .id = -1,
232 .dev = {
233 .platform_data = rx51_secure_rng_call,
234 },
235};
236
229static void __init nokia_n900_legacy_init(void) 237static void __init nokia_n900_legacy_init(void)
230{ 238{
231 hsmmc2_internal_input_clk(); 239 hsmmc2_internal_input_clk();
@@ -239,6 +247,10 @@ static void __init nokia_n900_legacy_init(void)
239 pr_warning("RX-51: Not enabling ARM errata 430973 workaround\n"); 247 pr_warning("RX-51: Not enabling ARM errata 430973 workaround\n");
240 pr_warning("Thumb binaries may crash randomly without this workaround\n"); 248 pr_warning("Thumb binaries may crash randomly without this workaround\n");
241 } 249 }
250
251 pr_info("RX-51: Registring OMAP3 HWRNG device\n");
252 platform_device_register(&omap3_rom_rng_device);
253
242 } 254 }
243} 255}
244#endif /* CONFIG_ARCH_OMAP3 */ 256#endif /* CONFIG_ARCH_OMAP3 */
diff --git a/arch/arm/mach-shmobile/Kconfig b/arch/arm/mach-shmobile/Kconfig
index 49d90ca62e87..dbd954e61aa7 100644
--- a/arch/arm/mach-shmobile/Kconfig
+++ b/arch/arm/mach-shmobile/Kconfig
@@ -228,17 +228,6 @@ config MACH_GENMAI
228 depends on ARCH_R7S72100 228 depends on ARCH_R7S72100
229 select USE_OF 229 select USE_OF
230 230
231config MACH_GENMAI_REFERENCE
232 bool "Genmai board - Reference Device Tree Implementation"
233 depends on ARCH_R7S72100
234 select USE_OF
235 ---help---
236 Use reference implementation of Genmai board support
237 which makes use of device tree at the expense
238 of not supporting a number of devices.
239
240 This is intended to aid developers
241
242config MACH_MARZEN 231config MACH_MARZEN
243 bool "MARZEN board" 232 bool "MARZEN board"
244 depends on ARCH_R8A7779 233 depends on ARCH_R8A7779
diff --git a/arch/arm/mach-shmobile/Makefile b/arch/arm/mach-shmobile/Makefile
index 9c5cd8c53a85..38d5fe825e93 100644
--- a/arch/arm/mach-shmobile/Makefile
+++ b/arch/arm/mach-shmobile/Makefile
@@ -66,7 +66,6 @@ obj-$(CONFIG_MACH_MACKEREL) += board-mackerel.o
66obj-$(CONFIG_MACH_BOCKW) += board-bockw.o 66obj-$(CONFIG_MACH_BOCKW) += board-bockw.o
67obj-$(CONFIG_MACH_BOCKW_REFERENCE) += board-bockw-reference.o 67obj-$(CONFIG_MACH_BOCKW_REFERENCE) += board-bockw-reference.o
68obj-$(CONFIG_MACH_GENMAI) += board-genmai.o 68obj-$(CONFIG_MACH_GENMAI) += board-genmai.o
69obj-$(CONFIG_MACH_GENMAI_REFERENCE) += board-genmai-reference.o
70obj-$(CONFIG_MACH_MARZEN) += board-marzen.o 69obj-$(CONFIG_MACH_MARZEN) += board-marzen.o
71obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o 70obj-$(CONFIG_MACH_MARZEN_REFERENCE) += board-marzen-reference.o
72obj-$(CONFIG_MACH_LAGER) += board-lager.o 71obj-$(CONFIG_MACH_LAGER) += board-lager.o
diff --git a/arch/arm/mach-shmobile/Makefile.boot b/arch/arm/mach-shmobile/Makefile.boot
index 99455ecafa05..918fccffa1b6 100644
--- a/arch/arm/mach-shmobile/Makefile.boot
+++ b/arch/arm/mach-shmobile/Makefile.boot
@@ -7,7 +7,6 @@ loadaddr-$(CONFIG_MACH_ARMADILLO800EVA_REFERENCE) += 0x40008000
7loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000 7loadaddr-$(CONFIG_MACH_BOCKW) += 0x60008000
8loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000 8loadaddr-$(CONFIG_MACH_BOCKW_REFERENCE) += 0x60008000
9loadaddr-$(CONFIG_MACH_GENMAI) += 0x08008000 9loadaddr-$(CONFIG_MACH_GENMAI) += 0x08008000
10loadaddr-$(CONFIG_MACH_GENMAI_REFERENCE) += 0x08008000
11loadaddr-$(CONFIG_MACH_KOELSCH) += 0x40008000 10loadaddr-$(CONFIG_MACH_KOELSCH) += 0x40008000
12loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000 11loadaddr-$(CONFIG_MACH_KZM9G) += 0x41008000
13loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000 12loadaddr-$(CONFIG_MACH_KZM9G_REFERENCE) += 0x41008000
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
index da4163ff31a2..bc2cf7a89534 100644
--- a/arch/arm/mach-shmobile/board-armadillo800eva.c
+++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
@@ -1300,11 +1300,6 @@ static void __init eva_earlytimer_init(void)
1300 eva_clock_init(); 1300 eva_clock_init();
1301} 1301}
1302 1302
1303static void __init eva_add_early_devices(void)
1304{
1305 r8a7740_add_early_devices();
1306}
1307
1308#define RESCNT2 IOMEM(0xe6188020) 1303#define RESCNT2 IOMEM(0xe6188020)
1309static void eva_restart(enum reboot_mode mode, const char *cmd) 1304static void eva_restart(enum reboot_mode mode, const char *cmd)
1310{ 1305{
@@ -1319,7 +1314,7 @@ static const char *eva_boards_compat_dt[] __initdata = {
1319 1314
1320DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva") 1315DT_MACHINE_START(ARMADILLO800EVA_DT, "armadillo800eva")
1321 .map_io = r8a7740_map_io, 1316 .map_io = r8a7740_map_io,
1322 .init_early = eva_add_early_devices, 1317 .init_early = r8a7740_add_early_devices,
1323 .init_irq = r8a7740_init_irq_of, 1318 .init_irq = r8a7740_init_irq_of,
1324 .init_machine = eva_init, 1319 .init_machine = eva_init,
1325 .init_late = shmobile_init_late, 1320 .init_late = shmobile_init_late,
diff --git a/arch/arm/mach-shmobile/board-bockw.c b/arch/arm/mach-shmobile/board-bockw.c
index b4122f8cb8d9..f444be2f241e 100644
--- a/arch/arm/mach-shmobile/board-bockw.c
+++ b/arch/arm/mach-shmobile/board-bockw.c
@@ -345,24 +345,39 @@ static struct rsnd_ssi_platform_info rsnd_ssi[] = {
345 RSND_SSI_UNUSED, /* SSI 0 */ 345 RSND_SSI_UNUSED, /* SSI 0 */
346 RSND_SSI_UNUSED, /* SSI 1 */ 346 RSND_SSI_UNUSED, /* SSI 1 */
347 RSND_SSI_UNUSED, /* SSI 2 */ 347 RSND_SSI_UNUSED, /* SSI 2 */
348 RSND_SSI_SET(1, HPBDMA_SLAVE_HPBIF3_TX, gic_iid(0x85), RSND_SSI_PLAY), 348 RSND_SSI(HPBDMA_SLAVE_HPBIF3_TX, gic_iid(0x85), 0),
349 RSND_SSI_SET(2, HPBDMA_SLAVE_HPBIF4_RX, gic_iid(0x85), RSND_SSI_CLK_PIN_SHARE), 349 RSND_SSI(HPBDMA_SLAVE_HPBIF4_RX, gic_iid(0x85), RSND_SSI_CLK_PIN_SHARE),
350 RSND_SSI_SET(0, HPBDMA_SLAVE_HPBIF5_TX, gic_iid(0x86), RSND_SSI_PLAY), 350 RSND_SSI(HPBDMA_SLAVE_HPBIF5_TX, gic_iid(0x86), 0),
351 RSND_SSI_SET(0, HPBDMA_SLAVE_HPBIF6_RX, gic_iid(0x86), 0), 351 RSND_SSI(HPBDMA_SLAVE_HPBIF6_RX, gic_iid(0x86), 0),
352 RSND_SSI_SET(3, HPBDMA_SLAVE_HPBIF7_TX, gic_iid(0x86), RSND_SSI_PLAY), 352 RSND_SSI(HPBDMA_SLAVE_HPBIF7_TX, gic_iid(0x86), 0),
353 RSND_SSI_SET(4, HPBDMA_SLAVE_HPBIF8_RX, gic_iid(0x86), RSND_SSI_CLK_PIN_SHARE), 353 RSND_SSI(HPBDMA_SLAVE_HPBIF8_RX, gic_iid(0x86), RSND_SSI_CLK_PIN_SHARE),
354}; 354};
355 355
356static struct rsnd_scu_platform_info rsnd_scu[9] = { 356static struct rsnd_src_platform_info rsnd_src[9] = {
357 { .flags = 0, }, /* SRU 0 */ 357 RSND_SRC_UNUSED, /* SRU 0 */
358 { .flags = 0, }, /* SRU 1 */ 358 RSND_SRC_UNUSED, /* SRU 1 */
359 { .flags = 0, }, /* SRU 2 */ 359 RSND_SRC_UNUSED, /* SRU 2 */
360 { .flags = RSND_SCU_USE_HPBIF, }, 360 RSND_SRC(0, 0),
361 { .flags = RSND_SCU_USE_HPBIF, }, 361 RSND_SRC(0, 0),
362 { .flags = RSND_SCU_USE_HPBIF, }, 362 RSND_SRC(0, 0),
363 { .flags = RSND_SCU_USE_HPBIF, }, 363 RSND_SRC(0, 0),
364 { .flags = RSND_SCU_USE_HPBIF, }, 364 RSND_SRC(0, 0),
365 { .flags = RSND_SCU_USE_HPBIF, }, 365 RSND_SRC(0, 0),
366};
367
368static struct rsnd_dai_platform_info rsnd_dai[] = {
369 {
370 .playback = { .ssi = &rsnd_ssi[5], .src = &rsnd_src[5] },
371 .capture = { .ssi = &rsnd_ssi[6], .src = &rsnd_src[6] },
372 }, {
373 .playback = { .ssi = &rsnd_ssi[3], .src = &rsnd_src[3] },
374 }, {
375 .capture = { .ssi = &rsnd_ssi[4], .src = &rsnd_src[4] },
376 }, {
377 .playback = { .ssi = &rsnd_ssi[7], .src = &rsnd_src[7] },
378 }, {
379 .capture = { .ssi = &rsnd_ssi[8], .src = &rsnd_src[8] },
380 },
366}; 381};
367 382
368enum { 383enum {
@@ -437,8 +452,10 @@ static struct rcar_snd_info rsnd_info = {
437 .flags = RSND_GEN1, 452 .flags = RSND_GEN1,
438 .ssi_info = rsnd_ssi, 453 .ssi_info = rsnd_ssi,
439 .ssi_info_nr = ARRAY_SIZE(rsnd_ssi), 454 .ssi_info_nr = ARRAY_SIZE(rsnd_ssi),
440 .scu_info = rsnd_scu, 455 .src_info = rsnd_src,
441 .scu_info_nr = ARRAY_SIZE(rsnd_scu), 456 .src_info_nr = ARRAY_SIZE(rsnd_src),
457 .dai_info = rsnd_dai,
458 .dai_info_nr = ARRAY_SIZE(rsnd_dai),
442 .start = rsnd_start, 459 .start = rsnd_start,
443 .stop = rsnd_stop, 460 .stop = rsnd_stop,
444}; 461};
@@ -591,6 +608,7 @@ static void __init bockw_init(void)
591{ 608{
592 void __iomem *base; 609 void __iomem *base;
593 struct clk *clk; 610 struct clk *clk;
611 struct platform_device *pdev;
594 int i; 612 int i;
595 613
596 r8a7778_clock_init(); 614 r8a7778_clock_init();
@@ -673,9 +691,6 @@ static void __init bockw_init(void)
673 } 691 }
674 692
675 /* for Audio */ 693 /* for Audio */
676 clk = clk_get(NULL, "audio_clk_b");
677 clk_set_rate(clk, 24576000);
678 clk_put(clk);
679 rsnd_codec_power(5, 1); /* enable ak4642 */ 694 rsnd_codec_power(5, 1); /* enable ak4642 */
680 695
681 platform_device_register_simple( 696 platform_device_register_simple(
@@ -684,11 +699,15 @@ static void __init bockw_init(void)
684 platform_device_register_simple( 699 platform_device_register_simple(
685 "ak4554-adc-dac", 1, NULL, 0); 700 "ak4554-adc-dac", 1, NULL, 0);
686 701
687 platform_device_register_resndata( 702 pdev = platform_device_register_resndata(
688 &platform_bus, "rcar_sound", -1, 703 &platform_bus, "rcar_sound", -1,
689 rsnd_resources, ARRAY_SIZE(rsnd_resources), 704 rsnd_resources, ARRAY_SIZE(rsnd_resources),
690 &rsnd_info, sizeof(rsnd_info)); 705 &rsnd_info, sizeof(rsnd_info));
691 706
707 clk = clk_get(&pdev->dev, "clk_b");
708 clk_set_rate(clk, 24576000);
709 clk_put(clk);
710
692 for (i = 0; i < ARRAY_SIZE(rsnd_card_info); i++) { 711 for (i = 0; i < ARRAY_SIZE(rsnd_card_info); i++) {
693 struct platform_device_info cardinfo = { 712 struct platform_device_info cardinfo = {
694 .parent = &platform_bus, 713 .parent = &platform_bus,
diff --git a/arch/arm/mach-shmobile/board-genmai-reference.c b/arch/arm/mach-shmobile/board-genmai-reference.c
index 7630c1053e32..2ff6ad6e608e 100644
--- a/arch/arm/mach-shmobile/board-genmai-reference.c
+++ b/arch/arm/mach-shmobile/board-genmai-reference.c
@@ -18,27 +18,31 @@
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-provider.h>
22#include <linux/kernel.h> 21#include <linux/kernel.h>
23#include <linux/of_platform.h> 22#include <linux/of_platform.h>
23#include <mach/clock.h>
24#include <mach/common.h> 24#include <mach/common.h>
25#include <mach/r7s72100.h> 25#include <mach/r7s72100.h>
26#include <asm/mach-types.h> 26#include <asm/mach-types.h>
27#include <asm/mach/arch.h> 27#include <asm/mach/arch.h>
28 28
29/*
30 * This is a really crude hack to provide clkdev support to platform
31 * devices until they get moved to DT.
32 */
33static const struct clk_name clk_names[] = {
34 { "mtu2", "fck", "sh-mtu2" },
35};
36
29static void __init genmai_add_standard_devices(void) 37static void __init genmai_add_standard_devices(void)
30{ 38{
31#ifdef CONFIG_COMMON_CLK 39 shmobile_clk_workaround(clk_names, ARRAY_SIZE(clk_names), true);
32 of_clk_init(NULL);
33#else
34 r7s72100_clock_init();
35#endif
36 r7s72100_add_dt_devices(); 40 r7s72100_add_dt_devices();
37 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 41 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
38} 42}
39 43
40static const char * const genmai_boards_compat_dt[] __initconst = { 44static const char * const genmai_boards_compat_dt[] __initconst = {
41 "renesas,genmai-reference", 45 "renesas,genmai",
42 NULL, 46 NULL,
43}; 47};
44 48
diff --git a/arch/arm/mach-shmobile/board-genmai.c b/arch/arm/mach-shmobile/board-genmai.c
index 6c328d63b819..c94201ee8596 100644
--- a/arch/arm/mach-shmobile/board-genmai.c
+++ b/arch/arm/mach-shmobile/board-genmai.c
@@ -21,6 +21,7 @@
21 21
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/platform_device.h> 23#include <linux/platform_device.h>
24#include <linux/serial_sci.h>
24#include <linux/sh_eth.h> 25#include <linux/sh_eth.h>
25#include <linux/spi/rspi.h> 26#include <linux/spi/rspi.h>
26#include <linux/spi/spi.h> 27#include <linux/spi/spi.h>
@@ -89,6 +90,40 @@ static const struct spi_board_info spi_info[] __initconst = {
89 }, 90 },
90}; 91};
91 92
93/* SCIF */
94#define R7S72100_SCIF(index, baseaddr, irq) \
95static const struct plat_sci_port scif##index##_platform_data = { \
96 .type = PORT_SCIF, \
97 .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, \
98 .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, \
99 .scscr = SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE | \
100 SCSCR_REIE, \
101}; \
102 \
103static struct resource scif##index##_resources[] = { \
104 DEFINE_RES_MEM(baseaddr, 0x100), \
105 DEFINE_RES_IRQ(irq + 1), \
106 DEFINE_RES_IRQ(irq + 2), \
107 DEFINE_RES_IRQ(irq + 3), \
108 DEFINE_RES_IRQ(irq), \
109} \
110
111R7S72100_SCIF(0, 0xe8007000, gic_iid(221));
112R7S72100_SCIF(1, 0xe8007800, gic_iid(225));
113R7S72100_SCIF(2, 0xe8008000, gic_iid(229));
114R7S72100_SCIF(3, 0xe8008800, gic_iid(233));
115R7S72100_SCIF(4, 0xe8009000, gic_iid(237));
116R7S72100_SCIF(5, 0xe8009800, gic_iid(241));
117R7S72100_SCIF(6, 0xe800a000, gic_iid(245));
118R7S72100_SCIF(7, 0xe800a800, gic_iid(249));
119
120#define r7s72100_register_scif(index) \
121 platform_device_register_resndata(&platform_bus, "sh-sci", index, \
122 scif##index##_resources, \
123 ARRAY_SIZE(scif##index##_resources), \
124 &scif##index##_platform_data, \
125 sizeof(scif##index##_platform_data))
126
92static void __init genmai_add_standard_devices(void) 127static void __init genmai_add_standard_devices(void)
93{ 128{
94 r7s72100_clock_init(); 129 r7s72100_clock_init();
@@ -102,6 +137,15 @@ static void __init genmai_add_standard_devices(void)
102 r7s72100_register_rspi(3); 137 r7s72100_register_rspi(3);
103 r7s72100_register_rspi(4); 138 r7s72100_register_rspi(4);
104 spi_register_board_info(spi_info, ARRAY_SIZE(spi_info)); 139 spi_register_board_info(spi_info, ARRAY_SIZE(spi_info));
140
141 r7s72100_register_scif(0);
142 r7s72100_register_scif(1);
143 r7s72100_register_scif(2);
144 r7s72100_register_scif(3);
145 r7s72100_register_scif(4);
146 r7s72100_register_scif(5);
147 r7s72100_register_scif(6);
148 r7s72100_register_scif(7);
105} 149}
106 150
107static const char * const genmai_boards_compat_dt[] __initconst = { 151static const char * const genmai_boards_compat_dt[] __initconst = {
diff --git a/arch/arm/mach-shmobile/board-koelsch-reference.c b/arch/arm/mach-shmobile/board-koelsch-reference.c
index ff33d9c4b658..d322a162b4b0 100644
--- a/arch/arm/mach-shmobile/board-koelsch-reference.c
+++ b/arch/arm/mach-shmobile/board-koelsch-reference.c
@@ -19,12 +19,11 @@
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.h>
23#include <linux/clkdev.h>
24#include <linux/dma-mapping.h> 22#include <linux/dma-mapping.h>
25#include <linux/kernel.h> 23#include <linux/kernel.h>
26#include <linux/of_platform.h> 24#include <linux/of_platform.h>
27#include <linux/platform_data/rcar-du.h> 25#include <linux/platform_data/rcar-du.h>
26#include <mach/clock.h>
28#include <mach/common.h> 27#include <mach/common.h>
29#include <mach/irqs.h> 28#include <mach/irqs.h>
30#include <mach/rcar-gen2.h> 29#include <mach/rcar-gen2.h>
@@ -82,49 +81,35 @@ static void __init koelsch_add_du_device(void)
82 platform_device_register_full(&info); 81 platform_device_register_full(&info);
83} 82}
84 83
85static void __init koelsch_add_standard_devices(void) 84/*
86{ 85 * This is a really crude hack to provide clkdev support to platform
87 /* 86 * devices until they get moved to DT.
88 * This is a really crude hack to provide clkdev support to the CMT and 87 */
89 * DU devices until they get moved to DT. 88static const struct clk_name clk_names[] __initconst = {
90 */ 89 { "cmt0", "fck", "sh-cmt-48-gen2.0" },
91 static const struct clk_name { 90 { "du0", "du.0", "rcar-du-r8a7791" },
92 const char *clk; 91 { "du1", "du.1", "rcar-du-r8a7791" },
93 const char *con_id; 92 { "lvds0", "lvds.0", "rcar-du-r8a7791" },
94 const char *dev_id; 93};
95 } clk_names[] = {
96 { "cmt0", NULL, "sh_cmt.0" },
97 { "scifa0", NULL, "sh-sci.0" },
98 { "scifa1", NULL, "sh-sci.1" },
99 { "scifb0", NULL, "sh-sci.2" },
100 { "scifb1", NULL, "sh-sci.3" },
101 { "scifb2", NULL, "sh-sci.4" },
102 { "scifa2", NULL, "sh-sci.5" },
103 { "scif0", NULL, "sh-sci.6" },
104 { "scif1", NULL, "sh-sci.7" },
105 { "scif2", NULL, "sh-sci.8" },
106 { "scif3", NULL, "sh-sci.9" },
107 { "scif4", NULL, "sh-sci.10" },
108 { "scif5", NULL, "sh-sci.11" },
109 { "scifa3", NULL, "sh-sci.12" },
110 { "scifa4", NULL, "sh-sci.13" },
111 { "scifa5", NULL, "sh-sci.14" },
112 { "du0", "du.0", "rcar-du-r8a7791" },
113 { "du1", "du.1", "rcar-du-r8a7791" },
114 { "lvds0", "lvds.0", "rcar-du-r8a7791" },
115 };
116 struct clk *clk;
117 unsigned int i;
118 94
119 for (i = 0; i < ARRAY_SIZE(clk_names); ++i) { 95/*
120 clk = clk_get(NULL, clk_names[i].clk); 96 * This is a really crude hack to work around core platform clock issues
121 if (!IS_ERR(clk)) { 97 */
122 clk_register_clkdev(clk, clk_names[i].con_id, 98static const struct clk_name clk_enables[] __initconst = {
123 clk_names[i].dev_id); 99 { "ether", NULL, "ee700000.ethernet" },
124 clk_put(clk); 100 { "i2c2", NULL, "e6530000.i2c" },
125 } 101 { "msiof0", NULL, "e6e20000.spi" },
126 } 102 { "qspi_mod", NULL, "e6b10000.spi" },
103 { "sdhi0", NULL, "ee100000.sd" },
104 { "sdhi1", NULL, "ee140000.sd" },
105 { "sdhi2", NULL, "ee160000.sd" },
106 { "thermal", NULL, "e61f0000.thermal" },
107};
127 108
109static void __init koelsch_add_standard_devices(void)
110{
111 shmobile_clk_workaround(clk_names, ARRAY_SIZE(clk_names), false);
112 shmobile_clk_workaround(clk_enables, ARRAY_SIZE(clk_enables), true);
128 r8a7791_add_dt_devices(); 113 r8a7791_add_dt_devices();
129 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 114 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
130 115
diff --git a/arch/arm/mach-shmobile/board-koelsch.c b/arch/arm/mach-shmobile/board-koelsch.c
index 3cd8008d09dd..c6c68892caa3 100644
--- a/arch/arm/mach-shmobile/board-koelsch.c
+++ b/arch/arm/mach-shmobile/board-koelsch.c
@@ -216,7 +216,7 @@ static const struct spi_board_info spi_info[] __initconst = {
216 { 216 {
217 .modalias = "m25p80", 217 .modalias = "m25p80",
218 .platform_data = &spi_flash_data, 218 .platform_data = &spi_flash_data,
219 .mode = SPI_MODE_0, 219 .mode = SPI_MODE_0 | SPI_TX_QUAD | SPI_RX_QUAD,
220 .max_speed_hz = 30000000, 220 .max_speed_hz = 30000000,
221 .bus_num = 0, 221 .bus_num = 0,
222 .chip_select = 0, 222 .chip_select = 0,
diff --git a/arch/arm/mach-shmobile/board-lager-reference.c b/arch/arm/mach-shmobile/board-lager-reference.c
index 440aac36d693..749832e3f33c 100644
--- a/arch/arm/mach-shmobile/board-lager-reference.c
+++ b/arch/arm/mach-shmobile/board-lager-reference.c
@@ -18,12 +18,11 @@
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>
23#include <linux/dma-mapping.h> 21#include <linux/dma-mapping.h>
24#include <linux/init.h> 22#include <linux/init.h>
25#include <linux/of_platform.h> 23#include <linux/of_platform.h>
26#include <linux/platform_data/rcar-du.h> 24#include <linux/platform_data/rcar-du.h>
25#include <mach/clock.h>
27#include <mach/common.h> 26#include <mach/common.h>
28#include <mach/irqs.h> 27#include <mach/irqs.h>
29#include <mach/rcar-gen2.h> 28#include <mach/rcar-gen2.h>
@@ -86,46 +85,36 @@ static void __init lager_add_du_device(void)
86 platform_device_register_full(&info); 85 platform_device_register_full(&info);
87} 86}
88 87
89static void __init lager_add_standard_devices(void) 88/*
90{ 89 * This is a really crude hack to provide clkdev support to platform
91 /* 90 * devices until they get moved to DT.
92 * This is a really crude hack to provide clkdev support to platform 91 */
93 * devices until they get moved to DT. 92static const struct clk_name clk_names[] __initconst = {
94 */ 93 { "cmt0", "fck", "sh-cmt-48-gen2.0" },
95 static const struct clk_name { 94 { "du0", "du.0", "rcar-du-r8a7790" },
96 const char *clk; 95 { "du1", "du.1", "rcar-du-r8a7790" },
97 const char *con_id; 96 { "du2", "du.2", "rcar-du-r8a7790" },
98 const char *dev_id; 97 { "lvds0", "lvds.0", "rcar-du-r8a7790" },
99 } clk_names[] = { 98 { "lvds1", "lvds.1", "rcar-du-r8a7790" },
100 { "cmt0", NULL, "sh_cmt.0" }, 99};
101 { "scifa0", NULL, "sh-sci.0" },
102 { "scifa1", NULL, "sh-sci.1" },
103 { "scifb0", NULL, "sh-sci.2" },
104 { "scifb1", NULL, "sh-sci.3" },
105 { "scifb2", NULL, "sh-sci.4" },
106 { "scifa2", NULL, "sh-sci.5" },
107 { "scif0", NULL, "sh-sci.6" },
108 { "scif1", NULL, "sh-sci.7" },
109 { "hscif0", NULL, "sh-sci.8" },
110 { "hscif1", NULL, "sh-sci.9" },
111 { "du0", "du.0", "rcar-du-r8a7790" },
112 { "du1", "du.1", "rcar-du-r8a7790" },
113 { "du2", "du.2", "rcar-du-r8a7790" },
114 { "lvds0", "lvds.0", "rcar-du-r8a7790" },
115 { "lvds1", "lvds.1", "rcar-du-r8a7790" },
116 };
117 struct clk *clk;
118 unsigned int i;
119 100
120 for (i = 0; i < ARRAY_SIZE(clk_names); ++i) { 101/*
121 clk = clk_get(NULL, clk_names[i].clk); 102 * This is a really crude hack to work around core platform clock issues
122 if (!IS_ERR(clk)) { 103 */
123 clk_register_clkdev(clk, clk_names[i].con_id, 104static const struct clk_name clk_enables[] __initconst = {
124 clk_names[i].dev_id); 105 { "ether", NULL, "ee700000.ethernet" },
125 clk_put(clk); 106 { "msiof1", NULL, "e6e10000.spi" },
126 } 107 { "mmcif1", NULL, "ee220000.mmc" },
127 } 108 { "qspi_mod", NULL, "e6b10000.spi" },
109 { "sdhi0", NULL, "ee100000.sd" },
110 { "sdhi2", NULL, "ee140000.sd" },
111 { "thermal", NULL, "e61f0000.thermal" },
112};
128 113
114static void __init lager_add_standard_devices(void)
115{
116 shmobile_clk_workaround(clk_names, ARRAY_SIZE(clk_names), false);
117 shmobile_clk_workaround(clk_enables, ARRAY_SIZE(clk_enables), true);
129 r8a7790_add_dt_devices(); 118 r8a7790_add_dt_devices();
130 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); 119 of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
131 120
diff --git a/arch/arm/mach-shmobile/board-lager.c b/arch/arm/mach-shmobile/board-lager.c
index 18c7e0311aa6..f8b1e05463cc 100644
--- a/arch/arm/mach-shmobile/board-lager.c
+++ b/arch/arm/mach-shmobile/board-lager.c
@@ -325,12 +325,12 @@ static const struct rspi_plat_data qspi_pdata __initconst = {
325 325
326static const struct spi_board_info spi_info[] __initconst = { 326static const struct spi_board_info spi_info[] __initconst = {
327 { 327 {
328 .modalias = "m25p80", 328 .modalias = "m25p80",
329 .platform_data = &spi_flash_data, 329 .platform_data = &spi_flash_data,
330 .mode = SPI_MODE_0, 330 .mode = SPI_MODE_0 | SPI_TX_QUAD | SPI_RX_QUAD,
331 .max_speed_hz = 30000000, 331 .max_speed_hz = 30000000,
332 .bus_num = 0, 332 .bus_num = 0,
333 .chip_select = 0, 333 .chip_select = 0,
334 }, 334 },
335}; 335};
336 336
@@ -567,20 +567,27 @@ static struct resource rsnd_resources[] __initdata = {
567}; 567};
568 568
569static struct rsnd_ssi_platform_info rsnd_ssi[] = { 569static struct rsnd_ssi_platform_info rsnd_ssi[] = {
570 RSND_SSI_SET(0, 0, gic_spi(370), RSND_SSI_PLAY), 570 RSND_SSI(0, gic_spi(370), 0),
571 RSND_SSI_SET(0, 0, gic_spi(371), RSND_SSI_CLK_PIN_SHARE), 571 RSND_SSI(0, gic_spi(371), RSND_SSI_CLK_PIN_SHARE),
572}; 572};
573 573
574static struct rsnd_scu_platform_info rsnd_scu[2] = { 574static struct rsnd_src_platform_info rsnd_src[2] = {
575 /* no member at this point */ 575 /* no member at this point */
576}; 576};
577 577
578static struct rsnd_dai_platform_info rsnd_dai = {
579 .playback = { .ssi = &rsnd_ssi[0], },
580 .capture = { .ssi = &rsnd_ssi[1], },
581};
582
578static struct rcar_snd_info rsnd_info = { 583static struct rcar_snd_info rsnd_info = {
579 .flags = RSND_GEN2, 584 .flags = RSND_GEN2,
580 .ssi_info = rsnd_ssi, 585 .ssi_info = rsnd_ssi,
581 .ssi_info_nr = ARRAY_SIZE(rsnd_ssi), 586 .ssi_info_nr = ARRAY_SIZE(rsnd_ssi),
582 .scu_info = rsnd_scu, 587 .src_info = rsnd_src,
583 .scu_info_nr = ARRAY_SIZE(rsnd_scu), 588 .src_info_nr = ARRAY_SIZE(rsnd_src),
589 .dai_info = &rsnd_dai,
590 .dai_info_nr = 1,
584}; 591};
585 592
586static struct asoc_simple_card_info rsnd_card_info = { 593static struct asoc_simple_card_info rsnd_card_info = {
diff --git a/arch/arm/mach-shmobile/clock-r7s72100.c b/arch/arm/mach-shmobile/clock-r7s72100.c
index bee0073c9b64..df187484de5d 100644
--- a/arch/arm/mach-shmobile/clock-r7s72100.c
+++ b/arch/arm/mach-shmobile/clock-r7s72100.c
@@ -194,17 +194,7 @@ static struct clk_lookup lookups[] = {
194 CLKDEV_DEV_ID("rspi-rz.2", &mstp_clks[MSTP105]), 194 CLKDEV_DEV_ID("rspi-rz.2", &mstp_clks[MSTP105]),
195 CLKDEV_DEV_ID("rspi-rz.3", &mstp_clks[MSTP104]), 195 CLKDEV_DEV_ID("rspi-rz.3", &mstp_clks[MSTP104]),
196 CLKDEV_DEV_ID("rspi-rz.4", &mstp_clks[MSTP103]), 196 CLKDEV_DEV_ID("rspi-rz.4", &mstp_clks[MSTP103]),
197 CLKDEV_DEV_ID("e800c800.spi", &mstp_clks[MSTP107]),
198 CLKDEV_DEV_ID("e800d000.spi", &mstp_clks[MSTP106]),
199 CLKDEV_DEV_ID("e800d800.spi", &mstp_clks[MSTP105]),
200 CLKDEV_DEV_ID("e800e000.spi", &mstp_clks[MSTP104]),
201 CLKDEV_DEV_ID("e800e800.spi", &mstp_clks[MSTP103]),
202 CLKDEV_DEV_ID("fcfee000.i2c", &mstp_clks[MSTP97]),
203 CLKDEV_DEV_ID("fcfee400.i2c", &mstp_clks[MSTP96]),
204 CLKDEV_DEV_ID("fcfee800.i2c", &mstp_clks[MSTP95]),
205 CLKDEV_DEV_ID("fcfeec00.i2c", &mstp_clks[MSTP94]),
206 CLKDEV_DEV_ID("r7s72100-ether", &mstp_clks[MSTP74]), 197 CLKDEV_DEV_ID("r7s72100-ether", &mstp_clks[MSTP74]),
207 CLKDEV_CON_ID("mtu2_fck", &mstp_clks[MSTP33]),
208 198
209 /* ICK */ 199 /* ICK */
210 CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP47]), 200 CLKDEV_ICK_ID("sci_fck", "sh-sci.0", &mstp_clks[MSTP47]),
@@ -215,6 +205,7 @@ static struct clk_lookup lookups[] = {
215 CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP42]), 205 CLKDEV_ICK_ID("sci_fck", "sh-sci.5", &mstp_clks[MSTP42]),
216 CLKDEV_ICK_ID("sci_fck", "sh-sci.6", &mstp_clks[MSTP41]), 206 CLKDEV_ICK_ID("sci_fck", "sh-sci.6", &mstp_clks[MSTP41]),
217 CLKDEV_ICK_ID("sci_fck", "sh-sci.7", &mstp_clks[MSTP40]), 207 CLKDEV_ICK_ID("sci_fck", "sh-sci.7", &mstp_clks[MSTP40]),
208 CLKDEV_ICK_ID("fck", "sh-mtu2", &mstp_clks[MSTP33]),
218}; 209};
219 210
220void __init r7s72100_clock_init(void) 211void __init r7s72100_clock_init(void)
diff --git a/arch/arm/mach-shmobile/clock-r8a73a4.c b/arch/arm/mach-shmobile/clock-r8a73a4.c
index 7348d58f500e..b5bc22c6a858 100644
--- a/arch/arm/mach-shmobile/clock-r8a73a4.c
+++ b/arch/arm/mach-shmobile/clock-r8a73a4.c
@@ -597,7 +597,7 @@ static struct clk_lookup lookups[] = {
597 CLKDEV_DEV_ID("e6560000.i2c", &mstp_clks[MSTP317]), 597 CLKDEV_DEV_ID("e6560000.i2c", &mstp_clks[MSTP317]),
598 CLKDEV_DEV_ID("e6500000.i2c", &mstp_clks[MSTP318]), 598 CLKDEV_DEV_ID("e6500000.i2c", &mstp_clks[MSTP318]),
599 CLKDEV_DEV_ID("e6510000.i2c", &mstp_clks[MSTP323]), 599 CLKDEV_DEV_ID("e6510000.i2c", &mstp_clks[MSTP323]),
600 CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]), 600 CLKDEV_ICK_ID("fck", "sh-cmt-48-gen2.1", &mstp_clks[MSTP329]),
601 CLKDEV_DEV_ID("e60b0000.i2c", &mstp_clks[MSTP409]), 601 CLKDEV_DEV_ID("e60b0000.i2c", &mstp_clks[MSTP409]),
602 CLKDEV_DEV_ID("e6540000.i2c", &mstp_clks[MSTP410]), 602 CLKDEV_DEV_ID("e6540000.i2c", &mstp_clks[MSTP410]),
603 CLKDEV_DEV_ID("e6530000.i2c", &mstp_clks[MSTP411]), 603 CLKDEV_DEV_ID("e6530000.i2c", &mstp_clks[MSTP411]),
diff --git a/arch/arm/mach-shmobile/clock-r8a7740.c b/arch/arm/mach-shmobile/clock-r8a7740.c
index 433ec674ead1..50931e3c97c7 100644
--- a/arch/arm/mach-shmobile/clock-r8a7740.c
+++ b/arch/arm/mach-shmobile/clock-r8a7740.c
@@ -548,15 +548,9 @@ static struct clk_lookup lookups[] = {
548 548
549 /* MSTP32 clocks */ 549 /* MSTP32 clocks */
550 CLKDEV_DEV_ID("sh_mobile_lcdc_fb.0", &mstp_clks[MSTP100]), 550 CLKDEV_DEV_ID("sh_mobile_lcdc_fb.0", &mstp_clks[MSTP100]),
551 CLKDEV_DEV_ID("sh_tmu.3", &mstp_clks[MSTP111]),
552 CLKDEV_DEV_ID("sh_tmu.4", &mstp_clks[MSTP111]),
553 CLKDEV_DEV_ID("sh_tmu.5", &mstp_clks[MSTP111]),
554 CLKDEV_DEV_ID("i2c-sh_mobile.0", &mstp_clks[MSTP116]), 551 CLKDEV_DEV_ID("i2c-sh_mobile.0", &mstp_clks[MSTP116]),
555 CLKDEV_DEV_ID("fff20000.i2c", &mstp_clks[MSTP116]), 552 CLKDEV_DEV_ID("fff20000.i2c", &mstp_clks[MSTP116]),
556 CLKDEV_DEV_ID("sh_mobile_lcdc_fb.1", &mstp_clks[MSTP117]), 553 CLKDEV_DEV_ID("sh_mobile_lcdc_fb.1", &mstp_clks[MSTP117]),
557 CLKDEV_DEV_ID("sh_tmu.0", &mstp_clks[MSTP125]),
558 CLKDEV_DEV_ID("sh_tmu.1", &mstp_clks[MSTP125]),
559 CLKDEV_DEV_ID("sh_tmu.2", &mstp_clks[MSTP125]),
560 CLKDEV_DEV_ID("sh_mobile_ceu.0", &mstp_clks[MSTP127]), 554 CLKDEV_DEV_ID("sh_mobile_ceu.0", &mstp_clks[MSTP127]),
561 CLKDEV_DEV_ID("sh_mobile_ceu.1", &mstp_clks[MSTP128]), 555 CLKDEV_DEV_ID("sh_mobile_ceu.1", &mstp_clks[MSTP128]),
562 556
@@ -583,7 +577,6 @@ static struct clk_lookup lookups[] = {
583 CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP230]), 577 CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP230]),
584 CLKDEV_DEV_ID("e6cc0000.sci", &mstp_clks[MSTP230]), 578 CLKDEV_DEV_ID("e6cc0000.sci", &mstp_clks[MSTP230]),
585 579
586 CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]),
587 CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), 580 CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]),
588 CLKDEV_DEV_ID("fe1f0000.sound", &mstp_clks[MSTP328]), 581 CLKDEV_DEV_ID("fe1f0000.sound", &mstp_clks[MSTP328]),
589 CLKDEV_DEV_ID("i2c-sh_mobile.1", &mstp_clks[MSTP323]), 582 CLKDEV_DEV_ID("i2c-sh_mobile.1", &mstp_clks[MSTP323]),
@@ -604,6 +597,9 @@ static struct clk_lookup lookups[] = {
604 CLKDEV_DEV_ID("e6870000.sd", &mstp_clks[MSTP415]), 597 CLKDEV_DEV_ID("e6870000.sd", &mstp_clks[MSTP415]),
605 598
606 /* ICK */ 599 /* ICK */
600 CLKDEV_ICK_ID("fck", "sh-tmu.1", &mstp_clks[MSTP111]),
601 CLKDEV_ICK_ID("fck", "sh-tmu.0", &mstp_clks[MSTP125]),
602 CLKDEV_ICK_ID("fck", "sh-cmt-48.1", &mstp_clks[MSTP329]),
607 CLKDEV_ICK_ID("host", "renesas_usbhs", &mstp_clks[MSTP416]), 603 CLKDEV_ICK_ID("host", "renesas_usbhs", &mstp_clks[MSTP416]),
608 CLKDEV_ICK_ID("func", "renesas_usbhs", &mstp_clks[MSTP407]), 604 CLKDEV_ICK_ID("func", "renesas_usbhs", &mstp_clks[MSTP407]),
609 CLKDEV_ICK_ID("phy", "renesas_usbhs", &mstp_clks[MSTP406]), 605 CLKDEV_ICK_ID("phy", "renesas_usbhs", &mstp_clks[MSTP406]),
diff --git a/arch/arm/mach-shmobile/clock-r8a7778.c b/arch/arm/mach-shmobile/clock-r8a7778.c
index 6609beb9b9b4..13f8f3ab8840 100644
--- a/arch/arm/mach-shmobile/clock-r8a7778.c
+++ b/arch/arm/mach-shmobile/clock-r8a7778.c
@@ -207,8 +207,6 @@ static struct clk_lookup lookups[] = {
207 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP023]), /* SCIF3 */ 207 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP023]), /* SCIF3 */
208 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP022]), /* SCIF4 */ 208 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP022]), /* SCIF4 */
209 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP021]), /* SCIF6 */ 209 CLKDEV_DEV_ID("sh-sci.5", &mstp_clks[MSTP021]), /* SCIF6 */
210 CLKDEV_DEV_ID("sh_tmu.0", &mstp_clks[MSTP016]), /* TMU00 */
211 CLKDEV_DEV_ID("sh_tmu.1", &mstp_clks[MSTP015]), /* TMU01 */
212 CLKDEV_DEV_ID("sh-hspi.0", &mstp_clks[MSTP007]), /* HSPI0 */ 210 CLKDEV_DEV_ID("sh-hspi.0", &mstp_clks[MSTP007]), /* HSPI0 */
213 CLKDEV_DEV_ID("fffc7000.spi", &mstp_clks[MSTP007]), /* HSPI0 */ 211 CLKDEV_DEV_ID("fffc7000.spi", &mstp_clks[MSTP007]), /* HSPI0 */
214 CLKDEV_DEV_ID("sh-hspi.1", &mstp_clks[MSTP007]), /* HSPI1 */ 212 CLKDEV_DEV_ID("sh-hspi.1", &mstp_clks[MSTP007]), /* HSPI1 */
@@ -239,6 +237,8 @@ static struct clk_lookup lookups[] = {
239 CLKDEV_ICK_ID("src.6", "rcar_sound", &mstp_clks[MSTP525]), 237 CLKDEV_ICK_ID("src.6", "rcar_sound", &mstp_clks[MSTP525]),
240 CLKDEV_ICK_ID("src.7", "rcar_sound", &mstp_clks[MSTP524]), 238 CLKDEV_ICK_ID("src.7", "rcar_sound", &mstp_clks[MSTP524]),
241 CLKDEV_ICK_ID("src.8", "rcar_sound", &mstp_clks[MSTP523]), 239 CLKDEV_ICK_ID("src.8", "rcar_sound", &mstp_clks[MSTP523]),
240 CLKDEV_ICK_ID("fck", "sh-tmu.0", &mstp_clks[MSTP016]),
241 CLKDEV_ICK_ID("fck", "sh-tmu.1", &mstp_clks[MSTP015]),
242}; 242};
243 243
244void __init r8a7778_clock_init(void) 244void __init r8a7778_clock_init(void)
diff --git a/arch/arm/mach-shmobile/clock-r8a7779.c b/arch/arm/mach-shmobile/clock-r8a7779.c
index 8e403ae0c7b2..a13298bd37a8 100644
--- a/arch/arm/mach-shmobile/clock-r8a7779.c
+++ b/arch/arm/mach-shmobile/clock-r8a7779.c
@@ -173,9 +173,7 @@ static struct clk_lookup lookups[] = {
173 CLKDEV_DEV_ID("ohci-platform.1", &mstp_clks[MSTP101]), /* USB OHCI port2 */ 173 CLKDEV_DEV_ID("ohci-platform.1", &mstp_clks[MSTP101]), /* USB OHCI port2 */
174 CLKDEV_DEV_ID("ehci-platform.0", &mstp_clks[MSTP100]), /* USB EHCI port0/1 */ 174 CLKDEV_DEV_ID("ehci-platform.0", &mstp_clks[MSTP100]), /* USB EHCI port0/1 */
175 CLKDEV_DEV_ID("ohci-platform.0", &mstp_clks[MSTP100]), /* USB OHCI port0/1 */ 175 CLKDEV_DEV_ID("ohci-platform.0", &mstp_clks[MSTP100]), /* USB OHCI port0/1 */
176 CLKDEV_DEV_ID("sh_tmu.0", &mstp_clks[MSTP016]), /* TMU00 */ 176 CLKDEV_ICK_ID("fck", "sh-tmu.0", &mstp_clks[MSTP016]), /* TMU0 */
177 CLKDEV_DEV_ID("sh_tmu.1", &mstp_clks[MSTP016]), /* TMU01 */
178 CLKDEV_DEV_ID("sh_tmu.2", &mstp_clks[MSTP016]), /* TMU02 */
179 CLKDEV_DEV_ID("i2c-rcar.0", &mstp_clks[MSTP030]), /* I2C0 */ 177 CLKDEV_DEV_ID("i2c-rcar.0", &mstp_clks[MSTP030]), /* I2C0 */
180 CLKDEV_DEV_ID("ffc70000.i2c", &mstp_clks[MSTP030]), /* I2C0 */ 178 CLKDEV_DEV_ID("ffc70000.i2c", &mstp_clks[MSTP030]), /* I2C0 */
181 CLKDEV_DEV_ID("i2c-rcar.1", &mstp_clks[MSTP029]), /* I2C1 */ 179 CLKDEV_DEV_ID("i2c-rcar.1", &mstp_clks[MSTP029]), /* I2C1 */
diff --git a/arch/arm/mach-shmobile/clock-r8a7790.c b/arch/arm/mach-shmobile/clock-r8a7790.c
index a936ae7de083..296a057109e4 100644
--- a/arch/arm/mach-shmobile/clock-r8a7790.c
+++ b/arch/arm/mach-shmobile/clock-r8a7790.c
@@ -357,7 +357,6 @@ static struct clk_lookup lookups[] = {
357 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]), 357 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP312]),
358 CLKDEV_DEV_ID("sh_mobile_sdhi.3", &mstp_clks[MSTP311]), 358 CLKDEV_DEV_ID("sh_mobile_sdhi.3", &mstp_clks[MSTP311]),
359 CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]), 359 CLKDEV_DEV_ID("sh_mmcif.1", &mstp_clks[MSTP305]),
360 CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]),
361 CLKDEV_DEV_ID("qspi.0", &mstp_clks[MSTP917]), 360 CLKDEV_DEV_ID("qspi.0", &mstp_clks[MSTP917]),
362 CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP704]), 361 CLKDEV_DEV_ID("renesas_usbhs", &mstp_clks[MSTP704]),
363 CLKDEV_DEV_ID("pci-rcar-gen2.0", &mstp_clks[MSTP703]), 362 CLKDEV_DEV_ID("pci-rcar-gen2.0", &mstp_clks[MSTP703]),
@@ -367,6 +366,7 @@ static struct clk_lookup lookups[] = {
367 CLKDEV_DEV_ID("sata-r8a7790.1", &mstp_clks[MSTP814]), 366 CLKDEV_DEV_ID("sata-r8a7790.1", &mstp_clks[MSTP814]),
368 367
369 /* ICK */ 368 /* ICK */
369 CLKDEV_ICK_ID("fck", "sh-cmt-48-gen2.0", &mstp_clks[MSTP124]),
370 CLKDEV_ICK_ID("usbhs", "usb_phy_rcar_gen2", &mstp_clks[MSTP704]), 370 CLKDEV_ICK_ID("usbhs", "usb_phy_rcar_gen2", &mstp_clks[MSTP704]),
371 CLKDEV_ICK_ID("lvds.0", "rcar-du-r8a7790", &mstp_clks[MSTP726]), 371 CLKDEV_ICK_ID("lvds.0", "rcar-du-r8a7790", &mstp_clks[MSTP726]),
372 CLKDEV_ICK_ID("lvds.1", "rcar-du-r8a7790", &mstp_clks[MSTP725]), 372 CLKDEV_ICK_ID("lvds.1", "rcar-du-r8a7790", &mstp_clks[MSTP725]),
diff --git a/arch/arm/mach-shmobile/clock-r8a7791.c b/arch/arm/mach-shmobile/clock-r8a7791.c
index 3b26c7eee873..e2fdfcc14436 100644
--- a/arch/arm/mach-shmobile/clock-r8a7791.c
+++ b/arch/arm/mach-shmobile/clock-r8a7791.c
@@ -264,7 +264,7 @@ static struct clk_lookup lookups[] = {
264 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]), 264 CLKDEV_DEV_ID("sh_mobile_sdhi.0", &mstp_clks[MSTP314]),
265 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP312]), 265 CLKDEV_DEV_ID("sh_mobile_sdhi.1", &mstp_clks[MSTP312]),
266 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP311]), 266 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP311]),
267 CLKDEV_DEV_ID("sh_cmt.0", &mstp_clks[MSTP124]), 267 CLKDEV_ICK_ID("fck", "sh-cmt-48-gen2.0", &mstp_clks[MSTP124]),
268 CLKDEV_DEV_ID("qspi.0", &mstp_clks[MSTP917]), 268 CLKDEV_DEV_ID("qspi.0", &mstp_clks[MSTP917]),
269 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]), 269 CLKDEV_DEV_ID("rcar_thermal", &mstp_clks[MSTP522]),
270 CLKDEV_DEV_ID("i2c-rcar_gen2.0", &mstp_clks[MSTP931]), 270 CLKDEV_DEV_ID("i2c-rcar_gen2.0", &mstp_clks[MSTP931]),
diff --git a/arch/arm/mach-shmobile/clock-sh7372.c b/arch/arm/mach-shmobile/clock-sh7372.c
index 28489978b09c..d16d9ca7f79e 100644
--- a/arch/arm/mach-shmobile/clock-sh7372.c
+++ b/arch/arm/mach-shmobile/clock-sh7372.c
@@ -515,8 +515,6 @@ static struct clk_lookup lookups[] = {
515 CLKDEV_DEV_ID("uio_pdrv_genirq.1", &mstp_clks[MSTP128]), /* VEU0 */ 515 CLKDEV_DEV_ID("uio_pdrv_genirq.1", &mstp_clks[MSTP128]), /* VEU0 */
516 CLKDEV_DEV_ID("sh_mobile_ceu.0", &mstp_clks[MSTP127]), /* CEU */ 516 CLKDEV_DEV_ID("sh_mobile_ceu.0", &mstp_clks[MSTP127]), /* CEU */
517 CLKDEV_DEV_ID("sh-mobile-csi2.0", &mstp_clks[MSTP126]), /* CSI2 */ 517 CLKDEV_DEV_ID("sh-mobile-csi2.0", &mstp_clks[MSTP126]), /* CSI2 */
518 CLKDEV_DEV_ID("sh_tmu.0", &mstp_clks[MSTP125]), /* TMU00 */
519 CLKDEV_DEV_ID("sh_tmu.1", &mstp_clks[MSTP125]), /* TMU01 */
520 CLKDEV_DEV_ID("sh-mipi-dsi.0", &mstp_clks[MSTP118]), /* DSITX0 */ 518 CLKDEV_DEV_ID("sh-mipi-dsi.0", &mstp_clks[MSTP118]), /* DSITX0 */
521 CLKDEV_DEV_ID("sh_mobile_lcdc_fb.1", &mstp_clks[MSTP117]), /* LCDC1 */ 519 CLKDEV_DEV_ID("sh_mobile_lcdc_fb.1", &mstp_clks[MSTP117]), /* LCDC1 */
522 CLKDEV_DEV_ID("i2c-sh_mobile.0", &mstp_clks[MSTP116]), /* IIC0 */ 520 CLKDEV_DEV_ID("i2c-sh_mobile.0", &mstp_clks[MSTP116]), /* IIC0 */
@@ -565,10 +563,7 @@ static struct clk_lookup lookups[] = {
565 CLKDEV_DEV_ID("r8a66597_hcd.1", &mstp_clks[MSTP406]), /* USB1 */ 563 CLKDEV_DEV_ID("r8a66597_hcd.1", &mstp_clks[MSTP406]), /* USB1 */
566 CLKDEV_DEV_ID("r8a66597_udc.1", &mstp_clks[MSTP406]), /* USB1 */ 564 CLKDEV_DEV_ID("r8a66597_udc.1", &mstp_clks[MSTP406]), /* USB1 */
567 CLKDEV_DEV_ID("renesas_usbhs.1", &mstp_clks[MSTP406]), /* USB1 */ 565 CLKDEV_DEV_ID("renesas_usbhs.1", &mstp_clks[MSTP406]), /* USB1 */
568 CLKDEV_DEV_ID("sh_cmt.4", &mstp_clks[MSTP405]), /* CMT4 */
569 CLKDEV_DEV_ID("sh_cmt.3", &mstp_clks[MSTP404]), /* CMT3 */
570 CLKDEV_DEV_ID("sh_keysc.0", &mstp_clks[MSTP403]), /* KEYSC */ 566 CLKDEV_DEV_ID("sh_keysc.0", &mstp_clks[MSTP403]), /* KEYSC */
571 CLKDEV_DEV_ID("sh_cmt.2", &mstp_clks[MSTP400]), /* CMT2 */
572 567
573 /* ICK */ 568 /* ICK */
574 CLKDEV_ICK_ID("dsit_clk", "sh-mipi-dsi.0", &div6_clks[DIV6_DSIT]), 569 CLKDEV_ICK_ID("dsit_clk", "sh-mipi-dsi.0", &div6_clks[DIV6_DSIT]),
@@ -580,7 +575,11 @@ static struct clk_lookup lookups[] = {
580 CLKDEV_ICK_ID("ick", "sh-mobile-hdmi", &div6_reparent_clks[DIV6_HDMI]), 575 CLKDEV_ICK_ID("ick", "sh-mobile-hdmi", &div6_reparent_clks[DIV6_HDMI]),
581 CLKDEV_ICK_ID("icka", "sh_fsi2", &div6_reparent_clks[DIV6_FSIA]), 576 CLKDEV_ICK_ID("icka", "sh_fsi2", &div6_reparent_clks[DIV6_FSIA]),
582 CLKDEV_ICK_ID("ickb", "sh_fsi2", &div6_reparent_clks[DIV6_FSIB]), 577 CLKDEV_ICK_ID("ickb", "sh_fsi2", &div6_reparent_clks[DIV6_FSIB]),
578 CLKDEV_ICK_ID("fck", "sh-tmu.0", &mstp_clks[MSTP125]), /* TMU0 */
583 CLKDEV_ICK_ID("spu2", "sh_fsi2", &mstp_clks[MSTP223]), 579 CLKDEV_ICK_ID("spu2", "sh_fsi2", &mstp_clks[MSTP223]),
580 CLKDEV_ICK_ID("fck", "sh-cmt-32-fast.4", &mstp_clks[MSTP405]), /* CMT4 */
581 CLKDEV_ICK_ID("fck", "sh-cmt-32-fast.3", &mstp_clks[MSTP404]), /* CMT3 */
582 CLKDEV_ICK_ID("fck", "sh-cmt-32-fast.2", &mstp_clks[MSTP400]), /* CMT2 */
584 CLKDEV_ICK_ID("diva", "sh_fsi2", &fsidivs[FSIDIV_A]), 583 CLKDEV_ICK_ID("diva", "sh_fsi2", &fsidivs[FSIDIV_A]),
585 CLKDEV_ICK_ID("divb", "sh_fsi2", &fsidivs[FSIDIV_B]), 584 CLKDEV_ICK_ID("divb", "sh_fsi2", &fsidivs[FSIDIV_B]),
586 CLKDEV_ICK_ID("xcka", "sh_fsi2", &fsiack_clk), 585 CLKDEV_ICK_ID("xcka", "sh_fsi2", &fsiack_clk),
diff --git a/arch/arm/mach-shmobile/clock-sh73a0.c b/arch/arm/mach-shmobile/clock-sh73a0.c
index 23edf8360c27..0d9cd1fe0212 100644
--- a/arch/arm/mach-shmobile/clock-sh73a0.c
+++ b/arch/arm/mach-shmobile/clock-sh73a0.c
@@ -633,8 +633,6 @@ static struct clk_lookup lookups[] = {
633 CLKDEV_DEV_ID("sh-mobile-csi2.1", &mstp_clks[MSTP128]), /* CSI2-RX1 */ 633 CLKDEV_DEV_ID("sh-mobile-csi2.1", &mstp_clks[MSTP128]), /* CSI2-RX1 */
634 CLKDEV_DEV_ID("sh_mobile_ceu.0", &mstp_clks[MSTP127]), /* CEU0 */ 634 CLKDEV_DEV_ID("sh_mobile_ceu.0", &mstp_clks[MSTP127]), /* CEU0 */
635 CLKDEV_DEV_ID("sh-mobile-csi2.0", &mstp_clks[MSTP126]), /* CSI2-RX0 */ 635 CLKDEV_DEV_ID("sh-mobile-csi2.0", &mstp_clks[MSTP126]), /* CSI2-RX0 */
636 CLKDEV_DEV_ID("sh_tmu.0", &mstp_clks[MSTP125]), /* TMU00 */
637 CLKDEV_DEV_ID("sh_tmu.1", &mstp_clks[MSTP125]), /* TMU01 */
638 CLKDEV_DEV_ID("sh-mipi-dsi.0", &mstp_clks[MSTP118]), /* DSITX */ 636 CLKDEV_DEV_ID("sh-mipi-dsi.0", &mstp_clks[MSTP118]), /* DSITX */
639 CLKDEV_DEV_ID("i2c-sh_mobile.0", &mstp_clks[MSTP116]), /* I2C0 */ 637 CLKDEV_DEV_ID("i2c-sh_mobile.0", &mstp_clks[MSTP116]), /* I2C0 */
640 CLKDEV_DEV_ID("e6820000.i2c", &mstp_clks[MSTP116]), /* I2C0 */ 638 CLKDEV_DEV_ID("e6820000.i2c", &mstp_clks[MSTP116]), /* I2C0 */
@@ -650,7 +648,6 @@ static struct clk_lookup lookups[] = {
650 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP201]), /* SCIFA3 */ 648 CLKDEV_DEV_ID("sh-sci.3", &mstp_clks[MSTP201]), /* SCIFA3 */
651 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP200]), /* SCIFA4 */ 649 CLKDEV_DEV_ID("sh-sci.4", &mstp_clks[MSTP200]), /* SCIFA4 */
652 CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP331]), /* SCIFA6 */ 650 CLKDEV_DEV_ID("sh-sci.6", &mstp_clks[MSTP331]), /* SCIFA6 */
653 CLKDEV_DEV_ID("sh_cmt.10", &mstp_clks[MSTP329]), /* CMT10 */
654 CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), /* FSI */ 651 CLKDEV_DEV_ID("sh_fsi2", &mstp_clks[MSTP328]), /* FSI */
655 CLKDEV_DEV_ID("ec230000.sound", &mstp_clks[MSTP328]), /* FSI */ 652 CLKDEV_DEV_ID("ec230000.sound", &mstp_clks[MSTP328]), /* FSI */
656 CLKDEV_DEV_ID("sh_irda.0", &mstp_clks[MSTP325]), /* IrDA */ 653 CLKDEV_DEV_ID("sh_irda.0", &mstp_clks[MSTP325]), /* IrDA */
@@ -683,6 +680,8 @@ static struct clk_lookup lookups[] = {
683 CLKDEV_ICK_ID("dsip_clk", "sh-mipi-dsi.1", &div6_clks[DIV6_DSI1P]), 680 CLKDEV_ICK_ID("dsip_clk", "sh-mipi-dsi.1", &div6_clks[DIV6_DSI1P]),
684 CLKDEV_ICK_ID("dsiphy_clk", "sh-mipi-dsi.0", &dsi0phy_clk), 681 CLKDEV_ICK_ID("dsiphy_clk", "sh-mipi-dsi.0", &dsi0phy_clk),
685 CLKDEV_ICK_ID("dsiphy_clk", "sh-mipi-dsi.1", &dsi1phy_clk), 682 CLKDEV_ICK_ID("dsiphy_clk", "sh-mipi-dsi.1", &dsi1phy_clk),
683 CLKDEV_ICK_ID("fck", "sh-cmt-48.1", &mstp_clks[MSTP329]), /* CMT1 */
684 CLKDEV_ICK_ID("fck", "sh-tmu.0", &mstp_clks[MSTP125]), /* TMU0 */
686}; 685};
687 686
688void __init sh73a0_clock_init(void) 687void __init sh73a0_clock_init(void)
diff --git a/arch/arm/mach-shmobile/include/mach/clock.h b/arch/arm/mach-shmobile/include/mach/clock.h
index 9a93cf924b9c..31b6417463e6 100644
--- a/arch/arm/mach-shmobile/include/mach/clock.h
+++ b/arch/arm/mach-shmobile/include/mach/clock.h
@@ -16,6 +16,7 @@ void shmobile_clk_workaround(const struct clk_name *clks, int nr_clks,
16#else /* CONFIG_COMMON_CLK */ 16#else /* CONFIG_COMMON_CLK */
17/* legacy clock implementation */ 17/* legacy clock implementation */
18 18
19struct clk;
19unsigned long shmobile_fixed_ratio_clk_recalc(struct clk *clk); 20unsigned long shmobile_fixed_ratio_clk_recalc(struct clk *clk);
20extern struct sh_clk_ops shmobile_fixed_ratio_clk_ops; 21extern struct sh_clk_ops shmobile_fixed_ratio_clk_ops;
21 22
diff --git a/arch/arm/mach-shmobile/setup-r7s72100.c b/arch/arm/mach-shmobile/setup-r7s72100.c
index 9c0b3a9d5f7a..412e179429cd 100644
--- a/arch/arm/mach-shmobile/setup-r7s72100.c
+++ b/arch/arm/mach-shmobile/setup-r7s72100.c
@@ -21,77 +21,26 @@
21#include <linux/irq.h> 21#include <linux/irq.h>
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/of_platform.h> 23#include <linux/of_platform.h>
24#include <linux/serial_sci.h>
25#include <linux/sh_timer.h> 24#include <linux/sh_timer.h>
26#include <mach/common.h> 25#include <mach/common.h>
27#include <mach/irqs.h> 26#include <mach/irqs.h>
28#include <mach/r7s72100.h> 27#include <mach/r7s72100.h>
29#include <asm/mach/arch.h> 28#include <asm/mach/arch.h>
30 29
31#define R7S72100_SCIF(index, baseaddr, irq) \ 30static struct resource mtu2_resources[] __initdata = {
32static const struct plat_sci_port scif##index##_platform_data = { \ 31 DEFINE_RES_MEM(0xfcff0000, 0x400),
33 .type = PORT_SCIF, \ 32 DEFINE_RES_IRQ_NAMED(gic_iid(139), "tgi0a"),
34 .regtype = SCIx_SH2_SCIF_FIFODATA_REGTYPE, \
35 .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP, \
36 .scscr = SCSCR_RIE | SCSCR_TIE | SCSCR_RE | SCSCR_TE | \
37 SCSCR_REIE, \
38}; \
39 \
40static struct resource scif##index##_resources[] = { \
41 DEFINE_RES_MEM(baseaddr, 0x100), \
42 DEFINE_RES_IRQ(irq + 1), \
43 DEFINE_RES_IRQ(irq + 2), \
44 DEFINE_RES_IRQ(irq + 3), \
45 DEFINE_RES_IRQ(irq), \
46} \
47
48R7S72100_SCIF(0, 0xe8007000, gic_iid(221));
49R7S72100_SCIF(1, 0xe8007800, gic_iid(225));
50R7S72100_SCIF(2, 0xe8008000, gic_iid(229));
51R7S72100_SCIF(3, 0xe8008800, gic_iid(233));
52R7S72100_SCIF(4, 0xe8009000, gic_iid(237));
53R7S72100_SCIF(5, 0xe8009800, gic_iid(241));
54R7S72100_SCIF(6, 0xe800a000, gic_iid(245));
55R7S72100_SCIF(7, 0xe800a800, gic_iid(249));
56
57#define r7s72100_register_scif(index) \
58 platform_device_register_resndata(&platform_bus, "sh-sci", index, \
59 scif##index##_resources, \
60 ARRAY_SIZE(scif##index##_resources), \
61 &scif##index##_platform_data, \
62 sizeof(scif##index##_platform_data))
63
64
65static struct sh_timer_config mtu2_0_platform_data __initdata = {
66 .name = "MTU2_0",
67 .timer_bit = 0,
68 .channel_offset = -0x80,
69 .clockevent_rating = 200,
70};
71
72static struct resource mtu2_0_resources[] __initdata = {
73 DEFINE_RES_MEM(0xfcff0300, 0x27),
74 DEFINE_RES_IRQ(gic_iid(139)), /* MTU2 TGI0A */
75}; 33};
76 34
77#define r7s72100_register_mtu2(idx) \ 35#define r7s72100_register_mtu2() \
78 platform_device_register_resndata(&platform_bus, "sh_mtu2", \ 36 platform_device_register_resndata(&platform_bus, "sh-mtu2", \
79 idx, mtu2_##idx##_resources, \ 37 -1, mtu2_resources, \
80 ARRAY_SIZE(mtu2_##idx##_resources), \ 38 ARRAY_SIZE(mtu2_resources), \
81 &mtu2_##idx##_platform_data, \ 39 NULL, 0)
82 sizeof(struct sh_timer_config))
83 40
84void __init r7s72100_add_dt_devices(void) 41void __init r7s72100_add_dt_devices(void)
85{ 42{
86 r7s72100_register_scif(0); 43 r7s72100_register_mtu2();
87 r7s72100_register_scif(1);
88 r7s72100_register_scif(2);
89 r7s72100_register_scif(3);
90 r7s72100_register_scif(4);
91 r7s72100_register_scif(5);
92 r7s72100_register_scif(6);
93 r7s72100_register_scif(7);
94 r7s72100_register_mtu2(0);
95} 44}
96 45
97void __init r7s72100_init_early(void) 46void __init r7s72100_init_early(void)
diff --git a/arch/arm/mach-shmobile/setup-r8a73a4.c b/arch/arm/mach-shmobile/setup-r8a73a4.c
index cd36f8078325..9333770cfac2 100644
--- a/arch/arm/mach-shmobile/setup-r8a73a4.c
+++ b/arch/arm/mach-shmobile/setup-r8a73a4.c
@@ -169,20 +169,17 @@ static const struct resource thermal0_resources[] = {
169 thermal0_resources, \ 169 thermal0_resources, \
170 ARRAY_SIZE(thermal0_resources)) 170 ARRAY_SIZE(thermal0_resources))
171 171
172static struct sh_timer_config cmt10_platform_data = { 172static struct sh_timer_config cmt1_platform_data = {
173 .name = "CMT10", 173 .channels_mask = 0xff,
174 .timer_bit = 0,
175 .clockevent_rating = 80,
176}; 174};
177 175
178static struct resource cmt10_resources[] = { 176static struct resource cmt1_resources[] = {
179 DEFINE_RES_MEM(0xe6130010, 0x0c), 177 DEFINE_RES_MEM(0xe6130000, 0x1004),
180 DEFINE_RES_MEM(0xe6130000, 0x04), 178 DEFINE_RES_IRQ(gic_spi(120)),
181 DEFINE_RES_IRQ(gic_spi(120)), /* CMT1_0 */
182}; 179};
183 180
184#define r8a7790_register_cmt(idx) \ 181#define r8a7790_register_cmt(idx) \
185 platform_device_register_resndata(&platform_bus, "sh_cmt", \ 182 platform_device_register_resndata(&platform_bus, "sh-cmt-48-gen2", \
186 idx, cmt##idx##_resources, \ 183 idx, cmt##idx##_resources, \
187 ARRAY_SIZE(cmt##idx##_resources), \ 184 ARRAY_SIZE(cmt##idx##_resources), \
188 &cmt##idx##_platform_data, \ 185 &cmt##idx##_platform_data, \
@@ -196,7 +193,7 @@ void __init r8a73a4_add_dt_devices(void)
196 r8a73a4_register_scif(3); 193 r8a73a4_register_scif(3);
197 r8a73a4_register_scif(4); 194 r8a73a4_register_scif(4);
198 r8a73a4_register_scif(5); 195 r8a73a4_register_scif(5);
199 r8a7790_register_cmt(10); 196 r8a7790_register_cmt(1);
200} 197}
201 198
202/* DMA */ 199/* DMA */
diff --git a/arch/arm/mach-shmobile/setup-r8a7740.c b/arch/arm/mach-shmobile/setup-r8a7740.c
index 2dfd198fb635..35dec233301e 100644
--- a/arch/arm/mach-shmobile/setup-r8a7740.c
+++ b/arch/arm/mach-shmobile/setup-r8a7740.c
@@ -237,126 +237,45 @@ R8A7740_SCIF(PORT_SCIFA, 7, 0xe6cd0000, gic_spi(107));
237R8A7740_SCIF(PORT_SCIFB, 8, 0xe6c30000, gic_spi(108)); 237R8A7740_SCIF(PORT_SCIFB, 8, 0xe6c30000, gic_spi(108));
238 238
239/* CMT */ 239/* CMT */
240static struct sh_timer_config cmt10_platform_data = { 240static struct sh_timer_config cmt1_platform_data = {
241 .name = "CMT10", 241 .channels_mask = 0x3f,
242 .channel_offset = 0x10,
243 .timer_bit = 0,
244 .clockevent_rating = 125,
245 .clocksource_rating = 125,
246}; 242};
247 243
248static struct resource cmt10_resources[] = { 244static struct resource cmt1_resources[] = {
249 [0] = { 245 DEFINE_RES_MEM(0xe6138000, 0x170),
250 .name = "CMT10", 246 DEFINE_RES_IRQ(gic_spi(58)),
251 .start = 0xe6138010,
252 .end = 0xe613801b,
253 .flags = IORESOURCE_MEM,
254 },
255 [1] = {
256 .start = gic_spi(58),
257 .flags = IORESOURCE_IRQ,
258 },
259}; 247};
260 248
261static struct platform_device cmt10_device = { 249static struct platform_device cmt1_device = {
262 .name = "sh_cmt", 250 .name = "sh-cmt-48",
263 .id = 10, 251 .id = 1,
264 .dev = { 252 .dev = {
265 .platform_data = &cmt10_platform_data, 253 .platform_data = &cmt1_platform_data,
266 }, 254 },
267 .resource = cmt10_resources, 255 .resource = cmt1_resources,
268 .num_resources = ARRAY_SIZE(cmt10_resources), 256 .num_resources = ARRAY_SIZE(cmt1_resources),
269}; 257};
270 258
271/* TMU */ 259/* TMU */
272static struct sh_timer_config tmu00_platform_data = { 260static struct sh_timer_config tmu0_platform_data = {
273 .name = "TMU00", 261 .channels_mask = 7,
274 .channel_offset = 0x4,
275 .timer_bit = 0,
276 .clockevent_rating = 200,
277}; 262};
278 263
279static struct resource tmu00_resources[] = { 264static struct resource tmu0_resources[] = {
280 [0] = { 265 DEFINE_RES_MEM(0xfff80000, 0x2c),
281 .name = "TMU00", 266 DEFINE_RES_IRQ(gic_spi(198)),
282 .start = 0xfff80008, 267 DEFINE_RES_IRQ(gic_spi(199)),
283 .end = 0xfff80014 - 1, 268 DEFINE_RES_IRQ(gic_spi(200)),
284 .flags = IORESOURCE_MEM,
285 },
286 [1] = {
287 .start = gic_spi(198),
288 .flags = IORESOURCE_IRQ,
289 },
290}; 269};
291 270
292static struct platform_device tmu00_device = { 271static struct platform_device tmu0_device = {
293 .name = "sh_tmu", 272 .name = "sh-tmu",
294 .id = 0, 273 .id = 0,
295 .dev = { 274 .dev = {
296 .platform_data = &tmu00_platform_data, 275 .platform_data = &tmu0_platform_data,
297 },
298 .resource = tmu00_resources,
299 .num_resources = ARRAY_SIZE(tmu00_resources),
300};
301
302static struct sh_timer_config tmu01_platform_data = {
303 .name = "TMU01",
304 .channel_offset = 0x10,
305 .timer_bit = 1,
306 .clocksource_rating = 200,
307};
308
309static struct resource tmu01_resources[] = {
310 [0] = {
311 .name = "TMU01",
312 .start = 0xfff80014,
313 .end = 0xfff80020 - 1,
314 .flags = IORESOURCE_MEM,
315 },
316 [1] = {
317 .start = gic_spi(199),
318 .flags = IORESOURCE_IRQ,
319 },
320};
321
322static struct platform_device tmu01_device = {
323 .name = "sh_tmu",
324 .id = 1,
325 .dev = {
326 .platform_data = &tmu01_platform_data,
327 },
328 .resource = tmu01_resources,
329 .num_resources = ARRAY_SIZE(tmu01_resources),
330};
331
332static struct sh_timer_config tmu02_platform_data = {
333 .name = "TMU02",
334 .channel_offset = 0x1C,
335 .timer_bit = 2,
336 .clocksource_rating = 200,
337};
338
339static struct resource tmu02_resources[] = {
340 [0] = {
341 .name = "TMU02",
342 .start = 0xfff80020,
343 .end = 0xfff8002C - 1,
344 .flags = IORESOURCE_MEM,
345 },
346 [1] = {
347 .start = gic_spi(200),
348 .flags = IORESOURCE_IRQ,
349 },
350};
351
352static struct platform_device tmu02_device = {
353 .name = "sh_tmu",
354 .id = 2,
355 .dev = {
356 .platform_data = &tmu02_platform_data,
357 }, 276 },
358 .resource = tmu02_resources, 277 .resource = tmu0_resources,
359 .num_resources = ARRAY_SIZE(tmu02_resources), 278 .num_resources = ARRAY_SIZE(tmu0_resources),
360}; 279};
361 280
362/* IPMMUI (an IPMMU module for ICB/LMB) */ 281/* IPMMUI (an IPMMU module for ICB/LMB) */
@@ -400,7 +319,7 @@ static struct platform_device *r8a7740_devices_dt[] __initdata = {
400 &scif6_device, 319 &scif6_device,
401 &scif7_device, 320 &scif7_device,
402 &scif8_device, 321 &scif8_device,
403 &cmt10_device, 322 &cmt1_device,
404}; 323};
405 324
406static struct platform_device *r8a7740_early_devices[] __initdata = { 325static struct platform_device *r8a7740_early_devices[] __initdata = {
@@ -408,9 +327,7 @@ static struct platform_device *r8a7740_early_devices[] __initdata = {
408 &irqpin1_device, 327 &irqpin1_device,
409 &irqpin2_device, 328 &irqpin2_device,
410 &irqpin3_device, 329 &irqpin3_device,
411 &tmu00_device, 330 &tmu0_device,
412 &tmu01_device,
413 &tmu02_device,
414 &ipmmu_device, 331 &ipmmu_device,
415}; 332};
416 333
diff --git a/arch/arm/mach-shmobile/setup-r8a7778.c b/arch/arm/mach-shmobile/setup-r8a7778.c
index 6d694526e4ca..8c02e24f2483 100644
--- a/arch/arm/mach-shmobile/setup-r8a7778.c
+++ b/arch/arm/mach-shmobile/setup-r8a7778.c
@@ -71,33 +71,20 @@ R8A7778_SCIF(5, 0xffe45000, gic_iid(0x6b));
71 sizeof(scif##index##_platform_data)) 71 sizeof(scif##index##_platform_data))
72 72
73/* TMU */ 73/* TMU */
74static struct resource sh_tmu0_resources[] __initdata = { 74static struct sh_timer_config sh_tmu0_platform_data = {
75 DEFINE_RES_MEM(0xffd80008, 12), 75 .channels_mask = 7,
76 DEFINE_RES_IRQ(gic_iid(0x40)),
77};
78
79static struct sh_timer_config sh_tmu0_platform_data __initdata = {
80 .name = "TMU00",
81 .channel_offset = 0x4,
82 .timer_bit = 0,
83 .clockevent_rating = 200,
84}; 76};
85 77
86static struct resource sh_tmu1_resources[] __initdata = { 78static struct resource sh_tmu0_resources[] = {
87 DEFINE_RES_MEM(0xffd80014, 12), 79 DEFINE_RES_MEM(0xffd80000, 0x30),
80 DEFINE_RES_IRQ(gic_iid(0x40)),
88 DEFINE_RES_IRQ(gic_iid(0x41)), 81 DEFINE_RES_IRQ(gic_iid(0x41)),
89}; 82 DEFINE_RES_IRQ(gic_iid(0x42)),
90
91static struct sh_timer_config sh_tmu1_platform_data __initdata = {
92 .name = "TMU01",
93 .channel_offset = 0x10,
94 .timer_bit = 1,
95 .clocksource_rating = 200,
96}; 83};
97 84
98#define r8a7778_register_tmu(idx) \ 85#define r8a7778_register_tmu(idx) \
99 platform_device_register_resndata( \ 86 platform_device_register_resndata( \
100 &platform_bus, "sh_tmu", idx, \ 87 &platform_bus, "sh-tmu", idx, \
101 sh_tmu##idx##_resources, \ 88 sh_tmu##idx##_resources, \
102 ARRAY_SIZE(sh_tmu##idx##_resources), \ 89 ARRAY_SIZE(sh_tmu##idx##_resources), \
103 &sh_tmu##idx##_platform_data, \ 90 &sh_tmu##idx##_platform_data, \
@@ -312,7 +299,6 @@ void __init r8a7778_add_dt_devices(void)
312 r8a7778_register_scif(4); 299 r8a7778_register_scif(4);
313 r8a7778_register_scif(5); 300 r8a7778_register_scif(5);
314 r8a7778_register_tmu(0); 301 r8a7778_register_tmu(0);
315 r8a7778_register_tmu(1);
316} 302}
317 303
318/* HPB-DMA */ 304/* HPB-DMA */
diff --git a/arch/arm/mach-shmobile/setup-r8a7779.c b/arch/arm/mach-shmobile/setup-r8a7779.c
index 8e860b36997a..d197b5adc886 100644
--- a/arch/arm/mach-shmobile/setup-r8a7779.c
+++ b/arch/arm/mach-shmobile/setup-r8a7779.c
@@ -219,64 +219,25 @@ R8A7779_SCIF(4, 0xffe44000, gic_iid(0x7c));
219R8A7779_SCIF(5, 0xffe45000, gic_iid(0x7d)); 219R8A7779_SCIF(5, 0xffe45000, gic_iid(0x7d));
220 220
221/* TMU */ 221/* TMU */
222static struct sh_timer_config tmu00_platform_data = { 222static struct sh_timer_config tmu0_platform_data = {
223 .name = "TMU00", 223 .channels_mask = 7,
224 .channel_offset = 0x4,
225 .timer_bit = 0,
226 .clockevent_rating = 200,
227}; 224};
228 225
229static struct resource tmu00_resources[] = { 226static struct resource tmu0_resources[] = {
230 [0] = { 227 DEFINE_RES_MEM(0xffd80000, 0x30),
231 .name = "TMU00", 228 DEFINE_RES_IRQ(gic_iid(0x40)),
232 .start = 0xffd80008, 229 DEFINE_RES_IRQ(gic_iid(0x41)),
233 .end = 0xffd80013, 230 DEFINE_RES_IRQ(gic_iid(0x42)),
234 .flags = IORESOURCE_MEM,
235 },
236 [1] = {
237 .start = gic_iid(0x40),
238 .flags = IORESOURCE_IRQ,
239 },
240}; 231};
241 232
242static struct platform_device tmu00_device = { 233static struct platform_device tmu0_device = {
243 .name = "sh_tmu", 234 .name = "sh-tmu",
244 .id = 0, 235 .id = 0,
245 .dev = { 236 .dev = {
246 .platform_data = &tmu00_platform_data, 237 .platform_data = &tmu0_platform_data,
247 },
248 .resource = tmu00_resources,
249 .num_resources = ARRAY_SIZE(tmu00_resources),
250};
251
252static struct sh_timer_config tmu01_platform_data = {
253 .name = "TMU01",
254 .channel_offset = 0x10,
255 .timer_bit = 1,
256 .clocksource_rating = 200,
257};
258
259static struct resource tmu01_resources[] = {
260 [0] = {
261 .name = "TMU01",
262 .start = 0xffd80014,
263 .end = 0xffd8001f,
264 .flags = IORESOURCE_MEM,
265 },
266 [1] = {
267 .start = gic_iid(0x41),
268 .flags = IORESOURCE_IRQ,
269 },
270};
271
272static struct platform_device tmu01_device = {
273 .name = "sh_tmu",
274 .id = 1,
275 .dev = {
276 .platform_data = &tmu01_platform_data,
277 }, 238 },
278 .resource = tmu01_resources, 239 .resource = tmu0_resources,
279 .num_resources = ARRAY_SIZE(tmu01_resources), 240 .num_resources = ARRAY_SIZE(tmu0_resources),
280}; 241};
281 242
282/* I2C */ 243/* I2C */
@@ -685,8 +646,7 @@ static struct platform_device *r8a7779_devices_dt[] __initdata = {
685 &scif3_device, 646 &scif3_device,
686 &scif4_device, 647 &scif4_device,
687 &scif5_device, 648 &scif5_device,
688 &tmu00_device, 649 &tmu0_device,
689 &tmu01_device,
690}; 650};
691 651
692static struct platform_device *r8a7779_standard_devices[] __initdata = { 652static struct platform_device *r8a7779_standard_devices[] __initdata = {
diff --git a/arch/arm/mach-shmobile/setup-r8a7790.c b/arch/arm/mach-shmobile/setup-r8a7790.c
index a901d9ef53f6..6bd08b127fa4 100644
--- a/arch/arm/mach-shmobile/setup-r8a7790.c
+++ b/arch/arm/mach-shmobile/setup-r8a7790.c
@@ -263,20 +263,17 @@ static const struct resource thermal_resources[] __initconst = {
263 thermal_resources, \ 263 thermal_resources, \
264 ARRAY_SIZE(thermal_resources)) 264 ARRAY_SIZE(thermal_resources))
265 265
266static const struct sh_timer_config cmt00_platform_data __initconst = { 266static struct sh_timer_config cmt0_platform_data = {
267 .name = "CMT00", 267 .channels_mask = 0x60,
268 .timer_bit = 0,
269 .clockevent_rating = 80,
270}; 268};
271 269
272static const struct resource cmt00_resources[] __initconst = { 270static struct resource cmt0_resources[] = {
273 DEFINE_RES_MEM(0xffca0510, 0x0c), 271 DEFINE_RES_MEM(0xffca0000, 0x1004),
274 DEFINE_RES_MEM(0xffca0500, 0x04), 272 DEFINE_RES_IRQ(gic_spi(142)),
275 DEFINE_RES_IRQ(gic_spi(142)), /* CMT0_0 */
276}; 273};
277 274
278#define r8a7790_register_cmt(idx) \ 275#define r8a7790_register_cmt(idx) \
279 platform_device_register_resndata(&platform_bus, "sh_cmt", \ 276 platform_device_register_resndata(&platform_bus, "sh-cmt-48-gen2", \
280 idx, cmt##idx##_resources, \ 277 idx, cmt##idx##_resources, \
281 ARRAY_SIZE(cmt##idx##_resources), \ 278 ARRAY_SIZE(cmt##idx##_resources), \
282 &cmt##idx##_platform_data, \ 279 &cmt##idx##_platform_data, \
@@ -284,6 +281,11 @@ static const struct resource cmt00_resources[] __initconst = {
284 281
285void __init r8a7790_add_dt_devices(void) 282void __init r8a7790_add_dt_devices(void)
286{ 283{
284 r8a7790_register_cmt(0);
285}
286
287void __init r8a7790_add_standard_devices(void)
288{
287 r8a7790_register_scif(0); 289 r8a7790_register_scif(0);
288 r8a7790_register_scif(1); 290 r8a7790_register_scif(1);
289 r8a7790_register_scif(2); 291 r8a7790_register_scif(2);
@@ -294,11 +296,6 @@ void __init r8a7790_add_dt_devices(void)
294 r8a7790_register_scif(7); 296 r8a7790_register_scif(7);
295 r8a7790_register_scif(8); 297 r8a7790_register_scif(8);
296 r8a7790_register_scif(9); 298 r8a7790_register_scif(9);
297 r8a7790_register_cmt(00);
298}
299
300void __init r8a7790_add_standard_devices(void)
301{
302 r8a7790_add_dt_devices(); 299 r8a7790_add_dt_devices();
303 r8a7790_register_irqc(0); 300 r8a7790_register_irqc(0);
304 r8a7790_register_thermal(); 301 r8a7790_register_thermal();
diff --git a/arch/arm/mach-shmobile/setup-r8a7791.c b/arch/arm/mach-shmobile/setup-r8a7791.c
index 949580ae150a..04a96ddb3224 100644
--- a/arch/arm/mach-shmobile/setup-r8a7791.c
+++ b/arch/arm/mach-shmobile/setup-r8a7791.c
@@ -128,20 +128,17 @@ R8A7791_SCIFA(14, 0xe6c80000, gic_spi(31)); /* SCIFA5 */
128 &scif##index##_platform_data, \ 128 &scif##index##_platform_data, \
129 sizeof(scif##index##_platform_data)) 129 sizeof(scif##index##_platform_data))
130 130
131static const struct sh_timer_config cmt00_platform_data __initconst = { 131static struct sh_timer_config cmt0_platform_data = {
132 .name = "CMT00", 132 .channels_mask = 0x60,
133 .timer_bit = 0,
134 .clockevent_rating = 80,
135}; 133};
136 134
137static const struct resource cmt00_resources[] __initconst = { 135static struct resource cmt0_resources[] = {
138 DEFINE_RES_MEM(0xffca0510, 0x0c), 136 DEFINE_RES_MEM(0xffca0000, 0x1004),
139 DEFINE_RES_MEM(0xffca0500, 0x04), 137 DEFINE_RES_IRQ(gic_spi(142)),
140 DEFINE_RES_IRQ(gic_spi(142)), /* CMT0_0 */
141}; 138};
142 139
143#define r8a7791_register_cmt(idx) \ 140#define r8a7791_register_cmt(idx) \
144 platform_device_register_resndata(&platform_bus, "sh_cmt", \ 141 platform_device_register_resndata(&platform_bus, "sh-cmt-48-gen2", \
145 idx, cmt##idx##_resources, \ 142 idx, cmt##idx##_resources, \
146 ARRAY_SIZE(cmt##idx##_resources), \ 143 ARRAY_SIZE(cmt##idx##_resources), \
147 &cmt##idx##_platform_data, \ 144 &cmt##idx##_platform_data, \
@@ -185,6 +182,11 @@ static const struct resource thermal_resources[] __initconst = {
185 182
186void __init r8a7791_add_dt_devices(void) 183void __init r8a7791_add_dt_devices(void)
187{ 184{
185 r8a7791_register_cmt(0);
186}
187
188void __init r8a7791_add_standard_devices(void)
189{
188 r8a7791_register_scif(0); 190 r8a7791_register_scif(0);
189 r8a7791_register_scif(1); 191 r8a7791_register_scif(1);
190 r8a7791_register_scif(2); 192 r8a7791_register_scif(2);
@@ -200,11 +202,6 @@ void __init r8a7791_add_dt_devices(void)
200 r8a7791_register_scif(12); 202 r8a7791_register_scif(12);
201 r8a7791_register_scif(13); 203 r8a7791_register_scif(13);
202 r8a7791_register_scif(14); 204 r8a7791_register_scif(14);
203 r8a7791_register_cmt(00);
204}
205
206void __init r8a7791_add_standard_devices(void)
207{
208 r8a7791_add_dt_devices(); 205 r8a7791_add_dt_devices();
209 r8a7791_register_irqc(0); 206 r8a7791_register_irqc(0);
210 r8a7791_register_thermal(); 207 r8a7791_register_thermal();
diff --git a/arch/arm/mach-shmobile/setup-sh7372.c b/arch/arm/mach-shmobile/setup-sh7372.c
index f8176b051be4..2a8b9f2a2f54 100644
--- a/arch/arm/mach-shmobile/setup-sh7372.c
+++ b/arch/arm/mach-shmobile/setup-sh7372.c
@@ -119,28 +119,16 @@ SH7372_SCIF(PORT_SCIFB, 6, 0xe6c30000, evt2irq(0x0d60));
119 119
120/* CMT */ 120/* CMT */
121static struct sh_timer_config cmt2_platform_data = { 121static struct sh_timer_config cmt2_platform_data = {
122 .name = "CMT2", 122 .channels_mask = 0x20,
123 .channel_offset = 0x40,
124 .timer_bit = 5,
125 .clockevent_rating = 125,
126 .clocksource_rating = 125,
127}; 123};
128 124
129static struct resource cmt2_resources[] = { 125static struct resource cmt2_resources[] = {
130 [0] = { 126 DEFINE_RES_MEM(0xe6130000, 0x50),
131 .name = "CMT2", 127 DEFINE_RES_IRQ(evt2irq(0x0b80)),
132 .start = 0xe6130040,
133 .end = 0xe613004b,
134 .flags = IORESOURCE_MEM,
135 },
136 [1] = {
137 .start = evt2irq(0x0b80), /* CMT2 */
138 .flags = IORESOURCE_IRQ,
139 },
140}; 128};
141 129
142static struct platform_device cmt2_device = { 130static struct platform_device cmt2_device = {
143 .name = "sh_cmt", 131 .name = "sh-cmt-32-fast",
144 .id = 2, 132 .id = 2,
145 .dev = { 133 .dev = {
146 .platform_data = &cmt2_platform_data, 134 .platform_data = &cmt2_platform_data,
@@ -150,64 +138,25 @@ static struct platform_device cmt2_device = {
150}; 138};
151 139
152/* TMU */ 140/* TMU */
153static struct sh_timer_config tmu00_platform_data = { 141static struct sh_timer_config tmu0_platform_data = {
154 .name = "TMU00", 142 .channels_mask = 7,
155 .channel_offset = 0x4,
156 .timer_bit = 0,
157 .clockevent_rating = 200,
158}; 143};
159 144
160static struct resource tmu00_resources[] = { 145static struct resource tmu0_resources[] = {
161 [0] = { 146 DEFINE_RES_MEM(0xfff60000, 0x2c),
162 .name = "TMU00", 147 DEFINE_RES_IRQ(intcs_evt2irq(0xe80)),
163 .start = 0xfff60008, 148 DEFINE_RES_IRQ(intcs_evt2irq(0xea0)),
164 .end = 0xfff60013, 149 DEFINE_RES_IRQ(intcs_evt2irq(0xec0)),
165 .flags = IORESOURCE_MEM,
166 },
167 [1] = {
168 .start = intcs_evt2irq(0xe80), /* TMU_TUNI0 */
169 .flags = IORESOURCE_IRQ,
170 },
171}; 150};
172 151
173static struct platform_device tmu00_device = { 152static struct platform_device tmu0_device = {
174 .name = "sh_tmu", 153 .name = "sh-tmu",
175 .id = 0, 154 .id = 0,
176 .dev = { 155 .dev = {
177 .platform_data = &tmu00_platform_data, 156 .platform_data = &tmu0_platform_data,
178 },
179 .resource = tmu00_resources,
180 .num_resources = ARRAY_SIZE(tmu00_resources),
181};
182
183static struct sh_timer_config tmu01_platform_data = {
184 .name = "TMU01",
185 .channel_offset = 0x10,
186 .timer_bit = 1,
187 .clocksource_rating = 200,
188};
189
190static struct resource tmu01_resources[] = {
191 [0] = {
192 .name = "TMU01",
193 .start = 0xfff60014,
194 .end = 0xfff6001f,
195 .flags = IORESOURCE_MEM,
196 },
197 [1] = {
198 .start = intcs_evt2irq(0xea0), /* TMU_TUNI1 */
199 .flags = IORESOURCE_IRQ,
200 },
201};
202
203static struct platform_device tmu01_device = {
204 .name = "sh_tmu",
205 .id = 1,
206 .dev = {
207 .platform_data = &tmu01_platform_data,
208 }, 157 },
209 .resource = tmu01_resources, 158 .resource = tmu0_resources,
210 .num_resources = ARRAY_SIZE(tmu01_resources), 159 .num_resources = ARRAY_SIZE(tmu0_resources),
211}; 160};
212 161
213/* I2C */ 162/* I2C */
@@ -952,8 +901,7 @@ static struct platform_device *sh7372_early_devices[] __initdata = {
952 &scif5_device, 901 &scif5_device,
953 &scif6_device, 902 &scif6_device,
954 &cmt2_device, 903 &cmt2_device,
955 &tmu00_device, 904 &tmu0_device,
956 &tmu01_device,
957 &ipmmu_device, 905 &ipmmu_device,
958}; 906};
959 907
@@ -1000,8 +948,7 @@ void __init sh7372_add_standard_devices(void)
1000 { "A4R", &veu2_device, }, 948 { "A4R", &veu2_device, },
1001 { "A4R", &veu3_device, }, 949 { "A4R", &veu3_device, },
1002 { "A4R", &jpu_device, }, 950 { "A4R", &jpu_device, },
1003 { "A4R", &tmu00_device, }, 951 { "A4R", &tmu0_device, },
1004 { "A4R", &tmu01_device, },
1005 }; 952 };
1006 953
1007 sh7372_init_pm_domains(); 954 sh7372_init_pm_domains();
diff --git a/arch/arm/mach-shmobile/setup-sh73a0.c b/arch/arm/mach-shmobile/setup-sh73a0.c
index f74ab530c71d..ad00724a2269 100644
--- a/arch/arm/mach-shmobile/setup-sh73a0.c
+++ b/arch/arm/mach-shmobile/setup-sh73a0.c
@@ -104,86 +104,45 @@ SH73A0_SCIF(PORT_SCIFA, 6, 0xe6cc0000, gic_spi(156));
104SH73A0_SCIF(PORT_SCIFA, 7, 0xe6cd0000, gic_spi(143)); 104SH73A0_SCIF(PORT_SCIFA, 7, 0xe6cd0000, gic_spi(143));
105SH73A0_SCIF(PORT_SCIFB, 8, 0xe6c30000, gic_spi(80)); 105SH73A0_SCIF(PORT_SCIFB, 8, 0xe6c30000, gic_spi(80));
106 106
107static struct sh_timer_config cmt10_platform_data = { 107static struct sh_timer_config cmt1_platform_data = {
108 .name = "CMT10", 108 .channels_mask = 0x3f,
109 .channel_offset = 0x10,
110 .timer_bit = 0,
111 .clockevent_rating = 80,
112 .clocksource_rating = 125,
113}; 109};
114 110
115static struct resource cmt10_resources[] = { 111static struct resource cmt1_resources[] = {
116 [0] = { 112 DEFINE_RES_MEM(0xe6138000, 0x200),
117 .name = "CMT10", 113 DEFINE_RES_IRQ(gic_spi(65)),
118 .start = 0xe6138010,
119 .end = 0xe613801b,
120 .flags = IORESOURCE_MEM,
121 },
122 [1] = {
123 .start = gic_spi(65),
124 .flags = IORESOURCE_IRQ,
125 },
126}; 114};
127 115
128static struct platform_device cmt10_device = { 116static struct platform_device cmt1_device = {
129 .name = "sh_cmt", 117 .name = "sh-cmt-48",
130 .id = 10, 118 .id = 1,
131 .dev = { 119 .dev = {
132 .platform_data = &cmt10_platform_data, 120 .platform_data = &cmt1_platform_data,
133 }, 121 },
134 .resource = cmt10_resources, 122 .resource = cmt1_resources,
135 .num_resources = ARRAY_SIZE(cmt10_resources), 123 .num_resources = ARRAY_SIZE(cmt1_resources),
136}; 124};
137 125
138/* TMU */ 126/* TMU */
139static struct sh_timer_config tmu00_platform_data = { 127static struct sh_timer_config tmu0_platform_data = {
140 .name = "TMU00", 128 .channels_mask = 7,
141 .channel_offset = 0x4,
142 .timer_bit = 0,
143 .clockevent_rating = 200,
144}; 129};
145 130
146static struct resource tmu00_resources[] = { 131static struct resource tmu0_resources[] = {
147 [0] = DEFINE_RES_MEM(0xfff60008, 0xc), 132 DEFINE_RES_MEM(0xfff60000, 0x2c),
148 [1] = { 133 DEFINE_RES_IRQ(intcs_evt2irq(0xe80)),
149 .start = intcs_evt2irq(0x0e80), /* TMU0_TUNI00 */ 134 DEFINE_RES_IRQ(intcs_evt2irq(0xea0)),
150 .flags = IORESOURCE_IRQ, 135 DEFINE_RES_IRQ(intcs_evt2irq(0xec0)),
151 },
152}; 136};
153 137
154static struct platform_device tmu00_device = { 138static struct platform_device tmu0_device = {
155 .name = "sh_tmu", 139 .name = "sh-tmu",
156 .id = 0, 140 .id = 0,
157 .dev = { 141 .dev = {
158 .platform_data = &tmu00_platform_data, 142 .platform_data = &tmu0_platform_data,
159 },
160 .resource = tmu00_resources,
161 .num_resources = ARRAY_SIZE(tmu00_resources),
162};
163
164static struct sh_timer_config tmu01_platform_data = {
165 .name = "TMU01",
166 .channel_offset = 0x10,
167 .timer_bit = 1,
168 .clocksource_rating = 200,
169};
170
171static struct resource tmu01_resources[] = {
172 [0] = DEFINE_RES_MEM(0xfff60014, 0xc),
173 [1] = {
174 .start = intcs_evt2irq(0x0ea0), /* TMU0_TUNI01 */
175 .flags = IORESOURCE_IRQ,
176 },
177};
178
179static struct platform_device tmu01_device = {
180 .name = "sh_tmu",
181 .id = 1,
182 .dev = {
183 .platform_data = &tmu01_platform_data,
184 }, 143 },
185 .resource = tmu01_resources, 144 .resource = tmu0_resources,
186 .num_resources = ARRAY_SIZE(tmu01_resources), 145 .num_resources = ARRAY_SIZE(tmu0_resources),
187}; 146};
188 147
189static struct resource i2c0_resources[] = { 148static struct resource i2c0_resources[] = {
@@ -746,12 +705,11 @@ static struct platform_device *sh73a0_devices_dt[] __initdata = {
746 &scif6_device, 705 &scif6_device,
747 &scif7_device, 706 &scif7_device,
748 &scif8_device, 707 &scif8_device,
749 &cmt10_device, 708 &cmt1_device,
750}; 709};
751 710
752static struct platform_device *sh73a0_early_devices[] __initdata = { 711static struct platform_device *sh73a0_early_devices[] __initdata = {
753 &tmu00_device, 712 &tmu0_device,
754 &tmu01_device,
755 &ipmmu_device, 713 &ipmmu_device,
756}; 714};
757 715