diff options
author | Igor Opaniuk <igor.opaniuk@toradex.com> | 2019-03-19 11:03:55 +0200 |
---|---|---|
committer | Igor Opaniuk <igor.opaniuk@toradex.com> | 2019-03-20 10:13:29 +0200 |
commit | 7ffa92d64cc7a6331faaae3e2507458461ab90f3 (patch) | |
tree | c7461904dcb3d4f2301852c45564e511c653da5b /arch/arm | |
parent | fb4357df1c9272811c80afce0964fc3af51181fe (diff) |
imx6qdl-colibri.dtsi: UHS-I support for v1.1a hw
Provide proper configuration for VGEN3, to make sure it's is always powered
which allows that rail to be automatically switched to 1.8 volts
for proper UHS-I operation. By default it's disabled.
With UHS-I enabled:
[ 104.153898] mmc1: new ultra high speed SDR104 SDHC card at address 59b4
[ 104.166202] mmcblk1: mmc1:59b4 USD00 15.0 GiB
[ 104.173923] mmcblk1: p1
root@colibri-imx6:~# hdparm -t /dev/mmcblk1
/dev/mmcblk1:
Timing buffered disk reads: 226 MB in 3.01 seconds = 75.01 MB/sec
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/boot/dts/imx6qdl-colibri.dtsi | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi index f667ac6d8a93..23770786ab77 100644 --- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi +++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi @@ -290,6 +290,13 @@ regulator-always-on; }; + vgen3_reg: vgen3 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + vgen4_reg: vgen4 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; @@ -791,6 +798,28 @@ MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17071 >; }; + + pinctrl_usdhc1_100mhz: usdhc1grp100mhz { + fsl,pins = < + MX6QDL_PAD_SD1_CMD__SD1_CMD 0x170b1 + MX6QDL_PAD_SD1_CLK__SD1_CLK 0x100b1 + MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170b1 + MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170b1 + MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170b1 + MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170b1 + >; + }; + + pinctrl_usdhc1_200mhz: usdhc1grp200mhz { + fsl,pins = < + MX6QDL_PAD_SD1_CMD__SD1_CMD 0x170f1 + MX6QDL_PAD_SD1_CLK__SD1_CLK 0x100f1 + MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170f1 + MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170f1 + MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170f1 + MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170f1 + >; + }; }; weim { @@ -1004,16 +1033,34 @@ /* MMC */ &usdhc1 { - label = "MMC1"; +/* + * The define SD_1_8 allows to use the SD interface at a higher speed mode + * if the card supports it. For this the signaling voltage is switched from + * 3.3V to 1.8V under the usdhc1's drivers control which is supported starting + * with hardware revision V1.1A. + */ +#ifdef SD_1_8 + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_mmc_cd>; + pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_mmc_cd>; + pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_mmc_cd>; + vqmmc-supply = <&vgen3_reg>; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + sd-uhs-sdr104; +#else pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_mmc_cd>; + no-1-8-v; +#endif + label = "MMC1"; cd-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; disable-wp; enable-sdio-wakeup; keep-power-in-suspend; vmmc-supply = <®_3p3v>; bus-width = <4>; - no-1-8-v; status = "disabled"; }; |