ARM: dts: colibri: introduce device trees with UHS-I support

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>
This commit is contained in:
Igor Opaniuk 2020-03-16 16:33:45 +02:00 committed by Shawn Guo
parent 2d7401f863
commit e7e5af7df1
4 changed files with 86 additions and 1 deletions

View 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 \

View file

@ -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;
*/
};

View file

@ -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;
};

View file

@ -193,7 +193,16 @@ vgen2_reg: vgen2 {
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>;