diff options
author | Arnd Bergmann <arnd@arndb.de> | 2012-05-14 16:35:04 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-05-15 07:44:11 -0400 |
commit | deb88cc3c69975cbd9875ed9fac259b351f6b64d (patch) | |
tree | ece2ffba5c3e585cf649d73e4ea1784037335468 | |
parent | ecf1b318347f6c250293ee8a9f2597373b00e0c3 (diff) | |
parent | 7f217794ffa72f208a250b79ab0b7ea3de19677f (diff) |
Merge branch 'drivers/mmc' into next/dt2
Changes in the dt2 branch move stuff around that gets changed
in the drivers/mmc branch. I chose a non-obvious resolution by
adding the new bus-width property into all the tegra sdhci device
nodes.
Conflicts:
arch/arm/boot/dts/tegra-cardhu.dts
arch/arm/boot/dts/tegra-harmony.dts
arch/arm/boot/dts/tegra-ventana.dts
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
28 files changed, 619 insertions, 53 deletions
diff --git a/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt b/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt index 64bcb8be973c..0d93b4b0e0e3 100644 --- a/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt +++ b/Documentation/devicetree/bindings/mmc/fsl-esdhc.txt | |||
@@ -11,9 +11,11 @@ Required properties: | |||
11 | - interrupt-parent : interrupt source phandle. | 11 | - interrupt-parent : interrupt source phandle. |
12 | - clock-frequency : specifies eSDHC base clock frequency. | 12 | - clock-frequency : specifies eSDHC base clock frequency. |
13 | - sdhci,wp-inverted : (optional) specifies that eSDHC controller | 13 | - sdhci,wp-inverted : (optional) specifies that eSDHC controller |
14 | reports inverted write-protect state; | 14 | reports inverted write-protect state; New devices should use |
15 | the generic "wp-inverted" property. | ||
15 | - sdhci,1-bit-only : (optional) specifies that a controller can | 16 | - sdhci,1-bit-only : (optional) specifies that a controller can |
16 | only handle 1-bit data transfers. | 17 | only handle 1-bit data transfers. New devices should use the |
18 | generic "bus-width = <1>" property. | ||
17 | - sdhci,auto-cmd12: (optional) specifies that a controller can | 19 | - sdhci,auto-cmd12: (optional) specifies that a controller can |
18 | only handle auto CMD12. | 20 | only handle auto CMD12. |
19 | 21 | ||
diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt index ab22fe6e73ab..c7e404b3ef05 100644 --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt | |||
@@ -9,7 +9,7 @@ Required properties: | |||
9 | - interrupts : Should contain eSDHC interrupt | 9 | - interrupts : Should contain eSDHC interrupt |
10 | 10 | ||
11 | Optional properties: | 11 | Optional properties: |
12 | - fsl,card-wired : Indicate the card is wired to host permanently | 12 | - non-removable : Indicate the card is wired to host permanently |
13 | - fsl,cd-internal : Indicate to use controller internal card detection | 13 | - fsl,cd-internal : Indicate to use controller internal card detection |
14 | - fsl,wp-internal : Indicate to use controller internal write protection | 14 | - fsl,wp-internal : Indicate to use controller internal write protection |
15 | - cd-gpios : Specify GPIOs for card detection | 15 | - cd-gpios : Specify GPIOs for card detection |
diff --git a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt index 89a0084df2f7..d64aea5a4203 100644 --- a/Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt +++ b/Documentation/devicetree/bindings/mmc/mmc-spi-slot.txt | |||
@@ -10,7 +10,8 @@ Required properties: | |||
10 | 10 | ||
11 | Optional properties: | 11 | Optional properties: |
12 | - gpios : may specify GPIOs in this order: Card-Detect GPIO, | 12 | - gpios : may specify GPIOs in this order: Card-Detect GPIO, |
13 | Write-Protect GPIO. | 13 | Write-Protect GPIO. Note that this does not follow the |
14 | binding from mmc.txt, for historic reasons. | ||
14 | - interrupts : the interrupt of a card detect interrupt. | 15 | - interrupts : the interrupt of a card detect interrupt. |
15 | - interrupt-parent : the phandle for the interrupt controller that | 16 | - interrupt-parent : the phandle for the interrupt controller that |
16 | services interrupts for this device. | 17 | services interrupts for this device. |
diff --git a/Documentation/devicetree/bindings/mmc/mmc.txt b/Documentation/devicetree/bindings/mmc/mmc.txt new file mode 100644 index 000000000000..6e70dcde0a71 --- /dev/null +++ b/Documentation/devicetree/bindings/mmc/mmc.txt | |||
@@ -0,0 +1,27 @@ | |||
1 | These properties are common to multiple MMC host controllers. Any host | ||
2 | that requires the respective functionality should implement them using | ||
3 | these definitions. | ||
4 | |||
5 | Required properties: | ||
6 | - bus-width: Number of data lines, can be <1>, <4>, or <8> | ||
7 | |||
8 | Optional properties: | ||
9 | - cd-gpios : Specify GPIOs for card detection, see gpio binding | ||
10 | - wp-gpios : Specify GPIOs for write protection, see gpio binding | ||
11 | - cd-inverted: when present, polarity on the wp gpio line is inverted | ||
12 | - wp-inverted: when present, polarity on the wp gpio line is inverted | ||
13 | - non-removable: non-removable slot (like eMMC) | ||
14 | - max-frequency: maximum operating clock frequency | ||
15 | |||
16 | Example: | ||
17 | |||
18 | sdhci@ab000000 { | ||
19 | compatible = "sdhci"; | ||
20 | reg = <0xab000000 0x200>; | ||
21 | interrupts = <23>; | ||
22 | bus-width = <4>; | ||
23 | cd-gpios = <&gpio 69 0>; | ||
24 | cd-inverted; | ||
25 | wp-gpios = <&gpio 70 0>; | ||
26 | max-frequency = <50000000>; | ||
27 | } | ||
diff --git a/Documentation/devicetree/bindings/mmc/nvidia-sdhci.txt b/Documentation/devicetree/bindings/mmc/nvidia-sdhci.txt index 7e51154679a6..f77c3031607f 100644 --- a/Documentation/devicetree/bindings/mmc/nvidia-sdhci.txt +++ b/Documentation/devicetree/bindings/mmc/nvidia-sdhci.txt | |||
@@ -7,12 +7,12 @@ Required properties: | |||
7 | - compatible : Should be "nvidia,<chip>-sdhci" | 7 | - compatible : Should be "nvidia,<chip>-sdhci" |
8 | - reg : Should contain SD/MMC registers location and length | 8 | - reg : Should contain SD/MMC registers location and length |
9 | - interrupts : Should contain SD/MMC interrupt | 9 | - interrupts : Should contain SD/MMC interrupt |
10 | - bus-width : Number of data lines, can be <1>, <4>, or <8> | ||
10 | 11 | ||
11 | Optional properties: | 12 | Optional properties: |
12 | - cd-gpios : Specify GPIOs for card detection | 13 | - cd-gpios : Specify GPIOs for card detection |
13 | - wp-gpios : Specify GPIOs for write protection | 14 | - wp-gpios : Specify GPIOs for write protection |
14 | - power-gpios : Specify GPIOs for power control | 15 | - power-gpios : Specify GPIOs for power control |
15 | - support-8bit : Boolean, indicates if 8-bit mode should be used. | ||
16 | 16 | ||
17 | Example: | 17 | Example: |
18 | 18 | ||
@@ -23,5 +23,5 @@ sdhci@c8000200 { | |||
23 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ | 23 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ |
24 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ | 24 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ |
25 | power-gpios = <&gpio 155 0>; /* gpio PT3 */ | 25 | power-gpios = <&gpio 155 0>; /* gpio PT3 */ |
26 | support-8bit; | 26 | bus-width = <8>; |
27 | }; | 27 | }; |
diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt index dbd4368ab8cc..8a53958c9a9f 100644 --- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt +++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt | |||
@@ -15,7 +15,7 @@ Optional properties: | |||
15 | ti,dual-volt: boolean, supports dual voltage cards | 15 | ti,dual-volt: boolean, supports dual voltage cards |
16 | <supply-name>-supply: phandle to the regulator device tree node | 16 | <supply-name>-supply: phandle to the regulator device tree node |
17 | "supply-name" examples are "vmmc", "vmmc_aux" etc | 17 | "supply-name" examples are "vmmc", "vmmc_aux" etc |
18 | ti,bus-width: Number of data lines, default assumed is 1 if the property is missing. | 18 | bus-width: Number of data lines, default assumed is 1 if the property is missing. |
19 | cd-gpios: GPIOs for card detection | 19 | cd-gpios: GPIOs for card detection |
20 | wp-gpios: GPIOs for write protection | 20 | wp-gpios: GPIOs for write protection |
21 | ti,non-removable: non-removable slot (like eMMC) | 21 | ti,non-removable: non-removable slot (like eMMC) |
@@ -27,7 +27,7 @@ Example: | |||
27 | reg = <0x4809c000 0x400>; | 27 | reg = <0x4809c000 0x400>; |
28 | ti,hwmods = "mmc1"; | 28 | ti,hwmods = "mmc1"; |
29 | ti,dual-volt; | 29 | ti,dual-volt; |
30 | ti,bus-width = <4>; | 30 | bus-width = <4>; |
31 | vmmc-supply = <&vmmc>; /* phandle to regulator node */ | 31 | vmmc-supply = <&vmmc>; /* phandle to regulator node */ |
32 | ti,non-removable; | 32 | ti,non-removable; |
33 | }; | 33 | }; |
diff --git a/arch/arm/boot/dts/imx53-smd.dts b/arch/arm/boot/dts/imx53-smd.dts index a3529afc4d20..08091029168e 100644 --- a/arch/arm/boot/dts/imx53-smd.dts +++ b/arch/arm/boot/dts/imx53-smd.dts | |||
@@ -31,7 +31,7 @@ | |||
31 | }; | 31 | }; |
32 | 32 | ||
33 | esdhc@50008000 { /* ESDHC2 */ | 33 | esdhc@50008000 { /* ESDHC2 */ |
34 | fsl,card-wired; | 34 | non-removable; |
35 | status = "okay"; | 35 | status = "okay"; |
36 | }; | 36 | }; |
37 | 37 | ||
@@ -72,7 +72,7 @@ | |||
72 | }; | 72 | }; |
73 | 73 | ||
74 | esdhc@50020000 { /* ESDHC3 */ | 74 | esdhc@50020000 { /* ESDHC3 */ |
75 | fsl,card-wired; | 75 | non-removable; |
76 | status = "okay"; | 76 | status = "okay"; |
77 | }; | 77 | }; |
78 | }; | 78 | }; |
diff --git a/arch/arm/boot/dts/imx6q-arm2.dts b/arch/arm/boot/dts/imx6q-arm2.dts index 97893f5cab92..db4c6096c562 100644 --- a/arch/arm/boot/dts/imx6q-arm2.dts +++ b/arch/arm/boot/dts/imx6q-arm2.dts | |||
@@ -38,7 +38,7 @@ | |||
38 | }; | 38 | }; |
39 | 39 | ||
40 | usdhc@0219c000 { /* uSDHC4 */ | 40 | usdhc@0219c000 { /* uSDHC4 */ |
41 | fsl,card-wired; | 41 | non-removable; |
42 | vmmc-supply = <®_3p3v>; | 42 | vmmc-supply = <®_3p3v>; |
43 | pinctrl-names = "default"; | 43 | pinctrl-names = "default"; |
44 | pinctrl-0 = <&pinctrl_usdhc4_1>; | 44 | pinctrl-0 = <&pinctrl_usdhc4_1>; |
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 e14bb450c328..36321bceec46 100644 --- a/arch/arm/boot/dts/tegra-cardhu.dts +++ b/arch/arm/boot/dts/tegra-cardhu.dts | |||
@@ -139,11 +139,13 @@ | |||
139 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ | 139 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ |
140 | wp-gpios = <&gpio 155 0>; /* gpio PT3 */ | 140 | wp-gpios = <&gpio 155 0>; /* gpio PT3 */ |
141 | power-gpios = <&gpio 31 0>; /* gpio PD7 */ | 141 | power-gpios = <&gpio 31 0>; /* gpio PD7 */ |
142 | bus-width = <4>; | ||
142 | }; | 143 | }; |
143 | 144 | ||
144 | sdhci@78000600 { | 145 | sdhci@78000600 { |
145 | status = "okay"; | 146 | status = "okay"; |
146 | support-8bit; | 147 | support-8bit; |
148 | bus-width = <8>; | ||
147 | }; | 149 | }; |
148 | 150 | ||
149 | sound { | 151 | sound { |
diff --git a/arch/arm/boot/dts/tegra-harmony.dts b/arch/arm/boot/dts/tegra-harmony.dts index 6bcdad34d2e7..7de701365fce 100644 --- a/arch/arm/boot/dts/tegra-harmony.dts +++ b/arch/arm/boot/dts/tegra-harmony.dts | |||
@@ -299,6 +299,7 @@ | |||
299 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ | 299 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ |
300 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ | 300 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ |
301 | power-gpios = <&gpio 155 0>; /* gpio PT3 */ | 301 | power-gpios = <&gpio 155 0>; /* gpio PT3 */ |
302 | bus-width = <4>; | ||
302 | }; | 303 | }; |
303 | 304 | ||
304 | sdhci@c8000600 { | 305 | sdhci@c8000600 { |
@@ -307,6 +308,7 @@ | |||
307 | wp-gpios = <&gpio 59 0>; /* gpio PH3 */ | 308 | wp-gpios = <&gpio 59 0>; /* gpio PH3 */ |
308 | power-gpios = <&gpio 70 0>; /* gpio PI6 */ | 309 | power-gpios = <&gpio 70 0>; /* gpio PI6 */ |
309 | support-8bit; | 310 | support-8bit; |
311 | bus-width = <8>; | ||
310 | }; | 312 | }; |
311 | 313 | ||
312 | sound { | 314 | sound { |
diff --git a/arch/arm/boot/dts/tegra-paz00.dts b/arch/arm/boot/dts/tegra-paz00.dts index cb366f0c6ffe..bfeb117d5aea 100644 --- a/arch/arm/boot/dts/tegra-paz00.dts +++ b/arch/arm/boot/dts/tegra-paz00.dts | |||
@@ -296,11 +296,13 @@ | |||
296 | cd-gpios = <&gpio 173 0>; /* gpio PV5 */ | 296 | cd-gpios = <&gpio 173 0>; /* gpio PV5 */ |
297 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ | 297 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ |
298 | power-gpios = <&gpio 169 0>; /* gpio PV1 */ | 298 | power-gpios = <&gpio 169 0>; /* gpio PV1 */ |
299 | bus-width = <4>; | ||
299 | }; | 300 | }; |
300 | 301 | ||
301 | sdhci@c8000600 { | 302 | sdhci@c8000600 { |
302 | status = "okay"; | 303 | status = "okay"; |
303 | support-8bit; | 304 | support-8bit; |
305 | bus-width = <8>; | ||
304 | }; | 306 | }; |
305 | 307 | ||
306 | gpio-keys { | 308 | gpio-keys { |
diff --git a/arch/arm/boot/dts/tegra-seaboard.dts b/arch/arm/boot/dts/tegra-seaboard.dts index 21b586e41e97..89cb7f2acd92 100644 --- a/arch/arm/boot/dts/tegra-seaboard.dts +++ b/arch/arm/boot/dts/tegra-seaboard.dts | |||
@@ -392,11 +392,13 @@ | |||
392 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ | 392 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ |
393 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ | 393 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ |
394 | power-gpios = <&gpio 70 0>; /* gpio PI6 */ | 394 | power-gpios = <&gpio 70 0>; /* gpio PI6 */ |
395 | bus-width = <4>; | ||
395 | }; | 396 | }; |
396 | 397 | ||
397 | sdhci@c8000600 { | 398 | sdhci@c8000600 { |
398 | status = "okay"; | 399 | status = "okay"; |
399 | support-8bit; | 400 | support-8bit; |
401 | bus-width = <8>; | ||
400 | }; | 402 | }; |
401 | 403 | ||
402 | gpio-keys { | 404 | gpio-keys { |
diff --git a/arch/arm/boot/dts/tegra-trimslice.dts b/arch/arm/boot/dts/tegra-trimslice.dts index 6fc52afa9431..9de5636023f6 100644 --- a/arch/arm/boot/dts/tegra-trimslice.dts +++ b/arch/arm/boot/dts/tegra-trimslice.dts | |||
@@ -288,12 +288,14 @@ | |||
288 | 288 | ||
289 | sdhci@c8000000 { | 289 | sdhci@c8000000 { |
290 | status = "okay"; | 290 | status = "okay"; |
291 | bus-width = <4>; | ||
291 | }; | 292 | }; |
292 | 293 | ||
293 | sdhci@c8000600 { | 294 | sdhci@c8000600 { |
294 | status = "okay"; | 295 | status = "okay"; |
295 | cd-gpios = <&gpio 121 0>; /* gpio PP1 */ | 296 | cd-gpios = <&gpio 121 0>; /* gpio PP1 */ |
296 | wp-gpios = <&gpio 122 0>; /* gpio PP2 */ | 297 | wp-gpios = <&gpio 122 0>; /* gpio PP2 */ |
298 | bus-width = <4>; | ||
297 | }; | 299 | }; |
298 | 300 | ||
299 | sound { | 301 | sound { |
diff --git a/arch/arm/boot/dts/tegra-ventana.dts b/arch/arm/boot/dts/tegra-ventana.dts index 15d8fdbe21f2..445343b0fbdd 100644 --- a/arch/arm/boot/dts/tegra-ventana.dts +++ b/arch/arm/boot/dts/tegra-ventana.dts | |||
@@ -309,11 +309,13 @@ | |||
309 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ | 309 | cd-gpios = <&gpio 69 0>; /* gpio PI5 */ |
310 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ | 310 | wp-gpios = <&gpio 57 0>; /* gpio PH1 */ |
311 | power-gpios = <&gpio 70 0>; /* gpio PI6 */ | 311 | power-gpios = <&gpio 70 0>; /* gpio PI6 */ |
312 | bus-width = <4>; | ||
312 | }; | 313 | }; |
313 | 314 | ||
314 | sdhci@c8000600 { | 315 | sdhci@c8000600 { |
315 | status = "okay"; | 316 | status = "okay"; |
316 | support-8bit; | 317 | support-8bit; |
318 | bus-width = <8>; | ||
317 | }; | 319 | }; |
318 | 320 | ||
319 | sound { | 321 | sound { |
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 |
98 | static struct twl4030_platform_data beagle_twldata = { | ||
99 | .irq_base = TWL4030_IRQ_BASE, | ||
100 | .irq_end = TWL4030_IRQ_END, | ||
101 | }; | ||
102 | |||
103 | static void __init omap3_i2c_init(void) | ||
104 | { | ||
105 | omap3_pmic_init("twl4030", &beagle_twldata); | ||
106 | } | ||
107 | |||
108 | static void __init omap3_init(void) | ||
109 | { | ||
110 | omap3_i2c_init(); | ||
111 | omap_generic_init(); | ||
112 | } | ||
113 | |||
114 | static const char *omap3_boards_compat[] __initdata = { | 97 | static 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 |
133 | static struct twl4030_platform_data sdp4430_twldata = { | ||
134 | .irq_base = TWL6030_IRQ_BASE, | ||
135 | .irq_end = TWL6030_IRQ_END, | ||
136 | }; | ||
137 | |||
138 | static void __init omap4_i2c_init(void) | ||
139 | { | ||
140 | omap4_pmic_init("twl6030", &sdp4430_twldata, NULL, 0); | ||
141 | } | ||
142 | |||
143 | static void __init omap4_init(void) | ||
144 | { | ||
145 | omap4_i2c_init(); | ||
146 | omap_generic_init(); | ||
147 | } | ||
148 | |||
149 | static const char *omap4_boards_compat[] __initdata = { | 116 | static 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 | */ |
147 | static int __init omap2_gpio_init(void) | 148 | static 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 | } |
152 | postcore_initcall(omap2_gpio_init); | 156 | postcore_initcall(omap2_gpio_init); |
diff --git a/arch/powerpc/boot/dts/mpc8569mds.dts b/arch/powerpc/boot/dts/mpc8569mds.dts index 7e283c891b7f..fe0d60935e9b 100644 --- a/arch/powerpc/boot/dts/mpc8569mds.dts +++ b/arch/powerpc/boot/dts/mpc8569mds.dts | |||
@@ -119,6 +119,7 @@ | |||
119 | sdhc@2e000 { | 119 | sdhc@2e000 { |
120 | status = "disabled"; | 120 | status = "disabled"; |
121 | sdhci,1-bit-only; | 121 | sdhci,1-bit-only; |
122 | bus-width = <1>; | ||
122 | }; | 123 | }; |
123 | 124 | ||
124 | par_io@e0100 { | 125 | par_io@e0100 { |
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 56d4499d4388..33e81c24e140 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c | |||
@@ -1766,7 +1766,7 @@ static struct omap_mmc_platform_data *of_get_hsmmc_pdata(struct device *dev) | |||
1766 | pdata->slots[0].nonremovable = true; | 1766 | pdata->slots[0].nonremovable = true; |
1767 | pdata->slots[0].no_regulator_off_init = true; | 1767 | pdata->slots[0].no_regulator_off_init = true; |
1768 | } | 1768 | } |
1769 | of_property_read_u32(np, "ti,bus-width", &bus_width); | 1769 | of_property_read_u32(np, "bus-width", &bus_width); |
1770 | if (bus_width == 4) | 1770 | if (bus_width == 4) |
1771 | pdata->slots[0].caps |= MMC_CAP_4_BIT_DATA; | 1771 | pdata->slots[0].caps |= MMC_CAP_4_BIT_DATA; |
1772 | else if (bus_width == 8) | 1772 | else if (bus_width == 8) |
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c index 6b0e3f33ede3..ebbe984e5d00 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c | |||
@@ -407,7 +407,7 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev, | |||
407 | if (!np) | 407 | if (!np) |
408 | return -ENODEV; | 408 | return -ENODEV; |
409 | 409 | ||
410 | if (of_get_property(np, "fsl,card-wired", NULL)) | 410 | if (of_get_property(np, "non-removable", NULL)) |
411 | boarddata->cd_type = ESDHC_CD_PERMANENT; | 411 | boarddata->cd_type = ESDHC_CD_PERMANENT; |
412 | 412 | ||
413 | if (of_get_property(np, "fsl,cd-controller", NULL)) | 413 | if (of_get_property(np, "fsl,cd-controller", NULL)) |
diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c index c5c2a48bdd94..d9a4ef4f1ed0 100644 --- a/drivers/mmc/host/sdhci-pltfm.c +++ b/drivers/mmc/host/sdhci-pltfm.c | |||
@@ -42,7 +42,8 @@ static struct sdhci_ops sdhci_pltfm_ops = { | |||
42 | #ifdef CONFIG_OF | 42 | #ifdef CONFIG_OF |
43 | static bool sdhci_of_wp_inverted(struct device_node *np) | 43 | static bool sdhci_of_wp_inverted(struct device_node *np) |
44 | { | 44 | { |
45 | if (of_get_property(np, "sdhci,wp-inverted", NULL)) | 45 | if (of_get_property(np, "sdhci,wp-inverted", NULL) || |
46 | of_get_property(np, "wp-inverted", NULL)) | ||
46 | return true; | 47 | return true; |
47 | 48 | ||
48 | /* Old device trees don't have the wp-inverted property. */ | 49 | /* Old device trees don't have the wp-inverted property. */ |
@@ -59,13 +60,16 @@ void sdhci_get_of_property(struct platform_device *pdev) | |||
59 | struct sdhci_host *host = platform_get_drvdata(pdev); | 60 | struct sdhci_host *host = platform_get_drvdata(pdev); |
60 | struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); | 61 | struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); |
61 | const __be32 *clk; | 62 | const __be32 *clk; |
63 | u32 bus_width; | ||
62 | int size; | 64 | int size; |
63 | 65 | ||
64 | if (of_device_is_available(np)) { | 66 | if (of_device_is_available(np)) { |
65 | if (of_get_property(np, "sdhci,auto-cmd12", NULL)) | 67 | if (of_get_property(np, "sdhci,auto-cmd12", NULL)) |
66 | host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12; | 68 | host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12; |
67 | 69 | ||
68 | if (of_get_property(np, "sdhci,1-bit-only", NULL)) | 70 | if (of_get_property(np, "sdhci,1-bit-only", NULL) || |
71 | (of_property_read_u32(np, "bus-width", &bus_width) == 0 && | ||
72 | bus_width == 1)) | ||
69 | host->quirks |= SDHCI_QUIRK_FORCE_1_BIT_DATA; | 73 | host->quirks |= SDHCI_QUIRK_FORCE_1_BIT_DATA; |
70 | 74 | ||
71 | if (sdhci_of_wp_inverted(np)) | 75 | if (sdhci_of_wp_inverted(np)) |