[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250325114058.12083-7-srinivas.kandagatla@linaro.org>
Date: Tue, 25 Mar 2025 11:40:58 +0000
From: srinivas.kandagatla@...aro.org
To: peda@...ntia.se,
broonie@...nel.org,
andersson@...nel.org,
krzk+dt@...nel.org
Cc: ivprusov@...utedevices.com,
luca.ceresoli@...tlin.com,
zhoubinbin@...ngson.cn,
paulha@...nsource.cirrus.com,
lgirdwood@...il.com,
robh@...nel.org,
conor+dt@...nel.org,
konradybcio@...nel.org,
perex@...ex.cz,
tiwai@...e.com,
dmitry.baryshkov@....qualcomm.com,
linux-sound@...r.kernel.org,
linux-arm-msm@...r.kernel.org,
devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org,
johan+linaro@...nel.org,
Srinivas Kandagatla <srinivas.kandagatla@...aro.org>,
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
Christopher Obbard <christopher.obbard@...aro.org>
Subject: [PATCH v5 6/6] arm64: dts: qcom: x1e78100-t14s: Enable audio headset support
From: Srinivas Kandagatla <srinivas.kandagatla@...aro.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@...aro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
Tested-by: Christopher Obbard <christopher.obbard@...aro.org>
---
.../qcom/x1e78100-lenovo-thinkpad-t14s.dtsi | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
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";
--
2.39.5
Powered by blists - more mailing lists