diff options
author | Olof Johansson <olof@lixom.net> | 2017-10-04 13:30:39 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2017-10-04 13:30:39 -0400 |
commit | eab5c00201f3acaea0cbb00cdf0bb2f97b67f2c5 (patch) | |
tree | dedb47d837f88905a7aed0c482a2ed0ea6c954ea | |
parent | 7ea696af44c47af742977e86222c47254f152502 (diff) | |
parent | 485a308f05d843034b6e82f688704c44888aecde (diff) |
Merge tag 'amlogic-dt64-3' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into fixes
Amlogic 64-bit DT updates for v4.14 (round 3)
- updates for new MMC driver features/fixes
- support high-speed modes
* tag 'amlogic-dt64-3' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
ARM64: dts: meson-gxbb: nanopi-k2: enable sdr104 mode
ARM64: dts: meson-gxbb: nanopi-k2: enable sdcard UHS modes
ARM64: dts: meson-gxbb: p20x: enable sdcard UHS modes
ARM64: dts: meson-gxl: libretech-cc: enable high speed modes
ARM64: dts: meson-gxl: libretech-cc: add card regulator settle times
ARM64: dts: meson-gxbb: nanopi-k2: add card regulator settle times
ARM64: dts: meson: add mmc clk gate pins
ARM64: dts: meson: remove cap-sd-highspeed from emmc nodes
ARM64: dts: meson-gx: Use correct mmc clock source 0
Signed-off-by: Olof Johansson <olof@lixom.net>
14 files changed, 150 insertions, 49 deletions
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi index c89010e56488..4157987f4a3d 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi | |||
@@ -168,7 +168,8 @@ | |||
168 | &sd_emmc_a { | 168 | &sd_emmc_a { |
169 | status = "okay"; | 169 | status = "okay"; |
170 | pinctrl-0 = <&sdio_pins>; | 170 | pinctrl-0 = <&sdio_pins>; |
171 | pinctrl-names = "default"; | 171 | pinctrl-1 = <&sdio_clk_gate_pins>; |
172 | pinctrl-names = "default", "clk-gate"; | ||
172 | #address-cells = <1>; | 173 | #address-cells = <1>; |
173 | #size-cells = <0>; | 174 | #size-cells = <0>; |
174 | 175 | ||
@@ -194,7 +195,8 @@ | |||
194 | &sd_emmc_b { | 195 | &sd_emmc_b { |
195 | status = "okay"; | 196 | status = "okay"; |
196 | pinctrl-0 = <&sdcard_pins>; | 197 | pinctrl-0 = <&sdcard_pins>; |
197 | pinctrl-names = "default"; | 198 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
199 | pinctrl-names = "default", "clk-gate"; | ||
198 | 200 | ||
199 | bus-width = <4>; | 201 | bus-width = <4>; |
200 | cap-sd-highspeed; | 202 | cap-sd-highspeed; |
@@ -212,10 +214,10 @@ | |||
212 | &sd_emmc_c { | 214 | &sd_emmc_c { |
213 | status = "okay"; | 215 | status = "okay"; |
214 | pinctrl-0 = <&emmc_pins>; | 216 | pinctrl-0 = <&emmc_pins>; |
215 | pinctrl-names = "default"; | 217 | pinctrl-1 = <&emmc_clk_gate_pins>; |
218 | pinctrl-names = "default", "clk-gate"; | ||
216 | 219 | ||
217 | bus-width = <8>; | 220 | bus-width = <8>; |
218 | cap-sd-highspeed; | ||
219 | cap-mmc-highspeed; | 221 | cap-mmc-highspeed; |
220 | max-frequency = <200000000>; | 222 | max-frequency = <200000000>; |
221 | non-removable; | 223 | non-removable; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts index 9697a7a79464..4b17a76959b2 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts | |||
@@ -107,6 +107,9 @@ | |||
107 | 107 | ||
108 | states = <3300000 0>, | 108 | states = <3300000 0>, |
109 | <1800000 1>; | 109 | <1800000 1>; |
110 | |||
111 | regulator-settling-time-up-us = <100>; | ||
112 | regulator-settling-time-down-us = <5000>; | ||
110 | }; | 113 | }; |
111 | 114 | ||
112 | wifi_32k: wifi-32k { | 115 | wifi_32k: wifi-32k { |
@@ -250,7 +253,8 @@ | |||
250 | &sd_emmc_a { | 253 | &sd_emmc_a { |
251 | status = "okay"; | 254 | status = "okay"; |
252 | pinctrl-0 = <&sdio_pins>, <&sdio_irq_pins>; | 255 | pinctrl-0 = <&sdio_pins>, <&sdio_irq_pins>; |
253 | pinctrl-names = "default"; | 256 | pinctrl-1 = <&sdio_clk_gate_pins>; |
257 | pinctrl-names = "default", "clk-gate"; | ||
254 | #address-cells = <1>; | 258 | #address-cells = <1>; |
255 | #size-cells = <0>; | 259 | #size-cells = <0>; |
256 | 260 | ||
@@ -276,11 +280,16 @@ | |||
276 | &sd_emmc_b { | 280 | &sd_emmc_b { |
277 | status = "okay"; | 281 | status = "okay"; |
278 | pinctrl-0 = <&sdcard_pins>; | 282 | pinctrl-0 = <&sdcard_pins>; |
279 | pinctrl-names = "default"; | 283 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
284 | pinctrl-names = "default", "clk-gate"; | ||
280 | 285 | ||
281 | bus-width = <4>; | 286 | bus-width = <4>; |
282 | cap-sd-highspeed; | 287 | cap-sd-highspeed; |
283 | max-frequency = <100000000>; | 288 | sd-uhs-sdr12; |
289 | sd-uhs-sdr25; | ||
290 | sd-uhs-sdr50; | ||
291 | sd-uhs-sdr104; | ||
292 | max-frequency = <200000000>; | ||
284 | disable-wp; | 293 | disable-wp; |
285 | 294 | ||
286 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; | 295 | cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>; |
@@ -294,10 +303,10 @@ | |||
294 | &sd_emmc_c { | 303 | &sd_emmc_c { |
295 | status = "disabled"; | 304 | status = "disabled"; |
296 | pinctrl-0 = <&emmc_pins>; | 305 | pinctrl-0 = <&emmc_pins>; |
297 | pinctrl-names = "default"; | 306 | pinctrl-1 = <&emmc_clk_gate_pins>; |
307 | pinctrl-names = "default", "clk-gate"; | ||
298 | 308 | ||
299 | bus-width = <8>; | 309 | bus-width = <8>; |
300 | cap-sd-highspeed; | ||
301 | max-frequency = <200000000>; | 310 | max-frequency = <200000000>; |
302 | non-removable; | 311 | non-removable; |
303 | disable-wp; | 312 | disable-wp; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts index 9c59c3c6d1b6..38dfdde5c147 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | |||
@@ -51,7 +51,7 @@ | |||
51 | / { | 51 | / { |
52 | compatible = "nexbox,a95x", "amlogic,meson-gxbb"; | 52 | compatible = "nexbox,a95x", "amlogic,meson-gxbb"; |
53 | model = "NEXBOX A95X"; | 53 | model = "NEXBOX A95X"; |
54 | 54 | ||
55 | aliases { | 55 | aliases { |
56 | serial0 = &uart_AO; | 56 | serial0 = &uart_AO; |
57 | }; | 57 | }; |
@@ -232,7 +232,8 @@ | |||
232 | &sd_emmc_a { | 232 | &sd_emmc_a { |
233 | status = "okay"; | 233 | status = "okay"; |
234 | pinctrl-0 = <&sdio_pins>; | 234 | pinctrl-0 = <&sdio_pins>; |
235 | pinctrl-names = "default"; | 235 | pinctrl-1 = <&sdio_clk_gate_pins>; |
236 | pinctrl-names = "default", "clk-gate"; | ||
236 | #address-cells = <1>; | 237 | #address-cells = <1>; |
237 | #size-cells = <0>; | 238 | #size-cells = <0>; |
238 | 239 | ||
@@ -253,7 +254,8 @@ | |||
253 | &sd_emmc_b { | 254 | &sd_emmc_b { |
254 | status = "okay"; | 255 | status = "okay"; |
255 | pinctrl-0 = <&sdcard_pins>; | 256 | pinctrl-0 = <&sdcard_pins>; |
256 | pinctrl-names = "default"; | 257 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
258 | pinctrl-names = "default", "clk-gate"; | ||
257 | 259 | ||
258 | bus-width = <4>; | 260 | bus-width = <4>; |
259 | cap-sd-highspeed; | 261 | cap-sd-highspeed; |
@@ -271,10 +273,10 @@ | |||
271 | &sd_emmc_c { | 273 | &sd_emmc_c { |
272 | status = "okay"; | 274 | status = "okay"; |
273 | pinctrl-0 = <&emmc_pins>; | 275 | pinctrl-0 = <&emmc_pins>; |
274 | pinctrl-names = "default"; | 276 | pinctrl-1 = <&emmc_clk_gate_pins>; |
277 | pinctrl-names = "default", "clk-gate"; | ||
275 | 278 | ||
276 | bus-width = <8>; | 279 | bus-width = <8>; |
277 | cap-sd-highspeed; | ||
278 | cap-mmc-highspeed; | 280 | cap-mmc-highspeed; |
279 | max-frequency = <200000000>; | 281 | max-frequency = <200000000>; |
280 | non-removable; | 282 | non-removable; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts index d147c853ab05..1ffa1c238a72 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | |||
@@ -50,7 +50,7 @@ | |||
50 | / { | 50 | / { |
51 | compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb"; | 51 | compatible = "hardkernel,odroid-c2", "amlogic,meson-gxbb"; |
52 | model = "Hardkernel ODROID-C2"; | 52 | model = "Hardkernel ODROID-C2"; |
53 | 53 | ||
54 | aliases { | 54 | aliases { |
55 | serial0 = &uart_AO; | 55 | serial0 = &uart_AO; |
56 | }; | 56 | }; |
@@ -253,7 +253,8 @@ | |||
253 | &sd_emmc_b { | 253 | &sd_emmc_b { |
254 | status = "okay"; | 254 | status = "okay"; |
255 | pinctrl-0 = <&sdcard_pins>; | 255 | pinctrl-0 = <&sdcard_pins>; |
256 | pinctrl-names = "default"; | 256 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
257 | pinctrl-names = "default", "clk-gate"; | ||
257 | 258 | ||
258 | bus-width = <4>; | 259 | bus-width = <4>; |
259 | cap-sd-highspeed; | 260 | cap-sd-highspeed; |
@@ -271,10 +272,10 @@ | |||
271 | &sd_emmc_c { | 272 | &sd_emmc_c { |
272 | status = "okay"; | 273 | status = "okay"; |
273 | pinctrl-0 = <&emmc_pins>; | 274 | pinctrl-0 = <&emmc_pins>; |
274 | pinctrl-names = "default"; | 275 | pinctrl-1 = <&emmc_clk_gate_pins>; |
276 | pinctrl-names = "default", "clk-gate"; | ||
275 | 277 | ||
276 | bus-width = <8>; | 278 | bus-width = <8>; |
277 | cap-sd-highspeed; | ||
278 | max-frequency = <200000000>; | 279 | max-frequency = <200000000>; |
279 | non-removable; | 280 | non-removable; |
280 | disable-wp; | 281 | disable-wp; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi index 81ffc689a5bf..23c08c3afd0a 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi | |||
@@ -194,7 +194,8 @@ | |||
194 | &sd_emmc_a { | 194 | &sd_emmc_a { |
195 | status = "okay"; | 195 | status = "okay"; |
196 | pinctrl-0 = <&sdio_pins>; | 196 | pinctrl-0 = <&sdio_pins>; |
197 | pinctrl-names = "default"; | 197 | pinctrl-1 = <&sdio_clk_gate_pins>; |
198 | pinctrl-names = "default", "clk-gate"; | ||
198 | #address-cells = <1>; | 199 | #address-cells = <1>; |
199 | #size-cells = <0>; | 200 | #size-cells = <0>; |
200 | 201 | ||
@@ -220,10 +221,14 @@ | |||
220 | &sd_emmc_b { | 221 | &sd_emmc_b { |
221 | status = "okay"; | 222 | status = "okay"; |
222 | pinctrl-0 = <&sdcard_pins>; | 223 | pinctrl-0 = <&sdcard_pins>; |
223 | pinctrl-names = "default"; | 224 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
225 | pinctrl-names = "default", "clk-gate"; | ||
224 | 226 | ||
225 | bus-width = <4>; | 227 | bus-width = <4>; |
226 | cap-sd-highspeed; | 228 | cap-sd-highspeed; |
229 | sd-uhs-sdr12; | ||
230 | sd-uhs-sdr25; | ||
231 | sd-uhs-sdr50; | ||
227 | max-frequency = <100000000>; | 232 | max-frequency = <100000000>; |
228 | disable-wp; | 233 | disable-wp; |
229 | 234 | ||
@@ -238,10 +243,10 @@ | |||
238 | &sd_emmc_c { | 243 | &sd_emmc_c { |
239 | status = "okay"; | 244 | status = "okay"; |
240 | pinctrl-0 = <&emmc_pins>; | 245 | pinctrl-0 = <&emmc_pins>; |
241 | pinctrl-names = "default"; | 246 | pinctrl-1 = <&emmc_clk_gate_pins>; |
247 | pinctrl-names = "default", "clk-gate"; | ||
242 | 248 | ||
243 | bus-width = <8>; | 249 | bus-width = <8>; |
244 | cap-sd-highspeed; | ||
245 | cap-mmc-highspeed; | 250 | cap-mmc-highspeed; |
246 | max-frequency = <200000000>; | 251 | max-frequency = <200000000>; |
247 | non-removable; | 252 | non-removable; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi index 346753fb6324..f2bc6dea1fc6 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi | |||
@@ -155,7 +155,8 @@ | |||
155 | &sd_emmc_a { | 155 | &sd_emmc_a { |
156 | status = "okay"; | 156 | status = "okay"; |
157 | pinctrl-0 = <&sdio_pins &sdio_irq_pins>; | 157 | pinctrl-0 = <&sdio_pins &sdio_irq_pins>; |
158 | pinctrl-names = "default"; | 158 | pinctrl-1 = <&sdio_clk_gate_pins>; |
159 | pinctrl-names = "default", "clk-gate"; | ||
159 | #address-cells = <1>; | 160 | #address-cells = <1>; |
160 | #size-cells = <0>; | 161 | #size-cells = <0>; |
161 | 162 | ||
@@ -181,7 +182,8 @@ | |||
181 | &sd_emmc_b { | 182 | &sd_emmc_b { |
182 | status = "okay"; | 183 | status = "okay"; |
183 | pinctrl-0 = <&sdcard_pins>; | 184 | pinctrl-0 = <&sdcard_pins>; |
184 | pinctrl-names = "default"; | 185 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
186 | pinctrl-names = "default", "clk-gate"; | ||
185 | 187 | ||
186 | bus-width = <4>; | 188 | bus-width = <4>; |
187 | cap-sd-highspeed; | 189 | cap-sd-highspeed; |
@@ -198,10 +200,10 @@ | |||
198 | &sd_emmc_c { | 200 | &sd_emmc_c { |
199 | status = "okay"; | 201 | status = "okay"; |
200 | pinctrl-0 = <&emmc_pins>; | 202 | pinctrl-0 = <&emmc_pins>; |
201 | pinctrl-names = "default"; | 203 | pinctrl-1 = <&emmc_clk_gate_pins>; |
204 | pinctrl-names = "default", "clk-gate"; | ||
202 | 205 | ||
203 | bus-width = <8>; | 206 | bus-width = <8>; |
204 | cap-sd-highspeed; | ||
205 | cap-mmc-highspeed; | 207 | cap-mmc-highspeed; |
206 | max-frequency = <200000000>; | 208 | max-frequency = <200000000>; |
207 | non-removable; | 209 | non-removable; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi index 52f1687e7a09..af834cdbba79 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | |||
@@ -392,6 +392,17 @@ | |||
392 | }; | 392 | }; |
393 | }; | 393 | }; |
394 | 394 | ||
395 | emmc_clk_gate_pins: emmc_clk_gate { | ||
396 | mux { | ||
397 | groups = "BOOT_8"; | ||
398 | function = "gpio_periphs"; | ||
399 | }; | ||
400 | cfg-pull-down { | ||
401 | pins = "BOOT_8"; | ||
402 | bias-pull-down; | ||
403 | }; | ||
404 | }; | ||
405 | |||
395 | nor_pins: nor { | 406 | nor_pins: nor { |
396 | mux { | 407 | mux { |
397 | groups = "nor_d", | 408 | groups = "nor_d", |
@@ -430,6 +441,17 @@ | |||
430 | }; | 441 | }; |
431 | }; | 442 | }; |
432 | 443 | ||
444 | sdcard_clk_gate_pins: sdcard_clk_gate { | ||
445 | mux { | ||
446 | groups = "CARD_2"; | ||
447 | function = "gpio_periphs"; | ||
448 | }; | ||
449 | cfg-pull-down { | ||
450 | pins = "CARD_2"; | ||
451 | bias-pull-down; | ||
452 | }; | ||
453 | }; | ||
454 | |||
433 | sdio_pins: sdio { | 455 | sdio_pins: sdio { |
434 | mux { | 456 | mux { |
435 | groups = "sdio_d0", | 457 | groups = "sdio_d0", |
@@ -442,6 +464,17 @@ | |||
442 | }; | 464 | }; |
443 | }; | 465 | }; |
444 | 466 | ||
467 | sdio_clk_gate_pins: sdio_clk_gate { | ||
468 | mux { | ||
469 | groups = "GPIOX_4"; | ||
470 | function = "gpio_periphs"; | ||
471 | }; | ||
472 | cfg-pull-down { | ||
473 | pins = "GPIOX_4"; | ||
474 | bias-pull-down; | ||
475 | }; | ||
476 | }; | ||
477 | |||
445 | sdio_irq_pins: sdio_irq { | 478 | sdio_irq_pins: sdio_irq { |
446 | mux { | 479 | mux { |
447 | groups = "sdio_irq"; | 480 | groups = "sdio_irq"; |
@@ -661,21 +694,21 @@ | |||
661 | 694 | ||
662 | &sd_emmc_a { | 695 | &sd_emmc_a { |
663 | clocks = <&clkc CLKID_SD_EMMC_A>, | 696 | clocks = <&clkc CLKID_SD_EMMC_A>, |
664 | <&xtal>, | 697 | <&clkc CLKID_SD_EMMC_A_CLK0>, |
665 | <&clkc CLKID_FCLK_DIV2>; | 698 | <&clkc CLKID_FCLK_DIV2>; |
666 | clock-names = "core", "clkin0", "clkin1"; | 699 | clock-names = "core", "clkin0", "clkin1"; |
667 | }; | 700 | }; |
668 | 701 | ||
669 | &sd_emmc_b { | 702 | &sd_emmc_b { |
670 | clocks = <&clkc CLKID_SD_EMMC_B>, | 703 | clocks = <&clkc CLKID_SD_EMMC_B>, |
671 | <&xtal>, | 704 | <&clkc CLKID_SD_EMMC_B_CLK0>, |
672 | <&clkc CLKID_FCLK_DIV2>; | 705 | <&clkc CLKID_FCLK_DIV2>; |
673 | clock-names = "core", "clkin0", "clkin1"; | 706 | clock-names = "core", "clkin0", "clkin1"; |
674 | }; | 707 | }; |
675 | 708 | ||
676 | &sd_emmc_c { | 709 | &sd_emmc_c { |
677 | clocks = <&clkc CLKID_SD_EMMC_C>, | 710 | clocks = <&clkc CLKID_SD_EMMC_C>, |
678 | <&xtal>, | 711 | <&clkc CLKID_SD_EMMC_C_CLK0>, |
679 | <&clkc CLKID_FCLK_DIV2>; | 712 | <&clkc CLKID_FCLK_DIV2>; |
680 | clock-names = "core", "clkin0", "clkin1"; | 713 | clock-names = "core", "clkin0", "clkin1"; |
681 | }; | 714 | }; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts index 2a5804ce7f4b..977b4240f3c1 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-hwacom-amazetv.dts | |||
@@ -123,7 +123,8 @@ | |||
123 | &sd_emmc_b { | 123 | &sd_emmc_b { |
124 | status = "okay"; | 124 | status = "okay"; |
125 | pinctrl-0 = <&sdcard_pins>; | 125 | pinctrl-0 = <&sdcard_pins>; |
126 | pinctrl-names = "default"; | 126 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
127 | pinctrl-names = "default", "clk-gate"; | ||
127 | 128 | ||
128 | bus-width = <4>; | 129 | bus-width = <4>; |
129 | cap-sd-highspeed; | 130 | cap-sd-highspeed; |
@@ -141,10 +142,10 @@ | |||
141 | &sd_emmc_c { | 142 | &sd_emmc_c { |
142 | status = "okay"; | 143 | status = "okay"; |
143 | pinctrl-0 = <&emmc_pins>; | 144 | pinctrl-0 = <&emmc_pins>; |
144 | pinctrl-names = "default"; | 145 | pinctrl-1 = <&emmc_clk_gate_pins>; |
146 | pinctrl-names = "default", "clk-gate"; | ||
145 | 147 | ||
146 | bus-width = <8>; | 148 | bus-width = <8>; |
147 | cap-sd-highspeed; | ||
148 | cap-mmc-highspeed; | 149 | cap-mmc-highspeed; |
149 | max-frequency = <100000000>; | 150 | max-frequency = <100000000>; |
150 | non-removable; | 151 | non-removable; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts index 69ca14ac10fa..64c54c92e214 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts | |||
@@ -91,6 +91,9 @@ | |||
91 | 91 | ||
92 | states = <3300000 0>, | 92 | states = <3300000 0>, |
93 | <1800000 1>; | 93 | <1800000 1>; |
94 | |||
95 | regulator-settling-time-up-us = <200>; | ||
96 | regulator-settling-time-down-us = <50000>; | ||
94 | }; | 97 | }; |
95 | 98 | ||
96 | vddio_boot: regulator-vddio_boot { | 99 | vddio_boot: regulator-vddio_boot { |
@@ -197,10 +200,14 @@ | |||
197 | &sd_emmc_b { | 200 | &sd_emmc_b { |
198 | status = "okay"; | 201 | status = "okay"; |
199 | pinctrl-0 = <&sdcard_pins>; | 202 | pinctrl-0 = <&sdcard_pins>; |
200 | pinctrl-names = "default"; | 203 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
204 | pinctrl-names = "default", "clk-gate"; | ||
201 | 205 | ||
202 | bus-width = <4>; | 206 | bus-width = <4>; |
203 | cap-sd-highspeed; | 207 | cap-sd-highspeed; |
208 | sd-uhs-sdr12; | ||
209 | sd-uhs-sdr25; | ||
210 | sd-uhs-sdr50; | ||
204 | max-frequency = <100000000>; | 211 | max-frequency = <100000000>; |
205 | disable-wp; | 212 | disable-wp; |
206 | 213 | ||
@@ -215,10 +222,12 @@ | |||
215 | &sd_emmc_c { | 222 | &sd_emmc_c { |
216 | status = "okay"; | 223 | status = "okay"; |
217 | pinctrl-0 = <&emmc_pins>; | 224 | pinctrl-0 = <&emmc_pins>; |
218 | pinctrl-names = "default"; | 225 | pinctrl-1 = <&emmc_clk_gate_pins>; |
226 | pinctrl-names = "default", "clk-gate"; | ||
219 | 227 | ||
220 | bus-width = <8>; | 228 | bus-width = <8>; |
221 | cap-mmc-highspeed; | 229 | cap-mmc-highspeed; |
230 | mmc-ddr-3_3v; | ||
222 | max-frequency = <50000000>; | 231 | max-frequency = <50000000>; |
223 | non-removable; | 232 | non-removable; |
224 | disable-wp; | 233 | disable-wp; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts index 4c2ac7650fcd..1b8f32867aa1 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts | |||
@@ -189,7 +189,8 @@ | |||
189 | &sd_emmc_a { | 189 | &sd_emmc_a { |
190 | status = "okay"; | 190 | status = "okay"; |
191 | pinctrl-0 = <&sdio_pins>; | 191 | pinctrl-0 = <&sdio_pins>; |
192 | pinctrl-names = "default"; | 192 | pinctrl-1 = <&sdio_clk_gate_pins>; |
193 | pinctrl-names = "default", "clk-gate"; | ||
193 | #address-cells = <1>; | 194 | #address-cells = <1>; |
194 | #size-cells = <0>; | 195 | #size-cells = <0>; |
195 | 196 | ||
@@ -210,7 +211,8 @@ | |||
210 | &sd_emmc_b { | 211 | &sd_emmc_b { |
211 | status = "okay"; | 212 | status = "okay"; |
212 | pinctrl-0 = <&sdcard_pins>; | 213 | pinctrl-0 = <&sdcard_pins>; |
213 | pinctrl-names = "default"; | 214 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
215 | pinctrl-names = "default", "clk-gate"; | ||
214 | 216 | ||
215 | bus-width = <4>; | 217 | bus-width = <4>; |
216 | cap-sd-highspeed; | 218 | cap-sd-highspeed; |
@@ -228,10 +230,10 @@ | |||
228 | &sd_emmc_c { | 230 | &sd_emmc_c { |
229 | status = "okay"; | 231 | status = "okay"; |
230 | pinctrl-0 = <&emmc_pins>; | 232 | pinctrl-0 = <&emmc_pins>; |
231 | pinctrl-names = "default"; | 233 | pinctrl-1 = <&emmc_clk_gate_pins>; |
234 | pinctrl-names = "default", "clk-gate"; | ||
232 | 235 | ||
233 | bus-width = <8>; | 236 | bus-width = <8>; |
234 | cap-sd-highspeed; | ||
235 | cap-mmc-highspeed; | 237 | cap-mmc-highspeed; |
236 | max-frequency = <200000000>; | 238 | max-frequency = <200000000>; |
237 | non-removable; | 239 | non-removable; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi index f3eea8e89d12..129af9068814 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi | |||
@@ -95,7 +95,8 @@ | |||
95 | &sd_emmc_a { | 95 | &sd_emmc_a { |
96 | status = "okay"; | 96 | status = "okay"; |
97 | pinctrl-0 = <&sdio_pins>; | 97 | pinctrl-0 = <&sdio_pins>; |
98 | pinctrl-names = "default"; | 98 | pinctrl-1 = <&sdio_clk_gate_pins>; |
99 | pinctrl-names = "default", "clk-gate"; | ||
99 | #address-cells = <1>; | 100 | #address-cells = <1>; |
100 | #size-cells = <0>; | 101 | #size-cells = <0>; |
101 | 102 | ||
@@ -116,7 +117,8 @@ | |||
116 | &sd_emmc_b { | 117 | &sd_emmc_b { |
117 | status = "okay"; | 118 | status = "okay"; |
118 | pinctrl-0 = <&sdcard_pins>; | 119 | pinctrl-0 = <&sdcard_pins>; |
119 | pinctrl-names = "default"; | 120 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
121 | pinctrl-names = "default", "clk-gate"; | ||
120 | 122 | ||
121 | bus-width = <4>; | 123 | bus-width = <4>; |
122 | cap-sd-highspeed; | 124 | cap-sd-highspeed; |
@@ -134,10 +136,10 @@ | |||
134 | &sd_emmc_c { | 136 | &sd_emmc_c { |
135 | status = "okay"; | 137 | status = "okay"; |
136 | pinctrl-0 = <&emmc_pins>; | 138 | pinctrl-0 = <&emmc_pins>; |
137 | pinctrl-names = "default"; | 139 | pinctrl-1 = <&emmc_clk_gate_pins>; |
140 | pinctrl-names = "default", "clk-gate"; | ||
138 | 141 | ||
139 | bus-width = <8>; | 142 | bus-width = <8>; |
140 | cap-sd-highspeed; | ||
141 | cap-mmc-highspeed; | 143 | cap-mmc-highspeed; |
142 | max-frequency = <200000000>; | 144 | max-frequency = <200000000>; |
143 | non-removable; | 145 | non-removable; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi index d6876e64979e..d8dd3298b15c 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi | |||
@@ -281,6 +281,17 @@ | |||
281 | }; | 281 | }; |
282 | }; | 282 | }; |
283 | 283 | ||
284 | emmc_clk_gate_pins: emmc_clk_gate { | ||
285 | mux { | ||
286 | groups = "BOOT_8"; | ||
287 | function = "gpio_periphs"; | ||
288 | }; | ||
289 | cfg-pull-down { | ||
290 | pins = "BOOT_8"; | ||
291 | bias-pull-down; | ||
292 | }; | ||
293 | }; | ||
294 | |||
284 | nor_pins: nor { | 295 | nor_pins: nor { |
285 | mux { | 296 | mux { |
286 | groups = "nor_d", | 297 | groups = "nor_d", |
@@ -319,6 +330,17 @@ | |||
319 | }; | 330 | }; |
320 | }; | 331 | }; |
321 | 332 | ||
333 | sdcard_clk_gate_pins: sdcard_clk_gate { | ||
334 | mux { | ||
335 | groups = "CARD_2"; | ||
336 | function = "gpio_periphs"; | ||
337 | }; | ||
338 | cfg-pull-down { | ||
339 | pins = "CARD_2"; | ||
340 | bias-pull-down; | ||
341 | }; | ||
342 | }; | ||
343 | |||
322 | sdio_pins: sdio { | 344 | sdio_pins: sdio { |
323 | mux { | 345 | mux { |
324 | groups = "sdio_d0", | 346 | groups = "sdio_d0", |
@@ -331,6 +353,17 @@ | |||
331 | }; | 353 | }; |
332 | }; | 354 | }; |
333 | 355 | ||
356 | sdio_clk_gate_pins: sdio_clk_gate { | ||
357 | mux { | ||
358 | groups = "GPIOX_4"; | ||
359 | function = "gpio_periphs"; | ||
360 | }; | ||
361 | cfg-pull-down { | ||
362 | pins = "GPIOX_4"; | ||
363 | bias-pull-down; | ||
364 | }; | ||
365 | }; | ||
366 | |||
334 | sdio_irq_pins: sdio_irq { | 367 | sdio_irq_pins: sdio_irq { |
335 | mux { | 368 | mux { |
336 | groups = "sdio_irq"; | 369 | groups = "sdio_irq"; |
@@ -603,21 +636,21 @@ | |||
603 | 636 | ||
604 | &sd_emmc_a { | 637 | &sd_emmc_a { |
605 | clocks = <&clkc CLKID_SD_EMMC_A>, | 638 | clocks = <&clkc CLKID_SD_EMMC_A>, |
606 | <&xtal>, | 639 | <&clkc CLKID_SD_EMMC_A_CLK0>, |
607 | <&clkc CLKID_FCLK_DIV2>; | 640 | <&clkc CLKID_FCLK_DIV2>; |
608 | clock-names = "core", "clkin0", "clkin1"; | 641 | clock-names = "core", "clkin0", "clkin1"; |
609 | }; | 642 | }; |
610 | 643 | ||
611 | &sd_emmc_b { | 644 | &sd_emmc_b { |
612 | clocks = <&clkc CLKID_SD_EMMC_B>, | 645 | clocks = <&clkc CLKID_SD_EMMC_B>, |
613 | <&xtal>, | 646 | <&clkc CLKID_SD_EMMC_B_CLK0>, |
614 | <&clkc CLKID_FCLK_DIV2>; | 647 | <&clkc CLKID_FCLK_DIV2>; |
615 | clock-names = "core", "clkin0", "clkin1"; | 648 | clock-names = "core", "clkin0", "clkin1"; |
616 | }; | 649 | }; |
617 | 650 | ||
618 | &sd_emmc_c { | 651 | &sd_emmc_c { |
619 | clocks = <&clkc CLKID_SD_EMMC_C>, | 652 | clocks = <&clkc CLKID_SD_EMMC_C>, |
620 | <&xtal>, | 653 | <&clkc CLKID_SD_EMMC_C_CLK0>, |
621 | <&clkc CLKID_FCLK_DIV2>; | 654 | <&clkc CLKID_FCLK_DIV2>; |
622 | clock-names = "core", "clkin0", "clkin1"; | 655 | clock-names = "core", "clkin0", "clkin1"; |
623 | }; | 656 | }; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts index 9b10c5f4f8c0..22c697732f66 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts | |||
@@ -175,7 +175,8 @@ | |||
175 | &sd_emmc_b { | 175 | &sd_emmc_b { |
176 | status = "okay"; | 176 | status = "okay"; |
177 | pinctrl-0 = <&sdcard_pins>; | 177 | pinctrl-0 = <&sdcard_pins>; |
178 | pinctrl-names = "default"; | 178 | pinctrl-1 = <&sdcard_clk_gate_pins>; |
179 | pinctrl-names = "default", "clk-gate"; | ||
179 | 180 | ||
180 | bus-width = <4>; | 181 | bus-width = <4>; |
181 | cap-sd-highspeed; | 182 | cap-sd-highspeed; |
@@ -193,10 +194,10 @@ | |||
193 | &sd_emmc_c { | 194 | &sd_emmc_c { |
194 | status = "okay"; | 195 | status = "okay"; |
195 | pinctrl-0 = <&emmc_pins>; | 196 | pinctrl-0 = <&emmc_pins>; |
196 | pinctrl-names = "default"; | 197 | pinctrl-1 = <&emmc_clk_gate_pins>; |
198 | pinctrl-names = "default", "clk-gate"; | ||
197 | 199 | ||
198 | bus-width = <8>; | 200 | bus-width = <8>; |
199 | cap-sd-highspeed; | ||
200 | cap-mmc-highspeed; | 201 | cap-mmc-highspeed; |
201 | max-frequency = <200000000>; | 202 | max-frequency = <200000000>; |
202 | non-removable; | 203 | non-removable; |
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts index 08f1dd69b679..470f72bb863c 100644 --- a/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts +++ b/arch/arm64/boot/dts/amlogic/meson-gxm-rbox-pro.dts | |||
@@ -220,7 +220,6 @@ | |||
220 | pinctrl-names = "default"; | 220 | pinctrl-names = "default"; |
221 | 221 | ||
222 | bus-width = <8>; | 222 | bus-width = <8>; |
223 | cap-sd-highspeed; | ||
224 | cap-mmc-highspeed; | 223 | cap-mmc-highspeed; |
225 | max-frequency = <200000000>; | 224 | max-frequency = <200000000>; |
226 | non-removable; | 225 | non-removable; |