OSDN Git Service

arm64: dts: qcom: sc7280: Add nodes for soundwire and va tx rx digital macro codecs
authorSrinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Thu, 7 Jul 2022 13:22:53 +0000 (18:52 +0530)
committerBjorn Andersson <andersson@kernel.org>
Tue, 13 Sep 2022 14:57:24 +0000 (09:57 -0500)
SC7280 has VA, TX and RX macros with SoundWire Controllers to attach with
external codecs using soundwire masters. Add these nodes for sc7280 based
platforms audio use case.

Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Co-developed-by: Venkata Prasad Potturu <quic_potturu@quicinc.com>
Signed-off-by: Venkata Prasad Potturu <quic_potturu@quicinc.com>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/1657200184-29565-2-git-send-email-quic_srivasam@quicinc.com
arch/arm64/boot/dts/qcom/sc7280.dtsi

index aa20a4e..36041b4 100644 (file)
                        #clock-cells = <1>;
                };
 
+               lpass_rx_macro: codec@3200000 {
+                       compatible = "qcom,sc7280-lpass-rx-macro";
+                       reg = <0 0x03200000 0 0x1000>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&lpass_rx_swr_clk>, <&lpass_rx_swr_data>;
+
+                       clocks = <&lpass_aon LPASS_AON_CC_TX_MCLK_CLK>,
+                                <&lpass_aon LPASS_AON_CC_TX_MCLK_2X_CLK>,
+                                <&lpass_va_macro>;
+                       clock-names = "mclk", "npl", "fsgen";
+
+                       power-domains = <&lpass_hm LPASS_CORE_CC_LPASS_CORE_HM_GDSC>,
+                                       <&lpass_aon LPASS_AON_CC_LPASS_AUDIO_HM_GDSC>;
+                       power-domain-names = "macro", "dcodec";
+
+                       #clock-cells = <0>;
+                       #sound-dai-cells = <1>;
+
+                       status = "disabled";
+               };
+
+               swr0: soundwire@3210000 {
+                       compatible = "qcom,soundwire-v1.6.0";
+                       reg = <0 0x03210000 0 0x2000>;
+
+                       interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&lpass_rx_macro>;
+                       clock-names = "iface";
+
+                       qcom,din-ports = <0>;
+                       qcom,dout-ports = <5>;
+
+                       resets = <&lpass_audiocc LPASS_AUDIO_SWR_RX_CGCR>;
+                       reset-names = "swr_audio_cgcr";
+
+                       qcom,ports-word-length =        /bits/ 8 <0x01 0x07 0x04 0xff 0xff>;
+                       qcom,ports-sinterval-low =      /bits/ 8 <0x03 0x3f 0x1f 0x03 0x03>;
+                       qcom,ports-offset1 =            /bits/ 8 <0x00 0x00 0x0b 0x01 0x01>;
+                       qcom,ports-offset2 =            /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>;
+                       qcom,ports-lane-control =       /bits/ 8 <0x01 0x00 0x00 0x00 0x00>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0x00 0x01 0xff 0xff>;
+                       qcom,ports-hstart =             /bits/ 8 <0xff 0x03 0xff 0xff 0xff>;
+                       qcom,ports-hstop =              /bits/ 8 <0xff 0x06 0xff 0xff 0xff>;
+                       qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff 0xff 0x00>;
+
+                       #sound-dai-cells = <1>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               lpass_tx_macro: codec@3220000 {
+                       compatible = "qcom,sc7280-lpass-tx-macro";
+                       reg = <0 0x03220000 0 0x1000>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&lpass_tx_swr_clk>, <&lpass_tx_swr_data>;
+
+                       clocks = <&lpass_aon LPASS_AON_CC_TX_MCLK_CLK>,
+                                <&lpass_aon LPASS_AON_CC_TX_MCLK_2X_CLK>,
+                                <&lpass_va_macro>;
+                       clock-names = "mclk", "npl", "fsgen";
+
+                       power-domains = <&lpass_hm LPASS_CORE_CC_LPASS_CORE_HM_GDSC>,
+                                       <&lpass_aon LPASS_AON_CC_LPASS_AUDIO_HM_GDSC>;
+                       power-domain-names = "macro", "dcodec";
+
+                       #clock-cells = <0>;
+                       #sound-dai-cells = <1>;
+
+                       status = "disabled";
+               };
+
+               swr1: soundwire@3230000 {
+                       compatible = "qcom,soundwire-v1.6.0";
+                       reg = <0 0x03230000 0 0x2000>;
+
+                       interrupts-extended = <&intc GIC_SPI 496 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 130 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&lpass_tx_macro>;
+                       clock-names = "iface";
+
+                       qcom,din-ports = <3>;
+                       qcom,dout-ports = <0>;
+
+                       resets = <&lpass_audiocc LPASS_AUDIO_SWR_TX_CGCR>;
+                       reset-names = "swr_audio_cgcr";
+
+                       qcom,ports-sinterval-low =      /bits/ 8 <0x01 0x03 0x03>;
+                       qcom,ports-offset1 =            /bits/ 8 <0x01 0x00 0x02>;
+                       qcom,ports-offset2 =            /bits/ 8 <0x00 0x00 0x00>;
+                       qcom,ports-hstart =             /bits/ 8 <0xff 0xff 0xff>;
+                       qcom,ports-hstop =              /bits/ 8 <0xff 0xff 0xff>;
+                       qcom,ports-word-length =        /bits/ 8 <0xff 0x00 0xff>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0xff 0xff>;
+                       qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff>;
+                       qcom,ports-lane-control =       /bits/ 8 <0x00 0x01 0x00>;
+                       qcom,port-offset = <1>;
+
+                       #sound-dai-cells = <1>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+
+                       status = "disabled";
+               };
+
                lpass_audiocc: clock-controller@3300000 {
                        compatible = "qcom,sc7280-lpassaudiocc";
                        reg = <0 0x03300000 0 0x30000>;
                        #reset-cells = <1>;
                };
 
+               lpass_va_macro: codec@3370000 {
+                       compatible = "qcom,sc7280-lpass-va-macro";
+                       reg = <0 0x03370000 0 0x1000>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&lpass_dmic01_clk>, <&lpass_dmic01_data>;
+
+                       clocks = <&lpass_aon LPASS_AON_CC_TX_MCLK_CLK>;
+                       clock-names = "mclk";
+
+                       power-domains = <&lpass_hm LPASS_CORE_CC_LPASS_CORE_HM_GDSC>,
+                                       <&lpass_aon LPASS_AON_CC_LPASS_AUDIO_HM_GDSC>;
+                       power-domain-names = "macro", "dcodec";
+
+                       #clock-cells = <0>;
+                       #sound-dai-cells = <1>;
+
+                       status = "disabled";
+               };
+
                lpass_aon: clock-controller@3380000 {
                        compatible = "qcom,sc7280-lpassaoncc";
                        reg = <0 0x03380000 0 0x30000>;