ARM: dts: colibri: introduce device trees with UHS-I support
authorIgor Opaniuk <igor.opaniuk@toradex.com>
Mon, 16 Mar 2020 14:33:45 +0000 (16:33 +0200)
committerShawn Guo <shawnguo@kernel.org>
Tue, 14 Apr 2020 13:49:41 +0000 (21:49 +0800)
1. Introduce dtsi with overlay configuration for enabling UHS-I
for Colibri iMX6S/DL V1.1x re-design.
2. Introduce new dts for the Colibri iMX6S/DL V1.1x
on Colibri Evaluation Carrier Board V3.x. However, disable 1.8V for
the Colibri Evaluation Board since this carrier board has 3.3V pull-ups on.
3. Provide proper configuration for VGEN3, which allows that rail to
be automatically switched to 1.8 volts for proper UHS-I operation mode.

Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-colibri.dtsi

index e8dd992..eccdf79 100644 (file)
@@ -412,6 +412,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6dl-aristainetos2_4.dtb \
        imx6dl-aristainetos2_7.dtb \
        imx6dl-colibri-eval-v3.dtb \
+       imx6dl-colibri-v1_1-eval-v3.dtb \
        imx6dl-cubox-i.dtb \
        imx6dl-cubox-i-emmc-som-v15.dtb \
        imx6dl-cubox-i-som-v15.dtb \
diff --git a/arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts
new file mode 100644 (file)
index 0000000..223275f
--- /dev/null
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Copyright 2020 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6dl-colibri-eval-v3.dts"
+#include "imx6qdl-colibri-v1_1-uhs.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6DL/S V1.1 on Colibri Evaluation Board V3";
+       compatible = "toradex,colibri_imx6dl-v1_1-eval-v3",
+                    "toradex,colibri_imx6dl-v1_1",
+                    "toradex,colibri_imx6dl-eval-v3",
+                    "toradex,colibri_imx6dl",
+                    "fsl,imx6dl";
+};
+
+/* Colibri MMC */
+&usdhc1 {
+       status = "okay";
+       /*
+        * Please make sure your carrier board does not pull-up any of
+        * the MMC/SD signals to 3.3 volt before attempting to activate
+        * UHS-I support.
+        * To let signaling voltage be changed to 1.8V, please
+        * delete no-1-8-v property (example below):
+        * /delete-property/no-1-8-v;
+        */
+};
diff --git a/arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi b/arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi
new file mode 100644 (file)
index 0000000..7672fbf
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Copyright 2020 Toradex
+ */
+
+&iomuxc {
+       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
+               >;
+       };
+};
+
+/* Colibri MMC */
+&usdhc1 {
+       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>;
+       vmmc-supply = <&reg_module_3v3>;
+       vqmmc-supply = <&vgen3_reg>;
+       wakeup-source;
+       keep-power-in-suspend;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+};
index 6e3c6b4..240b86d 100644 (file)
                                regulator-always-on;
                        };
 
-                       /* vgen3: unused */
+                       /*
+                        * +V3.3_1.8_SD1 coming off VGEN3 and supplying
+                        * the i.MX 6 NVCC_SD1.
+                        */
+                       vgen3_reg: vgen3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
 
                        vgen4_reg: vgen4 {
                                regulator-min-microvolt = <1800000>;