From: Igor Opaniuk <igor.opan...@toradex.com>

Introduce DTS for Colibri iMX6S/DL V1.1x re-design, where UHS-I support was
added. 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.opan...@toradex.com>
---

v3:
- change hierarchy according to Marco's suggestions [Marco Felsch]
- adjust compatible string adding v1.1 [Stefan Agner]

v2:
- rework hierarchy of dts files, and a separate dtsi for Colibri
  iMX6S/DL V1.1x re-design, where UHS-I was added [Marcel Ziswiler]
- add comments about vgen3 power rail [Marcel Ziswiler]
- fix other minor issues, addressing Marcel's comments. [Marcel Ziswiler]

 arch/arm/boot/dts/Makefile                    |  1 +
 .../boot/dts/imx6dl-colibri-v1_1-eval-v3.dts  | 59 +++++++++++++++++++
 arch/arm/boot/dts/imx6qdl-colibri.dtsi        | 11 +++-
 3 files changed, 70 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 9159fa2cea90..87dfc3db4343 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -401,6 +401,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
index 000000000000..92fcf4e62ba2
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts
@@ -0,0 +1,59 @@
+// SPDX-License-Identifier: GPL-2.0 OR X11
+/*
+ * Copyright 2019 Toradex AG
+ */
+
+/dts-v1/;
+
+#include "imx6dl-colibri-eval-v3.dts"
+
+/ {
+       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";
+};
+
+&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>;
+       enable-sdio-wakeup;
+       keep-power-in-suspend;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       status = "okay";
+       /delete-property/no-1-8-v;
+};
diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi 
b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
index 1beac22266ed..27097ab5eaab 100644
--- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi
@@ -215,7 +215,16 @@
                                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>;
-- 
2.17.1

Reply via email to