diff options
author | Zidan Wang <zidan.wang@freescale.com> | 2015-10-23 11:49:03 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:23:36 +0800 |
commit | b717f287ce46faa8eb7e859b6c92fca57287c26c (patch) | |
tree | 25ca86eaf5b23677342b6a56d842e5b63d29b43d | |
parent | fb19f6932996664bc38470e63b02cd0faaf8c157 (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.dts | 4 | ||||
-rw-r--r-- | arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts | 10 |
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 >; }; |