MLK-11748 ARM: dts: imx7d-12x12-lpddr3-arm2-sai: configure gpio1_12 pin to non GPIO...
authorZidan Wang <zidan.wang@freescale.com>
Fri, 23 Oct 2015 03:49:03 +0000 (11:49 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 19:49:02 +0000 (14:49 -0500)
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

arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-sai.dts
arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts

index 719efca..f1d36ce 100644 (file)
@@ -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 {
index 3bd426a..52b6b3b 100644 (file)
                                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
                        >;
                };
 
+               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
                                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
                        >;
                };