From: Srinivas Kandagatla <[email protected]>

Add the sound card of Glymur-crd board with the routing for speakers.

Add device nodes for the sound support with WSA884x smart speakers
and playback via speakers and recording via DMIC microphones.

Co-developed-by: Mohammad Rafi Shaik <[email protected]>
Signed-off-by: Mohammad Rafi Shaik <[email protected]>
Signed-off-by: Srinivas Kandagatla <[email protected]>
Reviewed-by: Konrad Dybcio <[email protected]>
---
 arch/arm64/boot/dts/qcom/glymur-crd.dtsi | 110 +++++++++++++++++++++++
 1 file changed, 110 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/glymur-crd.dtsi 
b/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
index 690b90e3d6ce..88a5c63e8ac2 100644
--- a/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur-crd.dtsi
@@ -118,6 +118,54 @@ vreg_wwan: regulator-wwan {
                pinctrl-0 = <&wwan_reg_en>;
                pinctrl-names = "default";
        };
+
+       sound {
+               compatible = "qcom,glymur-sndcard";
+               model = "glymur-crd";
+               audio-routing = "wooferleft in", "wsa wsa_spk1 out",
+                               "tweeterleft in", "wsa wsa_spk2 out",
+                               "wooferright in", "wsa2 wsa_spk2 out",
+                               "tweeterright in", "wsa2 wsa_spk2 out",
+                               "VA DMIC0", "vdd-micb",
+                               "VA DMIC1", "vdd-micb",
+                               "VA DMIC2", "vdd-micb",
+                               "VA DMIC3", "vdd-micb";
+
+               wsa-dai-link {
+                       link-name = "WSA Playback";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+                       };
+
+                       codec {
+                               sound-dai = <&left_woofer>, <&left_tweeter>,
+                                           <&swr0 0>, <&lpass_wsamacro 0>,
+                                           <&right_woofer>, <&right_tweeter>,
+                                           <&swr3 0>, <&lpass_wsa2macro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               va-dai-link {
+                       link-name = "VA Capture";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+                       };
+
+                       codec {
+                               sound-dai = <&lpass_vamacro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+       };
 };
 
 &apps_rsc {
@@ -364,6 +412,12 @@ vreg_l4h_e0_1p2: ldo4 {
        };
 };
 
+&lpass_vamacro {
+       pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
+       pinctrl-names = "default";
+       qcom,dmic-sample-rate = <4800000>;
+};
+
 &pcie3b {
        vddpe-3v3-supply = <&vreg_nvmesec>;
 
@@ -478,6 +532,62 @@ &pon_resin {
        status = "okay";
 };
 
+&swr0 {
+       status = "okay";
+
+       /* WSA8845, Left Woofer */
+       left_woofer: speaker@0,0 {
+               compatible = "sdw20217020400";
+               reg = <0 0>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "WooferLeft";
+               vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
+               vdd-io-supply = <&vreg_l18b_e0_1p2>;
+               qcom,port-mapping = <1 2 3 7 12 14>;
+       };
+
+       /* WSA8845, Left Tweeter */
+       left_tweeter: speaker@0,1 {
+               compatible = "sdw20217020400";
+               reg = <0 1>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "TweeterLeft";
+               vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
+               vdd-io-supply = <&vreg_l18b_e0_1p2>;
+               qcom,port-mapping = <4 5 6 7 13 15>;
+       };
+};
+
+&swr3 {
+       status = "okay";
+
+       /* WSA8845, Right Woofer */
+       right_woofer: speaker@0,0 {
+               compatible = "sdw20217020400";
+               reg = <0 0>;
+               reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "WooferRight";
+               vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
+               vdd-io-supply = <&vreg_l18b_e0_1p2>;
+               qcom,port-mapping = <1 2 3 7 12 14>;
+       };
+
+       /* WSA8845, Right Tweeter */
+       right_tweeter: speaker@0,1 {
+               compatible = "sdw20217020400";
+               reg = <0 1>;
+               reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "TweeterRight";
+               vdd-1p8-supply = <&vreg_l15b_e0_1p8>;
+               vdd-io-supply = <&vreg_l18b_e0_1p2>;
+               qcom,port-mapping = <4 5 6 7 13 15>;
+       };
+};
+
 &remoteproc_adsp {
        firmware-name = "qcom/glymur/adsp.mbn",
                        "qcom/glymur/adsp_dtb.mbn";
-- 
2.34.1

Reply via email to