summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorDong Aisheng <b29396@freescale.com>2014-01-10 21:31:21 +0800
committerDong Aisheng <b29396@freescale.com>2014-01-15 15:05:58 +0800
commit7b8d0abd46a4b2a3daba6fa0d7c4ee9d50748bf5 (patch)
treedb8bf24780acabb1b0be6a11860319c14772300d /arch
parented2b33a6c3c08b4a40dabcb466cd282388e98b4c (diff)
ENGR00295184-2 dts: imx6qdl-sabreauto: use external vmmc for sd3 optionally
SD3.0 cards require power cycle the card during suspend/resume, or the card re-enumeration after resume will fail to be identified as UHS card since the card is already working on 1.8v mode and refuse to ack the S18R request, thus, it will then work on normal high speed mode instead. We have to use external vmmc regulator to power cycle the card during suspend/resume to reset card signal voltage to 3.3v frist for the later 1.8v voltage switch. However, due to the sabreauto board limitation, we can not use external regulator to powere off card by default since the card power is shared with card detect pullup. Disabling the vmmc regulator will also shutdown the cd pullup which causes incorrect illusion of card exist. (e.g. plug out the card, mmc core wll think the card is exist since cd pin is low but it never can find the card) HW rework removing R695 and enable PAD internal pullup is needed to fix this isssue. User can manually open the mask of vmmc in dts to enable using external regulator if your board has done the rework as said above. Or by default we still do not power off card during suspend. Signed-off-by: Dong Aisheng <b29396@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabreauto.dtsi26
1 files changed, 25 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
index a2dd4385c4fe..3a46e7f30d86 100644
--- a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
@@ -193,6 +193,17 @@
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
+
+ reg_sd3_vmmc: sd3_vmmc{
+ compatible = "regulator-fixed";
+ regulator-name = "P3V3_SDa_SWITCHED";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&gpio7 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ /* remove below line to enable this regulator */
+ status="disabled";
+ };
};
sound-cs42888 {
@@ -530,7 +541,7 @@
hog {
pinctrl_hog: hoggrp {
fsl,pins = <
- MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x80000000
+ MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1f059
MX6QDL_PAD_SD2_DAT2__GPIO1_IO13 0x80000000
MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x80000000
MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x80000000
@@ -545,6 +556,7 @@
MX6QDL_PAD_GPIO_18__SD3_VSELECT 0x17059
MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x17059
MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x17059
+ MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x80000000
>;
};
};
@@ -662,6 +674,18 @@
pinctrl-2 = <&pinctrl_usdhc3_1_200mhz>;
cd-gpios = <&gpio6 15 0>;
wp-gpios = <&gpio1 13 0>;
+ /*
+ * Due to board issue, we can not use external regulator for card slot
+ * by default since the card power is shared with card detect pullup.
+ * Disabling the vmmc regulator will cause unexpected card detect
+ * interrupts.
+ * HW rework is needed to fix this isssue. Remove R695 first, then you
+ * can open below line to enable the using of external regulator.
+ * Then you will be able to power off the card during suspend. This is
+ * especially needed for a SD3.0 card re-enumeration working on UHS mode
+ * Note: reg_sd3_vmmc is also need to be enabled
+ */
+ /* vmmc-supply = <&reg_sd3_vmmc>; */
status = "okay";
};