Message ID | 20241101053154.497550-9-alexey.klimov@linaro.org |
---|---|
State | New |
Headers | show |
Series | qrb4210-rb2: add wsa/wcd audio playback support | expand |
On Fri Nov 1, 2024 at 8:14 AM GMT, Krzysztof Kozlowski wrote: > On Fri, Nov 01, 2024 at 05:31:52AM +0000, Alexey Klimov wrote: > > One WSA881X amplifier is connected on QRB4210 RB2 board > > hence only mono speaker is supported. This amplifier is set > > to work in analog mode only. Also add required powerdown > > pins/gpios. > > > > Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> > > --- > > arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 45 ++++++++++++++++++++++++ > > 1 file changed, 45 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts > > index fc71f5930688..76b9ae1b0ebc 100644 > > --- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts > > +++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts > > @@ -63,6 +63,16 @@ hdmi_con: endpoint { [..] > > + wsa_en_sleep: wsa-en-sleep-state { > > + pins = "gpio106"; > > + function = "gpio"; > > + drive-strength = <2>; > > + bias-pull-down; > > + input-enable; > > Are you sure this passes dtbs_check? I think this was not allowed since > 1.5 years. I guess you were referring to thing that input-enable is not allowed and output-disable must be used instead introduced by: c4a48b0df8bf dt-bindings: pinctrl: qcom: tlmm should use output-disable, not input-enable Noted. This sleep state seems to be unused hence I will remove it. Also, I am going to use Konrad's suggestion about i2c gpio for now. Hope it is okay. Thanks, Alexey
diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts index fc71f5930688..76b9ae1b0ebc 100644 --- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts +++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts @@ -63,6 +63,16 @@ hdmi_con: endpoint { }; }; + i2c0_gpio: i2c0 { + compatible = "i2c-gpio"; + + sda-gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; + scl-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + i2c2_gpio: i2c { compatible = "i2c-gpio"; @@ -272,6 +282,25 @@ zap-shader { }; }; +&i2c0_gpio { + clock-frequency = <400000>; + status = "okay"; + + wsa881x: codec@f { + compatible = "qcom,qrb4210-wsa881x-i2c-codec"; + reg = <0x0f>; + pinctrl-0 = <&wsa_en_active>; + pinctrl-1 = <&wsa_en_sleep>; + pinctrl-names = "default", "sleep"; + clocks = <&q6afecc LPASS_CLK_ID_MCLK_2 LPASS_CLK_ATTRIBUTE_COUPLE_NO>; + clock-names = "wsa_mclk"; + powerdown-gpios = <&lpass_tlmm 16 GPIO_ACTIVE_LOW>; + mclk-gpios = <&lpass_tlmm 18 GPIO_ACTIVE_HIGH>; + sound-name-prefix = "SpkrMono"; + #sound-dai-cells = <0>; + }; +}; + &i2c2_gpio { clock-frequency = <400000>; status = "okay"; @@ -746,6 +775,22 @@ wcd_reset_n_sleep: wcd-reset-n-sleep-state { bias-disable; output-low; }; + + wsa_en_active: wsa-en-active-state { + pins = "gpio106"; + function = "gpio"; + drive-strength = <16>; + bias-disable; + output-high; + }; + + wsa_en_sleep: wsa-en-sleep-state { + pins = "gpio106"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + input-enable; + }; }; &uart3 {
One WSA881X amplifier is connected on QRB4210 RB2 board hence only mono speaker is supported. This amplifier is set to work in analog mode only. Also add required powerdown pins/gpios. Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> --- arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 45 ++++++++++++++++++++++++ 1 file changed, 45 insertions(+)