Message ID | 20250327100633.11530-7-srinivas.kandagatla@linaro.org |
---|---|
State | New |
Headers | show |
Series | ASoC: wcd938x: enable t14s audio headset | expand |
Hi Bjorn, On Wed, Apr 02, 2025 at 10:08:24AM +0200, Johan Hovold wrote: > On Thu, Mar 27, 2025 at 10:06:33AM +0000, Srinivas Kandagatla wrote: > > From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > > > On Lenovo ThinkPad T14s, the headset is connected via a HiFi mux to > > support CTIA and OMTP headsets. This switch is used to minimise pop and > > click during headset type switching. > > > > Enable the mux controls required to power this switch along with wiring up > > gpio that control the headset switching. > > > > Without this, headset audio will be very noisy and might see headset > > detection errors. > > > > Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > > Tested-by: Christopher Obbard <christopher.obbard@linaro.org> > > Looks good and both playback and recording works fine: > > Reviewed-by: Johan Hovold <johan+linaro@kernel.org> > Tested-by: Johan Hovold <johan+linaro@kernel.org> Assuming the mux change will make it into 6.16 now, can you pick this one up as well? Johan
On 08/05/2025 14:47, Johan Hovold wrote: >>> Enable the mux controls required to power this switch along with wiring up >>> gpio that control the headset switching. >>> >>> Without this, headset audio will be very noisy and might see headset >>> detection errors. >>> >>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> >>> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> >>> Tested-by: Christopher Obbard <christopher.obbard@linaro.org> >> >> Looks good and both playback and recording works fine: >> >> Reviewed-by: Johan Hovold <johan+linaro@kernel.org> >> Tested-by: Johan Hovold <johan+linaro@kernel.org> > > Assuming the mux change will make it into 6.16 now, can you pick this > one up as well? > FYI, I will take the mux binding, so next will be fine. Best regards, Krzysztof
On Thu, 27 Mar 2025 10:06:33 +0000, srinivas.kandagatla@linaro.org wrote: > On Lenovo ThinkPad T14s, the headset is connected via a HiFi mux to > support CTIA and OMTP headsets. This switch is used to minimise pop and > click during headset type switching. > > Enable the mux controls required to power this switch along with wiring up > gpio that control the headset switching. > > [...] Applied, thanks! [6/6] arm64: dts: qcom: x1e78100-t14s: Enable audio headset support commit: 5603525e40e3257ea507ff34f8acd5790fb8bc49 Best regards,
diff --git a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi index afea82616bc4..34d1d8927484 100644 --- a/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi +++ b/arch/arm64/boot/dts/qcom/x1e78100-lenovo-thinkpad-t14s.dtsi @@ -41,6 +41,7 @@ wcd938x: audio-codec { qcom,tx-device = <&wcd_tx>; reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>; + mux-controls = <&us_euro_mux_ctrl>; vdd-buck-supply = <&vreg_l15b_1p8>; vdd-rxtx-supply = <&vreg_l15b_1p8>; @@ -149,6 +150,16 @@ pmic_glink_ss1_con_sbu_in: endpoint { }; }; + /* two muxes together support CTIA and OMTP switching */ + us_euro_mux_ctrl: mux-controller { + compatible = "gpio-mux"; + pinctrl-0 = <&us_euro_hs_sel>; + pinctrl-names = "default"; + mux-supply = <&vreg_l16b_2p5>; + #mux-control-cells = <0>; + mux-gpios = <&tlmm 68 GPIO_ACTIVE_HIGH>; + }; + reserved-memory { linux,cma { compatible = "shared-dma-pool"; @@ -604,6 +615,13 @@ vreg_l15b_1p8: ldo15 { regulator-always-on; }; + vreg_l16b_2p5: ldo16 { + regulator-name = "vreg_l16b_2p5"; + regulator-min-microvolt = <2504000>; + regulator-max-microvolt = <2504000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + }; + vreg_l17b_2p5: ldo17 { regulator-name = "vreg_l17b_2p5"; regulator-min-microvolt = <2504000>; @@ -1461,6 +1479,13 @@ rtmr1_default: rtmr1-reset-n-active-state { bias-disable; }; + us_euro_hs_sel: us-euro-hs-sel-state { + pins = "gpio68"; + function = "gpio"; + bias-pull-down; + drive-strength = <2>; + }; + usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state { pins = "gpio188"; function = "gpio";