Message ID | 20250522-rb2_audio_v3-v3-10-9eeb08cab9dc@linaro.org |
---|---|
State | New |
Headers | show |
Series | qrb4210-rb2: add wsa audio playback and capture support | expand |
On Thu May 22, 2025 at 7:13 PM BST, Konrad Dybcio wrote: > On 5/22/25 7:41 PM, 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 >> pin/gpio. >> >> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> >> Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> >> --- >> arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 26 ++++++++++++++++++++++++++ >> 1 file changed, 26 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts >> index 6bce63720cfffd8e0e619937fb1f365cbbbcb283..4b878e585227ee6b3b362108be96aad99acba21d 100644 >> --- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts >> +++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts >> @@ -270,6 +270,24 @@ zap-shader { >> }; >> }; >> >> +&i2c1 { >> + clock-frequency = <400000>; >> + status = "okay"; >> + >> + wsa881x: amplifier@f { >> + compatible = "qcom,wsa8815"; >> + reg = <0x0f>; >> + pinctrl-0 = <&wsa_en_active>; >> + pinctrl-names = "default"; >> + clocks = <&q6afecc LPASS_CLK_ID_MCLK_2 LPASS_CLK_ATTRIBUTE_COUPLE_NO>; >> + powerdown-gpios = <&lpass_tlmm 16 GPIO_ACTIVE_LOW>; >> + mclk-gpios = <&lpass_tlmm 18 GPIO_ACTIVE_HIGH>; >> + sound-name-prefix = "SpkrMono"; >> + #sound-dai-cells = <0>; >> + #thermal-sensor-cells = <0>; >> + }; >> +}; >> + >> &i2c2_gpio { >> clock-frequency = <400000>; >> status = "okay"; >> @@ -736,6 +754,14 @@ wcd_reset_n: wcd-reset-n-state { >> drive-strength = <16>; >> output-high; >> }; >> + >> + wsa_en_active: wsa-en-active-state { >> + pins = "gpio106"; > > Are there two separate enable pins? Or is the powerdown-gpio something > else? No, should be only one. I think 106 on tlmm is wired into 16 on lpass tlmm. We need to assign gpio function to such pins, aren't we? Best regards, Alexey
On 5/27/25 5:55 PM, Alexey Klimov wrote: > On Thu May 22, 2025 at 7:13 PM BST, Konrad Dybcio wrote: >> On 5/22/25 7:41 PM, 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 >>> pin/gpio. >>> >>> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> >>> Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> >>> --- >>> arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 26 ++++++++++++++++++++++++++ >>> 1 file changed, 26 insertions(+) >>> >>> diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts >>> index 6bce63720cfffd8e0e619937fb1f365cbbbcb283..4b878e585227ee6b3b362108be96aad99acba21d 100644 >>> --- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts >>> +++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts >>> @@ -270,6 +270,24 @@ zap-shader { >>> }; >>> }; >>> >>> +&i2c1 { >>> + clock-frequency = <400000>; >>> + status = "okay"; >>> + >>> + wsa881x: amplifier@f { >>> + compatible = "qcom,wsa8815"; >>> + reg = <0x0f>; >>> + pinctrl-0 = <&wsa_en_active>; >>> + pinctrl-names = "default"; >>> + clocks = <&q6afecc LPASS_CLK_ID_MCLK_2 LPASS_CLK_ATTRIBUTE_COUPLE_NO>; >>> + powerdown-gpios = <&lpass_tlmm 16 GPIO_ACTIVE_LOW>; >>> + mclk-gpios = <&lpass_tlmm 18 GPIO_ACTIVE_HIGH>; >>> + sound-name-prefix = "SpkrMono"; >>> + #sound-dai-cells = <0>; >>> + #thermal-sensor-cells = <0>; >>> + }; >>> +}; >>> + >>> &i2c2_gpio { >>> clock-frequency = <400000>; >>> status = "okay"; >>> @@ -736,6 +754,14 @@ wcd_reset_n: wcd-reset-n-state { >>> drive-strength = <16>; >>> output-high; >>> }; >>> + >>> + wsa_en_active: wsa-en-active-state { >>> + pins = "gpio106"; >> >> Are there two separate enable pins? Or is the powerdown-gpio something >> else? > > No, should be only one. I think 106 on tlmm is wired into 16 on lpass tlmm. > We need to assign gpio function to such pins, aren't we? Well, we can just poke at them from lpass_tlmm Konrad
diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts index 6bce63720cfffd8e0e619937fb1f365cbbbcb283..4b878e585227ee6b3b362108be96aad99acba21d 100644 --- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts +++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts @@ -270,6 +270,24 @@ zap-shader { }; }; +&i2c1 { + clock-frequency = <400000>; + status = "okay"; + + wsa881x: amplifier@f { + compatible = "qcom,wsa8815"; + reg = <0x0f>; + pinctrl-0 = <&wsa_en_active>; + pinctrl-names = "default"; + clocks = <&q6afecc LPASS_CLK_ID_MCLK_2 LPASS_CLK_ATTRIBUTE_COUPLE_NO>; + powerdown-gpios = <&lpass_tlmm 16 GPIO_ACTIVE_LOW>; + mclk-gpios = <&lpass_tlmm 18 GPIO_ACTIVE_HIGH>; + sound-name-prefix = "SpkrMono"; + #sound-dai-cells = <0>; + #thermal-sensor-cells = <0>; + }; +}; + &i2c2_gpio { clock-frequency = <400000>; status = "okay"; @@ -736,6 +754,14 @@ wcd_reset_n: wcd-reset-n-state { drive-strength = <16>; output-high; }; + + wsa_en_active: wsa-en-active-state { + pins = "gpio106"; + function = "gpio"; + drive-strength = <16>; + bias-disable; + output-high; + }; }; &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 pin/gpio. Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org> --- arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)