Re: [PATCH v2 2/3] arm64: dts: rk3399: i2s: switch BCLK to GPIO

From: Brian Norris
Date: Thu Jun 16 2022 - 16:40:08 EST


Hi,

On Thu, Jun 16, 2022 at 03:58:35PM +0000, Judy Hsiao wrote:
> We discoverd that the state of BCLK on, LRCLK off and SD_MODE on
> may cause the speaker melting issue. Removing LRCLK while BCLK
> is present can cause unexpected output behavior including a large
> DC output voltage as described in the Max98357a datasheet.
>
> In order to:
> 1. prevent BCLK from turning on by other component.
> 2. keep BCLK and LRCLK being present at the same time
>
> This patch adjusts the device tree to allow BCLK to switch
> to GPIO func before LRCLK output, and switch back during
> LRCLK is output.
>
> Signed-off-by: Judy Hsiao <judyhsiao@xxxxxxxxxxxx>


> --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> @@ -1662,9 +1662,10 @@ i2s0: i2s@ff880000 {
> dma-names = "tx", "rx";
> clock-names = "i2s_clk", "i2s_hclk";
> clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
> - pinctrl-names = "default";
> + pinctrl-names = "bclk_on", "bclk_off";
> pinctrl-0 = <&i2s0_8ch_bus>;
> power-domains = <&power RK3399_PD_SDIOAUDIO>;
> + pinctrl-1 = <&i2s0_8ch_bus_bclk_off>;

It seems like 'pinctrl-1' may make sense after pinctrl-0, not here.
Perhaps you're interacting with my RFC PATCH that removes this
'power-domains' property?

https://lore.kernel.org/linux-rockchip/20220613183556.RFC.1.I9ca71105e505f024d53b7e0ba4462230813ebb8d@changeid/

But that most likely isn't landing upstream as-is.

Otherwise, this patch looks good to me:

Reviewed-by: Brian Norris <briannorris@xxxxxxxxxxxx>

> #sound-dai-cells = <0>;
> status = "disabled";
> };