aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-05-14 15:48:45 -0400
committerArnd Bergmann <arnd@arndb.de>2012-05-15 07:31:11 -0400
commitc49314fa6c7d2c130d850b30980cffab53a40592 (patch)
tree9c7597ad98a42ef8ba1e18e897106c2cb29e52e6 /arch/arm
parent21b7f153dd0d7366197c37e7a630c7585db0b8ea (diff)
parent7f217794ffa72f208a250b79ab0b7ea3de19677f (diff)
Merge branch 'drivers/mmc' into next/drivers
* drivers/mmc: mmc: dt: Consolidate DT bindings Also pulls in the omap/dt-missed-3.4 branch as a dependency. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/boot/dts/imx53-smd.dts4
-rw-r--r--arch/arm/boot/dts/imx6q-arm2.dts2
-rw-r--r--arch/arm/boot/dts/omap3-beagle.dts49
-rw-r--r--arch/arm/boot/dts/omap3.dtsi102
-rw-r--r--arch/arm/boot/dts/omap4-panda.dts56
-rw-r--r--arch/arm/boot/dts/omap4-sdp.dts97
-rw-r--r--arch/arm/boot/dts/omap4.dtsi117
-rw-r--r--arch/arm/boot/dts/tegra-cardhu.dts2
-rw-r--r--arch/arm/boot/dts/tegra-harmony.dts2
-rw-r--r--arch/arm/boot/dts/tegra-paz00.dts2
-rw-r--r--arch/arm/boot/dts/tegra-seaboard.dts2
-rw-r--r--arch/arm/boot/dts/tegra-ventana.dts2
-rw-r--r--arch/arm/boot/dts/twl4030.dtsi39
-rw-r--r--arch/arm/boot/dts/twl6030.dtsi86
-rw-r--r--arch/arm/mach-omap2/board-generic.c37
-rw-r--r--arch/arm/mach-omap2/devices.c4
-rw-r--r--arch/arm/mach-omap2/gpio.c8
17 files changed, 570 insertions, 41 deletions
diff --git a/arch/arm/boot/dts/imx53-smd.dts b/arch/arm/boot/dts/imx53-smd.dts
index c7ee86c2dfb5..139138a556b0 100644
--- a/arch/arm/boot/dts/imx53-smd.dts
+++ b/arch/arm/boot/dts/imx53-smd.dts
@@ -35,7 +35,7 @@
35 }; 35 };
36 36
37 esdhc@50008000 { /* ESDHC2 */ 37 esdhc@50008000 { /* ESDHC2 */
38 fsl,card-wired; 38 non-removable;
39 status = "okay"; 39 status = "okay";
40 }; 40 };
41 41
@@ -76,7 +76,7 @@
76 }; 76 };
77 77
78 esdhc@50020000 { /* ESDHC3 */ 78 esdhc@50020000 { /* ESDHC3 */
79 fsl,card-wired; 79 non-removable;
80 status = "okay"; 80 status = "okay";
81 }; 81 };
82 }; 82 };
diff --git a/arch/arm/boot/dts/imx6q-arm2.dts b/arch/arm/boot/dts/imx6q-arm2.dts
index ce1c8238c897..d2eaf521c9fd 100644
--- a/arch/arm/boot/dts/imx6q-arm2.dts
+++ b/arch/arm/boot/dts/imx6q-arm2.dts
@@ -41,7 +41,7 @@
41 }; 41 };
42 42
43 usdhc@0219c000 { /* uSDHC4 */ 43 usdhc@0219c000 { /* uSDHC4 */
44 fsl,card-wired; 44 non-removable;
45 vmmc-supply = <&reg_3p3v>; 45 vmmc-supply = <&reg_3p3v>;
46 status = "okay"; 46 status = "okay";
47 }; 47 };
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts
index 9f72cd4cf308..5b4506c0a8c4 100644
--- a/arch/arm/boot/dts/omap3-beagle.dts
+++ b/arch/arm/boot/dts/omap3-beagle.dts
@@ -18,3 +18,52 @@
18 reg = <0x80000000 0x20000000>; /* 512 MB */ 18 reg = <0x80000000 0x20000000>; /* 512 MB */
19 }; 19 };
20}; 20};
21
22&i2c1 {
23 clock-frequency = <2600000>;
24
25 twl: twl@48 {
26 reg = <0x48>;
27 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
28 interrupt-parent = <&intc>;
29
30 vsim: regulator@10 {
31 compatible = "ti,twl4030-vsim";
32 regulator-min-microvolt = <1800000>;
33 regulator-max-microvolt = <3000000>;
34 };
35 };
36};
37
38/include/ "twl4030.dtsi"
39
40&i2c2 {
41 clock-frequency = <400000>;
42};
43
44&i2c3 {
45 clock-frequency = <100000>;
46
47 /*
48 * Display monitor features are burnt in the EEPROM
49 * as EDID data.
50 */
51 eeprom@50 {
52 compatible = "ti,eeprom";
53 reg = <0x50>;
54 };
55};
56
57&mmc1 {
58 vmmc-supply = <&vmmc1>;
59 vmmc_aux-supply = <&vsim>;
60 bus-width = <8>;
61};
62
63&mmc2 {
64 status = "disable";
65};
66
67&mmc3 {
68 status = "disable";
69};
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index c6121357c1eb..99474fa5fac4 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -69,6 +69,60 @@
69 reg = <0x48200000 0x1000>; 69 reg = <0x48200000 0x1000>;
70 }; 70 };
71 71
72 gpio1: gpio@48310000 {
73 compatible = "ti,omap3-gpio";
74 ti,hwmods = "gpio1";
75 gpio-controller;
76 #gpio-cells = <2>;
77 interrupt-controller;
78 #interrupt-cells = <1>;
79 };
80
81 gpio2: gpio@49050000 {
82 compatible = "ti,omap3-gpio";
83 ti,hwmods = "gpio2";
84 gpio-controller;
85 #gpio-cells = <2>;
86 interrupt-controller;
87 #interrupt-cells = <1>;
88 };
89
90 gpio3: gpio@49052000 {
91 compatible = "ti,omap3-gpio";
92 ti,hwmods = "gpio3";
93 gpio-controller;
94 #gpio-cells = <2>;
95 interrupt-controller;
96 #interrupt-cells = <1>;
97 };
98
99 gpio4: gpio@49054000 {
100 compatible = "ti,omap3-gpio";
101 ti,hwmods = "gpio4";
102 gpio-controller;
103 #gpio-cells = <2>;
104 interrupt-controller;
105 #interrupt-cells = <1>;
106 };
107
108 gpio5: gpio@49056000 {
109 compatible = "ti,omap3-gpio";
110 ti,hwmods = "gpio5";
111 gpio-controller;
112 #gpio-cells = <2>;
113 interrupt-controller;
114 #interrupt-cells = <1>;
115 };
116
117 gpio6: gpio@49058000 {
118 compatible = "ti,omap3-gpio";
119 ti,hwmods = "gpio6";
120 gpio-controller;
121 #gpio-cells = <2>;
122 interrupt-controller;
123 #interrupt-cells = <1>;
124 };
125
72 uart1: serial@4806a000 { 126 uart1: serial@4806a000 {
73 compatible = "ti,omap3-uart"; 127 compatible = "ti,omap3-uart";
74 ti,hwmods = "uart1"; 128 ti,hwmods = "uart1";
@@ -113,5 +167,53 @@
113 #size-cells = <0>; 167 #size-cells = <0>;
114 ti,hwmods = "i2c3"; 168 ti,hwmods = "i2c3";
115 }; 169 };
170
171 mcspi1: spi@48098000 {
172 compatible = "ti,omap2-mcspi";
173 #address-cells = <1>;
174 #size-cells = <0>;
175 ti,hwmods = "mcspi1";
176 ti,spi-num-cs = <4>;
177 };
178
179 mcspi2: spi@4809a000 {
180 compatible = "ti,omap2-mcspi";
181 #address-cells = <1>;
182 #size-cells = <0>;
183 ti,hwmods = "mcspi2";
184 ti,spi-num-cs = <2>;
185 };
186
187 mcspi3: spi@480b8000 {
188 compatible = "ti,omap2-mcspi";
189 #address-cells = <1>;
190 #size-cells = <0>;
191 ti,hwmods = "mcspi3";
192 ti,spi-num-cs = <2>;
193 };
194
195 mcspi4: spi@480ba000 {
196 compatible = "ti,omap2-mcspi";
197 #address-cells = <1>;
198 #size-cells = <0>;
199 ti,hwmods = "mcspi4";
200 ti,spi-num-cs = <1>;
201 };
202
203 mmc1: mmc@4809c000 {
204 compatible = "ti,omap3-hsmmc";
205 ti,hwmods = "mmc1";
206 ti,dual-volt;
207 };
208
209 mmc2: mmc@480b4000 {
210 compatible = "ti,omap3-hsmmc";
211 ti,hwmods = "mmc2";
212 };
213
214 mmc3: mmc@480ad000 {
215 compatible = "ti,omap3-hsmmc";
216 ti,hwmods = "mmc3";
217 };
116 }; 218 };
117}; 219};
diff --git a/arch/arm/boot/dts/omap4-panda.dts b/arch/arm/boot/dts/omap4-panda.dts
index 9755ad5917f8..31fb4218d3ae 100644
--- a/arch/arm/boot/dts/omap4-panda.dts
+++ b/arch/arm/boot/dts/omap4-panda.dts
@@ -18,3 +18,59 @@
18 reg = <0x80000000 0x40000000>; /* 1 GB */ 18 reg = <0x80000000 0x40000000>; /* 1 GB */
19 }; 19 };
20}; 20};
21
22&i2c1 {
23 clock-frequency = <400000>;
24
25 twl: twl@48 {
26 reg = <0x48>;
27 /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
28 interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */
29 interrupt-parent = <&gic>;
30 };
31};
32
33/include/ "twl6030.dtsi"
34
35&i2c2 {
36 clock-frequency = <400000>;
37};
38
39&i2c3 {
40 clock-frequency = <100000>;
41
42 /*
43 * Display monitor features are burnt in their EEPROM as EDID data.
44 * The EEPROM is connected as I2C slave device.
45 */
46 eeprom@50 {
47 compatible = "ti,eeprom";
48 reg = <0x50>;
49 };
50};
51
52&i2c4 {
53 clock-frequency = <400000>;
54};
55
56&mmc1 {
57 vmmc-supply = <&vmmc>;
58 bus-width = <8>;
59};
60
61&mmc2 {
62 status = "disable";
63};
64
65&mmc3 {
66 status = "disable";
67};
68
69&mmc4 {
70 status = "disable";
71};
72
73&mmc5 {
74 ti,non-removable;
75 bus-width = <4>;
76};
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts
index 63c6b2b2bf42..a1dd873425fc 100644
--- a/arch/arm/boot/dts/omap4-sdp.dts
+++ b/arch/arm/boot/dts/omap4-sdp.dts
@@ -17,4 +17,101 @@
17 device_type = "memory"; 17 device_type = "memory";
18 reg = <0x80000000 0x40000000>; /* 1 GB */ 18 reg = <0x80000000 0x40000000>; /* 1 GB */
19 }; 19 };
20
21 vdd_eth: fixedregulator@0 {
22 compatible = "regulator-fixed";
23 regulator-name = "VDD_ETH";
24 regulator-min-microvolt = <3300000>;
25 regulator-max-microvolt = <3300000>;
26 gpio = <&gpio2 16 0>; /* gpio line 48 */
27 enable-active-high;
28 regulator-boot-on;
29 };
30};
31
32&i2c1 {
33 clock-frequency = <400000>;
34
35 twl: twl@48 {
36 reg = <0x48>;
37 /* SPI = 0, IRQ# = 7, 4 = active high level-sensitive */
38 interrupts = <0 7 4>; /* IRQ_SYS_1N cascaded to gic */
39 interrupt-parent = <&gic>;
40 };
41};
42
43/include/ "twl6030.dtsi"
44
45&i2c2 {
46 clock-frequency = <400000>;
47};
48
49&i2c3 {
50 clock-frequency = <400000>;
51
52 /*
53 * Temperature Sensor
54 * http://www.ti.com/lit/ds/symlink/tmp105.pdf
55 */
56 tmp105@48 {
57 compatible = "ti,tmp105";
58 reg = <0x48>;
59 };
60
61 /*
62 * Ambient Light Sensor
63 * http://www.rohm.com/products/databook/sensor/pdf/bh1780gli-e.pdf
64 */
65 bh1780@29 {
66 compatible = "rohm,bh1780";
67 reg = <0x29>;
68 };
69};
70
71&i2c4 {
72 clock-frequency = <400000>;
73
74 /*
75 * 3-Axis Digital Compass
76 * http://www.sparkfun.com/datasheets/Sensors/Magneto/HMC5843.pdf
77 */
78 hmc5843@1e {
79 compatible = "honeywell,hmc5843";
80 reg = <0x1e>;
81 };
82};
83
84&mcspi1 {
85 eth@0 {
86 compatible = "ks8851";
87 spi-max-frequency = <24000000>;
88 reg = <0>;
89 interrupt-parent = <&gpio2>;
90 interrupts = <2>; /* gpio line 34 */
91 vdd-supply = <&vdd_eth>;
92 };
93};
94
95&mmc1 {
96 vmmc-supply = <&vmmc>;
97 bus-width = <8>;
98};
99
100&mmc2 {
101 vmmc-supply = <&vaux1>;
102 bus-width = <8>;
103 ti,non-removable;
104};
105
106&mmc3 {
107 status = "disable";
108};
109
110&mmc4 {
111 status = "disable";
112};
113
114&mmc5 {
115 bus-width = <4>;
116 ti,non-removable;
20}; 117};
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index 3d35559e77bc..359c4979c8aa 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -104,6 +104,60 @@
104 <0x48240100 0x0100>; 104 <0x48240100 0x0100>;
105 }; 105 };
106 106
107 gpio1: gpio@4a310000 {
108 compatible = "ti,omap4-gpio";
109 ti,hwmods = "gpio1";
110 gpio-controller;
111 #gpio-cells = <2>;
112 interrupt-controller;
113 #interrupt-cells = <1>;
114 };
115
116 gpio2: gpio@48055000 {
117 compatible = "ti,omap4-gpio";
118 ti,hwmods = "gpio2";
119 gpio-controller;
120 #gpio-cells = <2>;
121 interrupt-controller;
122 #interrupt-cells = <1>;
123 };
124
125 gpio3: gpio@48057000 {
126 compatible = "ti,omap4-gpio";
127 ti,hwmods = "gpio3";
128 gpio-controller;
129 #gpio-cells = <2>;
130 interrupt-controller;
131 #interrupt-cells = <1>;
132 };
133
134 gpio4: gpio@48059000 {
135 compatible = "ti,omap4-gpio";
136 ti,hwmods = "gpio4";
137 gpio-controller;
138 #gpio-cells = <2>;
139 interrupt-controller;
140 #interrupt-cells = <1>;
141 };
142
143 gpio5: gpio@4805b000 {
144 compatible = "ti,omap4-gpio";
145 ti,hwmods = "gpio5";
146 gpio-controller;
147 #gpio-cells = <2>;
148 interrupt-controller;
149 #interrupt-cells = <1>;
150 };
151
152 gpio6: gpio@4805d000 {
153 compatible = "ti,omap4-gpio";
154 ti,hwmods = "gpio6";
155 gpio-controller;
156 #gpio-cells = <2>;
157 interrupt-controller;
158 #interrupt-cells = <1>;
159 };
160
107 uart1: serial@4806a000 { 161 uart1: serial@4806a000 {
108 compatible = "ti,omap4-uart"; 162 compatible = "ti,omap4-uart";
109 ti,hwmods = "uart1"; 163 ti,hwmods = "uart1";
@@ -155,5 +209,68 @@
155 #size-cells = <0>; 209 #size-cells = <0>;
156 ti,hwmods = "i2c4"; 210 ti,hwmods = "i2c4";
157 }; 211 };
212
213 mcspi1: spi@48098000 {
214 compatible = "ti,omap4-mcspi";
215 #address-cells = <1>;
216 #size-cells = <0>;
217 ti,hwmods = "mcspi1";
218 ti,spi-num-cs = <4>;
219 };
220
221 mcspi2: spi@4809a000 {
222 compatible = "ti,omap4-mcspi";
223 #address-cells = <1>;
224 #size-cells = <0>;
225 ti,hwmods = "mcspi2";
226 ti,spi-num-cs = <2>;
227 };
228
229 mcspi3: spi@480b8000 {
230 compatible = "ti,omap4-mcspi";
231 #address-cells = <1>;
232 #size-cells = <0>;
233 ti,hwmods = "mcspi3";
234 ti,spi-num-cs = <2>;
235 };
236
237 mcspi4: spi@480ba000 {
238 compatible = "ti,omap4-mcspi";
239 #address-cells = <1>;
240 #size-cells = <0>;
241 ti,hwmods = "mcspi4";
242 ti,spi-num-cs = <1>;
243 };
244
245 mmc1: mmc@4809c000 {
246 compatible = "ti,omap4-hsmmc";
247 ti,hwmods = "mmc1";
248 ti,dual-volt;
249 ti,needs-special-reset;
250 };
251
252 mmc2: mmc@480b4000 {
253 compatible = "ti,omap4-hsmmc";
254 ti,hwmods = "mmc2";
255 ti,needs-special-reset;
256 };
257
258 mmc3: mmc@480ad000 {
259 compatible = "ti,omap4-hsmmc";
260 ti,hwmods = "mmc3";
261 ti,needs-special-reset;
262 };
263
264 mmc4: mmc@480d1000 {
265 compatible = "ti,omap4-hsmmc";
266 ti,hwmods = "mmc4";
267 ti,needs-special-reset;
268 };
269
270 mmc5: mmc@480d5000 {
271 compatible = "ti,omap4-hsmmc";
272 ti,hwmods = "mmc5";
273 ti,needs-special-reset;
274 };
158 }; 275 };
159}; 276};
diff --git a/arch/arm/boot/dts/tegra-cardhu.dts b/arch/arm/boot/dts/tegra-cardhu.dts
index ab8d901b5ab6..4a166357172b 100644
--- a/arch/arm/boot/dts/tegra-cardhu.dts
+++ b/arch/arm/boot/dts/tegra-cardhu.dts
@@ -121,6 +121,7 @@
121 cd-gpios = <&gpio 69 0>; /* gpio PI5 */ 121 cd-gpios = <&gpio 69 0>; /* gpio PI5 */
122 wp-gpios = <&gpio 155 0>; /* gpio PT3 */ 122 wp-gpios = <&gpio 155 0>; /* gpio PT3 */
123 power-gpios = <&gpio 31 0>; /* gpio PD7 */ 123 power-gpios = <&gpio 31 0>; /* gpio PD7 */
124 bus-width = <4>;
124 }; 125 };
125 126
126 sdhci@78000200 { 127 sdhci@78000200 {
@@ -133,6 +134,7 @@
133 134
134 sdhci@78000400 { 135 sdhci@78000400 {
135 support-8bit; 136 support-8bit;
137 bus-width = <8>;
136 }; 138 };
137 139
138 ahub@70080000 { 140 ahub@70080000 {
diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts
index 6857cec8382d..7cd513ac5ea6 100644
--- a/arch/arm/boot/dts/tegra-harmony.dts
+++ b/arch/arm/boot/dts/tegra-harmony.dts
@@ -324,6 +324,7 @@
324 cd-gpios = <&gpio 69 0>; /* gpio PI5 */ 324 cd-gpios = <&gpio 69 0>; /* gpio PI5 */
325 wp-gpios = <&gpio 57 0>; /* gpio PH1 */ 325 wp-gpios = <&gpio 57 0>; /* gpio PH1 */
326 power-gpios = <&gpio 155 0>; /* gpio PT3 */ 326 power-gpios = <&gpio 155 0>; /* gpio PT3 */
327 bus-width = <4>;
327 }; 328 };
328 329
329 sdhci@c8000400 { 330 sdhci@c8000400 {
@@ -335,6 +336,7 @@
335 wp-gpios = <&gpio 59 0>; /* gpio PH3 */ 336 wp-gpios = <&gpio 59 0>; /* gpio PH3 */
336 power-gpios = <&gpio 70 0>; /* gpio PI6 */ 337 power-gpios = <&gpio 70 0>; /* gpio PI6 */
337 support-8bit; 338 support-8bit;
339 bus-width = <8>;
338 }; 340 };
339 341
340 usb@c5004000 { 342 usb@c5004000 {
diff --git a/arch/arm/boot/dts/tegra-paz00.dts b/arch/arm/boot/dts/tegra-paz00.dts
index 34a917710e09..8d625e4c5de5 100644
--- a/arch/arm/boot/dts/tegra-paz00.dts
+++ b/arch/arm/boot/dts/tegra-paz00.dts
@@ -313,6 +313,7 @@
313 cd-gpios = <&gpio 173 0>; /* gpio PV5 */ 313 cd-gpios = <&gpio 173 0>; /* gpio PV5 */
314 wp-gpios = <&gpio 57 0>; /* gpio PH1 */ 314 wp-gpios = <&gpio 57 0>; /* gpio PH1 */
315 power-gpios = <&gpio 169 0>; /* gpio PV1 */ 315 power-gpios = <&gpio 169 0>; /* gpio PV1 */
316 bus-width = <4>;
316 }; 317 };
317 318
318 sdhci@c8000200 { 319 sdhci@c8000200 {
@@ -325,6 +326,7 @@
325 326
326 sdhci@c8000600 { 327 sdhci@c8000600 {
327 support-8bit; 328 support-8bit;
329 bus-width = <8>;
328 }; 330 };
329 331
330 gpio-keys { 332 gpio-keys {
diff --git a/arch/arm/boot/dts/tegra-seaboard.dts b/arch/arm/boot/dts/tegra-seaboard.dts
index ed0a2f5bf918..315971993cfd 100644
--- a/arch/arm/boot/dts/tegra-seaboard.dts
+++ b/arch/arm/boot/dts/tegra-seaboard.dts
@@ -347,10 +347,12 @@
347 cd-gpios = <&gpio 69 0>; /* gpio PI5 */ 347 cd-gpios = <&gpio 69 0>; /* gpio PI5 */
348 wp-gpios = <&gpio 57 0>; /* gpio PH1 */ 348 wp-gpios = <&gpio 57 0>; /* gpio PH1 */
349 power-gpios = <&gpio 70 0>; /* gpio PI6 */ 349 power-gpios = <&gpio 70 0>; /* gpio PI6 */
350 bus-width = <4>;
350 }; 351 };
351 352
352 sdhci@c8000600 { 353 sdhci@c8000600 {
353 support-8bit; 354 support-8bit;
355 bus-width = <8>;
354 }; 356 };
355 357
356 usb@c5000000 { 358 usb@c5000000 {
diff --git a/arch/arm/boot/dts/tegra-ventana.dts b/arch/arm/boot/dts/tegra-ventana.dts
index bd074cfb338f..b922a26747e7 100644
--- a/arch/arm/boot/dts/tegra-ventana.dts
+++ b/arch/arm/boot/dts/tegra-ventana.dts
@@ -330,10 +330,12 @@
330 cd-gpios = <&gpio 69 0>; /* gpio PI5 */ 330 cd-gpios = <&gpio 69 0>; /* gpio PI5 */
331 wp-gpios = <&gpio 57 0>; /* gpio PH1 */ 331 wp-gpios = <&gpio 57 0>; /* gpio PH1 */
332 power-gpios = <&gpio 70 0>; /* gpio PI6 */ 332 power-gpios = <&gpio 70 0>; /* gpio PI6 */
333 bus-width = <4>;
333 }; 334 };
334 335
335 sdhci@c8000600 { 336 sdhci@c8000600 {
336 support-8bit; 337 support-8bit;
338 bus-width = <8>;
337 }; 339 };
338 340
339 usb@c5004000 { 341 usb@c5004000 {
diff --git a/arch/arm/boot/dts/twl4030.dtsi b/arch/arm/boot/dts/twl4030.dtsi
new file mode 100644
index 000000000000..a94654c9eb8d
--- /dev/null
+++ b/arch/arm/boot/dts/twl4030.dtsi
@@ -0,0 +1,39 @@
1/*
2 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/*
10 * Integrated Power Management Chip
11 */
12&twl {
13 compatible = "ti,twl4030";
14 interrupt-controller;
15 #interrupt-cells = <1>;
16
17 rtc {
18 compatible = "ti,twl4030-rtc";
19 interrupts = <11>;
20 };
21
22 vdac: regulator@0 {
23 compatible = "ti,twl4030-vdac";
24 regulator-min-microvolt = <1800000>;
25 regulator-max-microvolt = <1800000>;
26 };
27
28 vpll2: regulator@1 {
29 compatible = "ti,twl4030-vpll2";
30 regulator-min-microvolt = <1800000>;
31 regulator-max-microvolt = <1800000>;
32 };
33
34 vmmc1: regulator@2 {
35 compatible = "ti,twl4030-vmmc1";
36 regulator-min-microvolt = <1850000>;
37 regulator-max-microvolt = <3150000>;
38 };
39};
diff --git a/arch/arm/boot/dts/twl6030.dtsi b/arch/arm/boot/dts/twl6030.dtsi
new file mode 100644
index 000000000000..3b2f3510d7eb
--- /dev/null
+++ b/arch/arm/boot/dts/twl6030.dtsi
@@ -0,0 +1,86 @@
1/*
2 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/*
10 * Integrated Power Management Chip
11 * http://www.ti.com/lit/ds/symlink/twl6030.pdf
12 */
13&twl {
14 compatible = "ti,twl6030";
15 interrupt-controller;
16 #interrupt-cells = <1>;
17
18 rtc {
19 compatible = "ti,twl4030-rtc";
20 interrupts = <11>;
21 };
22
23 vaux1: regulator@0 {
24 compatible = "ti,twl6030-vaux1";
25 regulator-min-microvolt = <1000000>;
26 regulator-max-microvolt = <3000000>;
27 };
28
29 vaux2: regulator@1 {
30 compatible = "ti,twl6030-vaux2";
31 regulator-min-microvolt = <1200000>;
32 regulator-max-microvolt = <2800000>;
33 };
34
35 vaux3: regulator@2 {
36 compatible = "ti,twl6030-vaux3";
37 regulator-min-microvolt = <1000000>;
38 regulator-max-microvolt = <3000000>;
39 };
40
41 vmmc: regulator@3 {
42 compatible = "ti,twl6030-vmmc";
43 regulator-min-microvolt = <1200000>;
44 regulator-max-microvolt = <3000000>;
45 };
46
47 vpp: regulator@4 {
48 compatible = "ti,twl6030-vpp";
49 regulator-min-microvolt = <1800000>;
50 regulator-max-microvolt = <2500000>;
51 };
52
53 vusim: regulator@5 {
54 compatible = "ti,twl6030-vusim";
55 regulator-min-microvolt = <1200000>;
56 regulator-max-microvolt = <2900000>;
57 };
58
59 vdac: regulator@6 {
60 compatible = "ti,twl6030-vdac";
61 };
62
63 vana: regulator@7 {
64 compatible = "ti,twl6030-vana";
65 };
66
67 vcxio: regulator@8 {
68 compatible = "ti,twl6030-vcxio";
69 };
70
71 vusb: regulator@9 {
72 compatible = "ti,twl6030-vusb";
73 };
74
75 v1v8: regulator@10 {
76 compatible = "ti,twl6030-v1v8";
77 };
78
79 v2v1: regulator@11 {
80 compatible = "ti,twl6030-v2v1";
81 };
82
83 clk32kg: regulator@12 {
84 compatible = "ti,twl6030-clk32kg";
85 };
86};
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
index 098d183a0086..7302ba7ff1b9 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -15,7 +15,6 @@
15#include <linux/of_irq.h> 15#include <linux/of_irq.h>
16#include <linux/of_platform.h> 16#include <linux/of_platform.h>
17#include <linux/irqdomain.h> 17#include <linux/irqdomain.h>
18#include <linux/i2c/twl.h>
19 18
20#include <mach/hardware.h> 19#include <mach/hardware.h>
21#include <asm/hardware/gic.h> 20#include <asm/hardware/gic.h>
@@ -95,22 +94,6 @@ MACHINE_END
95#endif 94#endif
96 95
97#ifdef CONFIG_ARCH_OMAP3 96#ifdef CONFIG_ARCH_OMAP3
98static struct twl4030_platform_data beagle_twldata = {
99 .irq_base = TWL4030_IRQ_BASE,
100 .irq_end = TWL4030_IRQ_END,
101};
102
103static void __init omap3_i2c_init(void)
104{
105 omap3_pmic_init("twl4030", &beagle_twldata);
106}
107
108static void __init omap3_init(void)
109{
110 omap3_i2c_init();
111 omap_generic_init();
112}
113
114static const char *omap3_boards_compat[] __initdata = { 97static const char *omap3_boards_compat[] __initdata = {
115 "ti,omap3", 98 "ti,omap3",
116 NULL, 99 NULL,
@@ -122,7 +105,7 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
122 .init_early = omap3430_init_early, 105 .init_early = omap3430_init_early,
123 .init_irq = omap_init_irq, 106 .init_irq = omap_init_irq,
124 .handle_irq = omap3_intc_handle_irq, 107 .handle_irq = omap3_intc_handle_irq,
125 .init_machine = omap3_init, 108 .init_machine = omap_generic_init,
126 .timer = &omap3_timer, 109 .timer = &omap3_timer,
127 .dt_compat = omap3_boards_compat, 110 .dt_compat = omap3_boards_compat,
128 .restart = omap_prcm_restart, 111 .restart = omap_prcm_restart,
@@ -130,22 +113,6 @@ MACHINE_END
130#endif 113#endif
131 114
132#ifdef CONFIG_ARCH_OMAP4 115#ifdef CONFIG_ARCH_OMAP4
133static struct twl4030_platform_data sdp4430_twldata = {
134 .irq_base = TWL6030_IRQ_BASE,
135 .irq_end = TWL6030_IRQ_END,
136};
137
138static void __init omap4_i2c_init(void)
139{
140 omap4_pmic_init("twl6030", &sdp4430_twldata, NULL, 0);
141}
142
143static void __init omap4_init(void)
144{
145 omap4_i2c_init();
146 omap_generic_init();
147}
148
149static const char *omap4_boards_compat[] __initdata = { 116static const char *omap4_boards_compat[] __initdata = {
150 "ti,omap4", 117 "ti,omap4",
151 NULL, 118 NULL,
@@ -157,7 +124,7 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
157 .init_early = omap4430_init_early, 124 .init_early = omap4430_init_early,
158 .init_irq = omap_init_irq, 125 .init_irq = omap_init_irq,
159 .handle_irq = gic_handle_irq, 126 .handle_irq = gic_handle_irq,
160 .init_machine = omap4_init, 127 .init_machine = omap_generic_init,
161 .timer = &omap4_timer, 128 .timer = &omap4_timer,
162 .dt_compat = omap4_boards_compat, 129 .dt_compat = omap4_boards_compat,
163 .restart = omap_prcm_restart, 130 .restart = omap_prcm_restart,
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index e4336035c0ea..98cab3a204b9 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -705,7 +705,9 @@ static int __init omap2_init_devices(void)
705 omap_init_dmic(); 705 omap_init_dmic();
706 omap_init_camera(); 706 omap_init_camera();
707 omap_init_mbox(); 707 omap_init_mbox();
708 omap_init_mcspi(); 708 /* If dtb is there, the devices will be created dynamically */
709 if (!of_have_populated_dt())
710 omap_init_mcspi();
709 omap_init_pmu(); 711 omap_init_pmu();
710 omap_hdq_init(); 712 omap_hdq_init();
711 omap_init_sti(); 713 omap_init_sti();
diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c
index 2f994e5194e8..18f9c7bd7200 100644
--- a/arch/arm/mach-omap2/gpio.c
+++ b/arch/arm/mach-omap2/gpio.c
@@ -20,6 +20,7 @@
20#include <linux/err.h> 20#include <linux/err.h>
21#include <linux/slab.h> 21#include <linux/slab.h>
22#include <linux/interrupt.h> 22#include <linux/interrupt.h>
23#include <linux/of.h>
23 24
24#include <plat/omap_hwmod.h> 25#include <plat/omap_hwmod.h>
25#include <plat/omap_device.h> 26#include <plat/omap_device.h>
@@ -146,7 +147,10 @@ static int __init omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
146 */ 147 */
147static int __init omap2_gpio_init(void) 148static int __init omap2_gpio_init(void)
148{ 149{
149 return omap_hwmod_for_each_by_class("gpio", omap2_gpio_dev_init, 150 /* If dtb is there, the devices will be created dynamically */
150 NULL); 151 if (of_have_populated_dt())
152 return -ENODEV;
153
154 return omap_hwmod_for_each_by_class("gpio", omap2_gpio_dev_init, NULL);
151} 155}
152postcore_initcall(omap2_gpio_init); 156postcore_initcall(omap2_gpio_init);