diff options
author | Zidan Wang <zidan.wang@freescale.com> | 2015-10-23 11:49:03 +0800 |
---|---|---|
committer | Zidan Wang <zidan.wang@freescale.com> | 2015-10-23 14:19:17 +0800 |
commit | b3e988b838388f901d471a6938d0fb67b9bcad3b (patch) | |
tree | f5ca59a6c1a0d932dec7b1948e20a731595e3911 /arch | |
parent | 2b1ce5ec442dde8801b6b2d059d22f5dce7c9c76 (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>
Diffstat (limited to 'arch')
-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 | 9 |
2 files changed, 9 insertions, 4 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 8a17c461c2bc..b8c196a06d6d 100644 --- a/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-sai.dts +++ b/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2-sai.dts @@ -23,8 +23,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 61677af01882..a697b8500e33 100644 --- a/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts +++ b/arch/arm/boot/dts/imx7d-12x12-lpddr3-arm2.dts @@ -489,6 +489,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 >; }; @@ -505,6 +506,12 @@ >; }; + pinctrl_hog_headphone_det: hoggrp_headphone_det { + fsl,pins = < + MX7D_PAD_GPIO1_IO12__GPIO1_IO12 0x59 + >; + }; + pinctrl_bt: btgrp-1 { fsl,pins = < MX7D_PAD_ENET1_CRS__GPIO7_IO14 0x80000000 /* BT REG on */ @@ -729,8 +736,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 >; }; |