Re: [PATCH] arm64: dts: qcom: sc7180: Add sleep state for alc5682 codec

From: Stephen Boyd
Date: Thu Aug 18 2022 - 14:47:09 EST


Quoting Joseph S. Barrera III (2022-08-18 08:42:19)
> Add sleep state to acl5682. In default, gpio28 (HP_IRQ) is bias-pull-up.
> To save power, in the new sleep state, gpio28 is bias-disable.
>
> sleeping, /sys/kernel/debug/gpio shows gpio28 as "no pull". When codec

Is something missing? The sentence starts with 'sleeping'.

> is awake (microphone plugged in and in use), it shows gpio28 as "pull up".
>
> Signed-off-by: Joseph S. Barrera III <joebar@xxxxxxxxxxxx>
> ---
>
> arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
> index b5f534db135a..94dd6c34d997 100644
> --- a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
> @@ -755,8 +755,9 @@ hp_i2c: &i2c9 {
> alc5682: codec@1a {
> compatible = "realtek,rt5682i";
> reg = <0x1a>;
> - pinctrl-names = "default";
> + pinctrl-names = "default", "sleep";
> pinctrl-0 = <&hp_irq>;
> + pinctrl-1 = <&hp_sleep>;
>
> #sound-dai-cells = <1>;
>
> @@ -1336,6 +1337,18 @@ pinconf {
> };
> };
>
> + hp_sleep: hp-sleep {
> + pinmux {
> + pins = "gpio28";
> + function = "gpio";
> + };
> +
> + pinconf {
> + pins = "gpio28";
> + bias-disable;
> + };

Does removing the bias cause an irq to trigger? I'm worried that this
change may cause a spurious irq upon entering or exiting sleep, maybe
both actually. The irq is double edged so we really want it to stay
stable at one level whenever the gpio interrupt hardware is sensing the
line.

>From what I can tell the pin is powered by AVDD-supply and I can't tell
if that is ever powered off while the driver is probed. Probably not? If
the power to the pin on the codec is never turned off then there isn't a
power leak from what I can tell.