xref: /linux/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml (revision a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0)
14b381d7eSRohit kumar# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
24b381d7eSRohit kumar%YAML 1.2
34b381d7eSRohit kumar---
44b381d7eSRohit kumar$id: http://devicetree.org/schemas/sound/qcom,lpass-cpu.yaml#
54b381d7eSRohit kumar$schema: http://devicetree.org/meta-schemas/core.yaml#
64b381d7eSRohit kumar
784e85359SKrzysztof Kozlowskititle: Qualcomm Technologies Inc. LPASS CPU dai driver
84b381d7eSRohit kumar
94b381d7eSRohit kumarmaintainers:
104b381d7eSRohit kumar  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11*a1ff5802SRohit kumar  - Rohit kumar <quic_rohkumar@quicinc.com>
124b381d7eSRohit kumar
134b381d7eSRohit kumardescription: |
144b381d7eSRohit kumar  Qualcomm Technologies Inc. SOC Low-Power Audio SubSystem (LPASS) that consist
154b381d7eSRohit kumar  of MI2S interface for audio data transfer on external codecs. LPASS cpu driver
164b381d7eSRohit kumar  is a module to configure Low-Power Audio Interface(LPAIF) core registers
174b381d7eSRohit kumar  across different IP versions.
184b381d7eSRohit kumar
194b381d7eSRohit kumarproperties:
204b381d7eSRohit kumar  compatible:
214b381d7eSRohit kumar    enum:
224b381d7eSRohit kumar      - qcom,lpass-cpu
234b381d7eSRohit kumar      - qcom,apq8016-lpass-cpu
244b381d7eSRohit kumar      - qcom,sc7180-lpass-cpu
25f3fc4fbfSSrinivasa Rao Mandadapu      - qcom,sc7280-lpass-cpu
264b381d7eSRohit kumar
274b381d7eSRohit kumar  reg:
2894c65dffSBryan O'Donoghue    minItems: 1
29f3fc4fbfSSrinivasa Rao Mandadapu    maxItems: 6
304b381d7eSRohit kumar    description: LPAIF core registers
316ad8838dSRob Herring
328e3fdc52SV Sujith Kumar Reddy  reg-names:
3394c65dffSBryan O'Donoghue    minItems: 1
34f3fc4fbfSSrinivasa Rao Mandadapu    maxItems: 6
356ad8838dSRob Herring
364b381d7eSRohit kumar  clocks:
374b381d7eSRohit kumar    minItems: 3
38ffb2bbdfSKrzysztof Kozlowski    maxItems: 10
394b381d7eSRohit kumar
404b381d7eSRohit kumar  clock-names:
4198b7630aSSrinivasa Rao Mandadapu    minItems: 1
4298b7630aSSrinivasa Rao Mandadapu    maxItems: 10
434b381d7eSRohit kumar
444b381d7eSRohit kumar  interrupts:
4594c65dffSBryan O'Donoghue    minItems: 1
46f3fc4fbfSSrinivasa Rao Mandadapu    maxItems: 4
474b381d7eSRohit kumar    description: LPAIF DMA buffer interrupt
486ad8838dSRob Herring
498e3fdc52SV Sujith Kumar Reddy  interrupt-names:
5094c65dffSBryan O'Donoghue    minItems: 1
51f3fc4fbfSSrinivasa Rao Mandadapu    maxItems: 4
526ad8838dSRob Herring
534b381d7eSRohit kumar  qcom,adsp:
544b381d7eSRohit kumar    $ref: /schemas/types.yaml#/definitions/phandle
554b381d7eSRohit kumar    description: Phandle for the audio DSP node
564b381d7eSRohit kumar
574b381d7eSRohit kumar  iommus:
58f3fc4fbfSSrinivasa Rao Mandadapu    minItems: 2
59f3fc4fbfSSrinivasa Rao Mandadapu    maxItems: 3
604b381d7eSRohit kumar    description: Phandle to apps_smmu node with sid mask
614b381d7eSRohit kumar
624b381d7eSRohit kumar  power-domains:
634b381d7eSRohit kumar    maxItems: 1
644b381d7eSRohit kumar
6598b7630aSSrinivasa Rao Mandadapu  power-domain-names:
6698b7630aSSrinivasa Rao Mandadapu    maxItems: 1
6798b7630aSSrinivasa Rao Mandadapu
68a1df7854SKrzysztof Kozlowski  required-opps:
69a1df7854SKrzysztof Kozlowski    maxItems: 1
70a1df7854SKrzysztof Kozlowski
714b381d7eSRohit kumar  '#sound-dai-cells':
724b381d7eSRohit kumar    const: 1
734b381d7eSRohit kumar
744b381d7eSRohit kumar  '#address-cells':
754b381d7eSRohit kumar    const: 1
764b381d7eSRohit kumar
774b381d7eSRohit kumar  '#size-cells':
784b381d7eSRohit kumar    const: 0
794b381d7eSRohit kumar
804b381d7eSRohit kumarpatternProperties:
815f9cd0f7SKrzysztof Kozlowski  "^dai-link@[0-9a-f]+$":
824b381d7eSRohit kumar    type: object
838e3fdc52SV Sujith Kumar Reddy    description: |
84f3fc4fbfSSrinivasa Rao Mandadapu      LPASS CPU dai node for each I2S device or Soundwire device. Bindings of each node
858e3fdc52SV Sujith Kumar Reddy      depends on the specific driver providing the functionality and
868e3fdc52SV Sujith Kumar Reddy      properties.
874b381d7eSRohit kumar    properties:
884b381d7eSRohit kumar      reg:
894b381d7eSRohit kumar        maxItems: 1
904b381d7eSRohit kumar        description: Must be one of the DAI ID
914b381d7eSRohit kumar
924b381d7eSRohit kumar      qcom,playback-sd-lines:
934b381d7eSRohit kumar        $ref: /schemas/types.yaml#/definitions/uint32-array
944b381d7eSRohit kumar        description: list of MI2S data lines for playback
954b381d7eSRohit kumar
964b381d7eSRohit kumar      qcom,capture-sd-lines:
974b381d7eSRohit kumar        $ref: /schemas/types.yaml#/definitions/uint32-array
984b381d7eSRohit kumar        description: list of MI2S data lines for capture
994b381d7eSRohit kumar
1004b381d7eSRohit kumar    required:
1014b381d7eSRohit kumar      - reg
1024b381d7eSRohit kumar
1034b381d7eSRohit kumar    additionalProperties: false
1044b381d7eSRohit kumar
1054b381d7eSRohit kumarrequired:
1064b381d7eSRohit kumar  - compatible
1074b381d7eSRohit kumar  - reg
1088e3fdc52SV Sujith Kumar Reddy  - reg-names
1094b381d7eSRohit kumar  - clocks
1104b381d7eSRohit kumar  - clock-names
1114b381d7eSRohit kumar  - interrupts
1128e3fdc52SV Sujith Kumar Reddy  - interrupt-names
1134b381d7eSRohit kumar  - '#sound-dai-cells'
1144b381d7eSRohit kumar
11558ae9a2aSKrzysztof KozlowskiunevaluatedProperties: false
1164b381d7eSRohit kumar
1174b381d7eSRohit kumarallOf:
11858ae9a2aSKrzysztof Kozlowski  - $ref: dai-common.yaml#
1194b381d7eSRohit kumar  - if:
1204b381d7eSRohit kumar      properties:
1214b381d7eSRohit kumar        compatible:
1224b381d7eSRohit kumar          contains:
1234b381d7eSRohit kumar            const: qcom,lpass-cpu
1244b381d7eSRohit kumar
1254b381d7eSRohit kumar    then:
1264b381d7eSRohit kumar      properties:
127ffb2bbdfSKrzysztof Kozlowski        clocks:
128ffb2bbdfSKrzysztof Kozlowski          maxItems: 3
1294b381d7eSRohit kumar        clock-names:
1304b381d7eSRohit kumar          items:
1314b381d7eSRohit kumar            - const: ahbix-clk
1324b381d7eSRohit kumar            - const: mi2s-osr-clk
1334b381d7eSRohit kumar            - const: mi2s-bit-clk
1344b381d7eSRohit kumar
1354b381d7eSRohit kumar  - if:
1364b381d7eSRohit kumar      properties:
1374b381d7eSRohit kumar        compatible:
1384b381d7eSRohit kumar          contains:
1394b381d7eSRohit kumar            const: qcom,apq8016-lpass-cpu
1404b381d7eSRohit kumar
1414b381d7eSRohit kumar    then:
1424b381d7eSRohit kumar      properties:
143ffb2bbdfSKrzysztof Kozlowski        clocks:
144ffb2bbdfSKrzysztof Kozlowski          minItems: 7
145ffb2bbdfSKrzysztof Kozlowski          maxItems: 7
1464b381d7eSRohit kumar        clock-names:
1474b381d7eSRohit kumar          items:
1484b381d7eSRohit kumar            - const: ahbix-clk
1494b381d7eSRohit kumar            - const: mi2s-bit-clk0
1504b381d7eSRohit kumar            - const: mi2s-bit-clk1
1514b381d7eSRohit kumar            - const: mi2s-bit-clk2
1524b381d7eSRohit kumar            - const: mi2s-bit-clk3
1534b381d7eSRohit kumar            - const: pcnoc-mport-clk
1544b381d7eSRohit kumar            - const: pcnoc-sway-clk
1554b381d7eSRohit kumar
1564b381d7eSRohit kumar  - if:
1574b381d7eSRohit kumar      properties:
1584b381d7eSRohit kumar        compatible:
1594b381d7eSRohit kumar          contains:
1604b381d7eSRohit kumar            const: qcom,sc7180-lpass-cpu
1614b381d7eSRohit kumar
1624b381d7eSRohit kumar    then:
1634b381d7eSRohit kumar      properties:
164ffb2bbdfSKrzysztof Kozlowski        clocks:
165ffb2bbdfSKrzysztof Kozlowski          minItems: 6
166ffb2bbdfSKrzysztof Kozlowski          maxItems: 6
1674b381d7eSRohit kumar        clock-names:
168ffb2bbdfSKrzysztof Kozlowski          items:
1694b381d7eSRohit kumar            - const: pcnoc-sway-clk
1704b381d7eSRohit kumar            - const: audio-core
1714b381d7eSRohit kumar            - const: mclk0
1724b381d7eSRohit kumar            - const: pcnoc-mport-clk
1734b381d7eSRohit kumar            - const: mi2s-bit-clk0
1744b381d7eSRohit kumar            - const: mi2s-bit-clk1
175ffb2bbdfSKrzysztof Kozlowski        reg:
176ffb2bbdfSKrzysztof Kozlowski          minItems: 2
177ffb2bbdfSKrzysztof Kozlowski          maxItems: 2
1788e3fdc52SV Sujith Kumar Reddy        reg-names:
179ffb2bbdfSKrzysztof Kozlowski          items:
1808e3fdc52SV Sujith Kumar Reddy            - const: lpass-hdmiif
1818e3fdc52SV Sujith Kumar Reddy            - const: lpass-lpaif
182ffb2bbdfSKrzysztof Kozlowski        interrupts:
183ffb2bbdfSKrzysztof Kozlowski          minItems: 2
184ffb2bbdfSKrzysztof Kozlowski          maxItems: 2
1858e3fdc52SV Sujith Kumar Reddy        interrupt-names:
186ffb2bbdfSKrzysztof Kozlowski          items:
1878e3fdc52SV Sujith Kumar Reddy            - const: lpass-irq-lpaif
1888e3fdc52SV Sujith Kumar Reddy            - const: lpass-irq-hdmi
1894b381d7eSRohit kumar      required:
1904b381d7eSRohit kumar        - iommus
1914b381d7eSRohit kumar        - power-domains
1924b381d7eSRohit kumar
193f3fc4fbfSSrinivasa Rao Mandadapu  - if:
194f3fc4fbfSSrinivasa Rao Mandadapu      properties:
195f3fc4fbfSSrinivasa Rao Mandadapu        compatible:
196f3fc4fbfSSrinivasa Rao Mandadapu          contains:
197f3fc4fbfSSrinivasa Rao Mandadapu            const: qcom,sc7280-lpass-cpu
198f3fc4fbfSSrinivasa Rao Mandadapu
199f3fc4fbfSSrinivasa Rao Mandadapu    then:
200f3fc4fbfSSrinivasa Rao Mandadapu      properties:
201ffb2bbdfSKrzysztof Kozlowski        clocks:
202ffb2bbdfSKrzysztof Kozlowski          minItems: 10
203ffb2bbdfSKrzysztof Kozlowski          maxItems: 10
204f3fc4fbfSSrinivasa Rao Mandadapu        clock-names:
205ffb2bbdfSKrzysztof Kozlowski          items:
206f3fc4fbfSSrinivasa Rao Mandadapu            - const: aon_cc_audio_hm_h
20798b7630aSSrinivasa Rao Mandadapu            - const: audio_cc_ext_mclk0
208f3fc4fbfSSrinivasa Rao Mandadapu            - const: core_cc_sysnoc_mport_core
20998b7630aSSrinivasa Rao Mandadapu            - const: core_cc_ext_if0_ibit
210f3fc4fbfSSrinivasa Rao Mandadapu            - const: core_cc_ext_if1_ibit
21198b7630aSSrinivasa Rao Mandadapu            - const: audio_cc_codec_mem
212f3fc4fbfSSrinivasa Rao Mandadapu            - const: audio_cc_codec_mem0
213f3fc4fbfSSrinivasa Rao Mandadapu            - const: audio_cc_codec_mem1
214f3fc4fbfSSrinivasa Rao Mandadapu            - const: audio_cc_codec_mem2
21598b7630aSSrinivasa Rao Mandadapu            - const: aon_cc_va_mem0
216ffb2bbdfSKrzysztof Kozlowski        reg:
217ffb2bbdfSKrzysztof Kozlowski          minItems: 6
218ffb2bbdfSKrzysztof Kozlowski          maxItems: 6
219f3fc4fbfSSrinivasa Rao Mandadapu        reg-names:
220ffb2bbdfSKrzysztof Kozlowski          items:
221f3fc4fbfSSrinivasa Rao Mandadapu            - const: lpass-hdmiif
222f3fc4fbfSSrinivasa Rao Mandadapu            - const: lpass-lpaif
223f3fc4fbfSSrinivasa Rao Mandadapu            - const: lpass-rxtx-cdc-dma-lpm
224f3fc4fbfSSrinivasa Rao Mandadapu            - const: lpass-rxtx-lpaif
225f3fc4fbfSSrinivasa Rao Mandadapu            - const: lpass-va-lpaif
226f3fc4fbfSSrinivasa Rao Mandadapu            - const: lpass-va-cdc-dma-lpm
227ffb2bbdfSKrzysztof Kozlowski        interrupts:
228ffb2bbdfSKrzysztof Kozlowski          minItems: 4
229ffb2bbdfSKrzysztof Kozlowski          maxItems: 4
230f3fc4fbfSSrinivasa Rao Mandadapu        interrupt-names:
231ffb2bbdfSKrzysztof Kozlowski          items:
232f3fc4fbfSSrinivasa Rao Mandadapu            - const: lpass-irq-lpaif
233f3fc4fbfSSrinivasa Rao Mandadapu            - const: lpass-irq-hdmi
234f3fc4fbfSSrinivasa Rao Mandadapu            - const: lpass-irq-vaif
235f3fc4fbfSSrinivasa Rao Mandadapu            - const: lpass-irq-rxtxif
23698b7630aSSrinivasa Rao Mandadapu        power-domain-names:
237ffb2bbdfSKrzysztof Kozlowski          items:
23898b7630aSSrinivasa Rao Mandadapu            - const: lcx
239f3fc4fbfSSrinivasa Rao Mandadapu
240f3fc4fbfSSrinivasa Rao Mandadapu      required:
241f3fc4fbfSSrinivasa Rao Mandadapu        - iommus
242f3fc4fbfSSrinivasa Rao Mandadapu        - power-domains
243f3fc4fbfSSrinivasa Rao Mandadapu
2444b381d7eSRohit kumarexamples:
2454b381d7eSRohit kumar  - |
2464b381d7eSRohit kumar    #include <dt-bindings/sound/sc7180-lpass.h>
2474b381d7eSRohit kumar
2484b381d7eSRohit kumar    soc {
2494b381d7eSRohit kumar        #address-cells = <2>;
2504b381d7eSRohit kumar        #size-cells = <2>;
2518e3fdc52SV Sujith Kumar Reddy        lpass@62d80000 {
2524b381d7eSRohit kumar            compatible = "qcom,sc7180-lpass-cpu";
2534b381d7eSRohit kumar
2548e3fdc52SV Sujith Kumar Reddy            reg = <0 0x62d87000 0 0x68000>,
2558e3fdc52SV Sujith Kumar Reddy                  <0 0x62f00000 0 0x29000>;
2568e3fdc52SV Sujith Kumar Reddy            reg-names = "lpass-hdmiif",
2578e3fdc52SV Sujith Kumar Reddy                        "lpass-lpaif";
2588e3fdc52SV Sujith Kumar Reddy            iommus = <&apps_smmu 0x1020 0>,
2598e3fdc52SV Sujith Kumar Reddy                     <&apps_smmu 0x1032 0>;
2604b381d7eSRohit kumar            power-domains = <&lpass_hm 0>;
2614b381d7eSRohit kumar
2624b381d7eSRohit kumar            clocks = <&gcc 131>,
2634b381d7eSRohit kumar                 <&lpasscorecc 6>,
2644b381d7eSRohit kumar                 <&lpasscorecc 7>,
2654b381d7eSRohit kumar                 <&lpasscorecc 10>,
2664b381d7eSRohit kumar                 <&lpasscorecc 8>,
2674b381d7eSRohit kumar                 <&lpasscorecc 9>;
2684b381d7eSRohit kumar
2694b381d7eSRohit kumar            clock-names = "pcnoc-sway-clk", "audio-core",
2704b381d7eSRohit kumar                          "mclk0", "pcnoc-mport-clk",
2714b381d7eSRohit kumar                          "mi2s-bit-clk0", "mi2s-bit-clk1";
2724b381d7eSRohit kumar
2738e3fdc52SV Sujith Kumar Reddy            interrupts = <0 160 1>,
2748e3fdc52SV Sujith Kumar Reddy                         <0 268 1>;
2758e3fdc52SV Sujith Kumar Reddy            interrupt-names = "lpass-irq-lpaif",
2768e3fdc52SV Sujith Kumar Reddy                              "lpass-irq-hdmi";
2774b381d7eSRohit kumar            #sound-dai-cells = <1>;
2784b381d7eSRohit kumar
2794b381d7eSRohit kumar            #address-cells = <1>;
2804b381d7eSRohit kumar            #size-cells = <0>;
2814b381d7eSRohit kumar            /* Optional to set different MI2S SD lines */
2828e3fdc52SV Sujith Kumar Reddy            dai-link@0 {
2834b381d7eSRohit kumar                reg = <MI2S_PRIMARY>;
2844b381d7eSRohit kumar                qcom,playback-sd-lines = <1>;
2854b381d7eSRohit kumar                qcom,capture-sd-lines = <0>;
2864b381d7eSRohit kumar            };
2874b381d7eSRohit kumar        };
2884b381d7eSRohit kumar    };
2894b381d7eSRohit kumar
2904b381d7eSRohit kumar...
291