summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZidan Wang <zidan.wang@freescale.com>2015-10-23 11:49:03 +0800
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:23:36 +0800
commitb717f287ce46faa8eb7e859b6c92fca57287c26c (patch)
tree25ca86eaf5b23677342b6a56d842e5b63d29b43d
parentfb19f6932996664bc38470e63b02cd0faaf8c157 (diff)
MLK-11748 ARM: dts: imx7d-12x12-lpddr3-arm2-sai: configure gpio1_12 pin to non GPIO function before lpsr suspend
It's hardware issue that if there are interrupts in GPIO1, the system will not enter lpsr suspend state. gpio1_12 pin is used as headphone detect pin for wm8958 sound card. If headphone is not plugged in, the gpio1_12 pin is high level. When lpsr suspend without headphone plugged in, gpio will be powered down and there will be a interrupt in the gpio1_12 pin. So we should avoid thus interrupt. We fix this issue by configuring gpio1_12 pin to non GPIO function before lpsr suspend. Because ALSA will set SAI pins to sleep state before suspend, and will not set them to default state after resume if cpu dai is not active. So we'd better remove non SAI pins from SAI pin group, and let iomuxc to control the gpio pin state. Signed-off-by: Zidan Wang <zidan.wang@freescale.com> (cherry picked from commit b3e988b838388f901d471a6938d0fb67b9bcad3b) Conflicts: arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts
-rw-r--r--arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-sai.dts4
-rw-r--r--arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts10
2 files changed, 9 insertions, 5 deletions
diff --git a/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-sai.dts b/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-sai.dts
index 719efcaa81e9..f1d36ce65119 100644
--- a/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-sai.dts
+++ b/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-sai.dts
@@ -22,8 +22,8 @@
&iomuxc {
pinctrl-names = "default", "sleep";
- pinctrl-0 = <&pinctrl_hog_1>;
- pinctrl-1 = <&pinctrl_hog_1>;
+ pinctrl-0 = <&pinctrl_hog_1 &pinctrl_hog_headphone_det>;
+ pinctrl-1 = <&pinctrl_hog_1 &pinctrl_hog_sd2_vselect>;
};
&sai1 {
diff --git a/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts b/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts
index 13c0939b3e7d..5baa417f2d9a 100644
--- a/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts
+++ b/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts
@@ -564,6 +564,7 @@
MX7D_PAD_SD2_CD_B__GPIO5_IO9 0x59
MX7D_PAD_SD2_WP__GPIO5_IO10 0x59
MX7D_PAD_SD2_RESET_B__GPIO5_IO11 0x59
+ MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x59
MX7D_PAD_ECSPI1_SCLK__GPIO4_IO16 0x59
MX7D_PAD_ECSPI1_MOSI__GPIO4_IO17 0x59
@@ -576,6 +577,12 @@
>;
};
+ pinctrl_hog_headphone_det: hoggrp_headphone_det {
+ fsl,pins = <
+ MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x59
+ >;
+ };
+
pinctrl_i2c1_1: i2c1grp-1 {
fsl,pins = <
MX7D_PAD_I2C1_SDA__I2C1_SDA 0x4000007f
@@ -670,9 +677,6 @@
MX7D_PAD_SAI1_RX_SYNC__SAI1_RX_SYNC 0x1f
MX7D_PAD_SAI1_RX_DATA__SAI1_RX_DATA0 0x1f
MX7D_PAD_SAI1_TX_DATA__SAI1_TX_DATA0 0
-
- MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x59
- MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x59
>;
};