summaryrefslogtreecommitdiff
path: root/arch/arm/boot/dts
diff options
context:
space:
mode:
authorIgor Opaniuk <igor.opaniuk@toradex.com>2019-06-13 19:26:08 +0200
committerMarcel Ziswiler <marcel.ziswiler@toradex.com>2020-02-09 22:45:44 +0100
commit938ba3f20cff6cbb9a1fa810be391bea7fc714a7 (patch)
treefa87c69081b75df81a0fcf903a1311b3609f94cd /arch/arm/boot/dts
parent97a0d0e3bdeace8a72940a63d0a35dd3b6910436 (diff)
ARM: dts: 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> (cherry-picked from 7ffa92d64cc7a6331faaae3e2507458461ab90f3)
Diffstat (limited to 'arch/arm/boot/dts')
-rw-r--r--arch/arm/boot/dts/imx6qdl-colibri.dtsi48
1 files changed, 47 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
index 8ce50a73891a..819371337be6 100644
--- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -226,7 +226,12 @@
regulator-always-on;
};
- /* vgen3: unused */
+ vgen3_reg: vgen3 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
vgen4_reg: vgen4 {
regulator-min-microvolt = <1800000>;
@@ -394,8 +399,27 @@
/* Colibri MMC */
&usdhc1 {
+/*
+ * 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>;
+#endif
+ label = "MMC1";
cd-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; /* MMCD */
disable-wp;
vqmmc-supply = <&reg_module_3v3>;
@@ -706,6 +730,28 @@
>;
};
+ 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
+ >;
+ };
+
pinctrl_usdhc3: usdhc3grp {
fsl,pins = <
MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059