Message ID | 20241101053154.497550-9-alexey.klimov@linaro.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | qrb4210-rb2: add wsa/wcd audio playback support | expand |
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 { > }; > }; > > + i2c0_gpio: i2c0 { Is 0 name on the schematics or datasheet? If yes, then i2c-0. If not, then i2c-1 > + 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 { i2c-(x+1) > 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; Are you sure this passes dtbs_check? I think this was not allowed since 1.5 years. Best regards, Krzysztof
On 1.11.2024 6:31 AM, 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 { > }; > }; > > + 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"; Does it not work with &i2c1? Konrad
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(+)