18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/sound/qcom,lpass-cpu.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Qualcomm Technologies Inc. LPASS CPU dai driver bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 118c2ecf20Sopenharmony_ci - Rohit kumar <rohitkr@codeaurora.org> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cidescription: | 148c2ecf20Sopenharmony_ci Qualcomm Technologies Inc. SOC Low-Power Audio SubSystem (LPASS) that consist 158c2ecf20Sopenharmony_ci of MI2S interface for audio data transfer on external codecs. LPASS cpu driver 168c2ecf20Sopenharmony_ci is a module to configure Low-Power Audio Interface(LPAIF) core registers 178c2ecf20Sopenharmony_ci across different IP versions. 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ciproperties: 208c2ecf20Sopenharmony_ci compatible: 218c2ecf20Sopenharmony_ci enum: 228c2ecf20Sopenharmony_ci - qcom,lpass-cpu 238c2ecf20Sopenharmony_ci - qcom,apq8016-lpass-cpu 248c2ecf20Sopenharmony_ci - qcom,sc7180-lpass-cpu 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci reg: 278c2ecf20Sopenharmony_ci maxItems: 2 288c2ecf20Sopenharmony_ci description: LPAIF core registers 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci reg-names: 318c2ecf20Sopenharmony_ci maxItems: 2 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci clocks: 348c2ecf20Sopenharmony_ci minItems: 3 358c2ecf20Sopenharmony_ci maxItems: 6 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci clock-names: 388c2ecf20Sopenharmony_ci minItems: 3 398c2ecf20Sopenharmony_ci maxItems: 6 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci interrupts: 428c2ecf20Sopenharmony_ci maxItems: 2 438c2ecf20Sopenharmony_ci description: LPAIF DMA buffer interrupt 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci interrupt-names: 468c2ecf20Sopenharmony_ci maxItems: 2 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci qcom,adsp: 498c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/phandle 508c2ecf20Sopenharmony_ci description: Phandle for the audio DSP node 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci iommus: 538c2ecf20Sopenharmony_ci maxItems: 2 548c2ecf20Sopenharmony_ci description: Phandle to apps_smmu node with sid mask 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci power-domains: 578c2ecf20Sopenharmony_ci maxItems: 1 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci '#sound-dai-cells': 608c2ecf20Sopenharmony_ci const: 1 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci '#address-cells': 638c2ecf20Sopenharmony_ci const: 1 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci '#size-cells': 668c2ecf20Sopenharmony_ci const: 0 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_cipatternProperties: 698c2ecf20Sopenharmony_ci "^dai-link@[0-9a-f]$": 708c2ecf20Sopenharmony_ci type: object 718c2ecf20Sopenharmony_ci description: | 728c2ecf20Sopenharmony_ci LPASS CPU dai node for each I2S device. Bindings of each node 738c2ecf20Sopenharmony_ci depends on the specific driver providing the functionality and 748c2ecf20Sopenharmony_ci properties. 758c2ecf20Sopenharmony_ci properties: 768c2ecf20Sopenharmony_ci reg: 778c2ecf20Sopenharmony_ci maxItems: 1 788c2ecf20Sopenharmony_ci description: Must be one of the DAI ID 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci qcom,playback-sd-lines: 818c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 828c2ecf20Sopenharmony_ci description: list of MI2S data lines for playback 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci qcom,capture-sd-lines: 858c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 868c2ecf20Sopenharmony_ci description: list of MI2S data lines for capture 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci required: 898c2ecf20Sopenharmony_ci - reg 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci additionalProperties: false 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_cirequired: 948c2ecf20Sopenharmony_ci - compatible 958c2ecf20Sopenharmony_ci - reg 968c2ecf20Sopenharmony_ci - reg-names 978c2ecf20Sopenharmony_ci - clocks 988c2ecf20Sopenharmony_ci - clock-names 998c2ecf20Sopenharmony_ci - interrupts 1008c2ecf20Sopenharmony_ci - interrupt-names 1018c2ecf20Sopenharmony_ci - '#sound-dai-cells' 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ciadditionalProperties: false 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ciallOf: 1068c2ecf20Sopenharmony_ci - if: 1078c2ecf20Sopenharmony_ci properties: 1088c2ecf20Sopenharmony_ci compatible: 1098c2ecf20Sopenharmony_ci contains: 1108c2ecf20Sopenharmony_ci const: qcom,lpass-cpu 1118c2ecf20Sopenharmony_ci 1128c2ecf20Sopenharmony_ci then: 1138c2ecf20Sopenharmony_ci properties: 1148c2ecf20Sopenharmony_ci clock-names: 1158c2ecf20Sopenharmony_ci items: 1168c2ecf20Sopenharmony_ci - const: ahbix-clk 1178c2ecf20Sopenharmony_ci - const: mi2s-osr-clk 1188c2ecf20Sopenharmony_ci - const: mi2s-bit-clk 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci - if: 1218c2ecf20Sopenharmony_ci properties: 1228c2ecf20Sopenharmony_ci compatible: 1238c2ecf20Sopenharmony_ci contains: 1248c2ecf20Sopenharmony_ci const: qcom,apq8016-lpass-cpu 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci then: 1278c2ecf20Sopenharmony_ci properties: 1288c2ecf20Sopenharmony_ci clock-names: 1298c2ecf20Sopenharmony_ci items: 1308c2ecf20Sopenharmony_ci - const: ahbix-clk 1318c2ecf20Sopenharmony_ci - const: mi2s-bit-clk0 1328c2ecf20Sopenharmony_ci - const: mi2s-bit-clk1 1338c2ecf20Sopenharmony_ci - const: mi2s-bit-clk2 1348c2ecf20Sopenharmony_ci - const: mi2s-bit-clk3 1358c2ecf20Sopenharmony_ci - const: pcnoc-mport-clk 1368c2ecf20Sopenharmony_ci - const: pcnoc-sway-clk 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci - if: 1398c2ecf20Sopenharmony_ci properties: 1408c2ecf20Sopenharmony_ci compatible: 1418c2ecf20Sopenharmony_ci contains: 1428c2ecf20Sopenharmony_ci const: qcom,sc7180-lpass-cpu 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci then: 1458c2ecf20Sopenharmony_ci properties: 1468c2ecf20Sopenharmony_ci clock-names: 1478c2ecf20Sopenharmony_ci oneOf: 1488c2ecf20Sopenharmony_ci - items: #for I2S 1498c2ecf20Sopenharmony_ci - const: pcnoc-sway-clk 1508c2ecf20Sopenharmony_ci - const: audio-core 1518c2ecf20Sopenharmony_ci - const: mclk0 1528c2ecf20Sopenharmony_ci - const: pcnoc-mport-clk 1538c2ecf20Sopenharmony_ci - const: mi2s-bit-clk0 1548c2ecf20Sopenharmony_ci - const: mi2s-bit-clk1 1558c2ecf20Sopenharmony_ci - items: #for HDMI 1568c2ecf20Sopenharmony_ci - const: pcnoc-sway-clk 1578c2ecf20Sopenharmony_ci - const: audio-core 1588c2ecf20Sopenharmony_ci - const: pcnoc-mport-clk 1598c2ecf20Sopenharmony_ci reg-names: 1608c2ecf20Sopenharmony_ci anyOf: 1618c2ecf20Sopenharmony_ci - items: #for I2S 1628c2ecf20Sopenharmony_ci - const: lpass-lpaif 1638c2ecf20Sopenharmony_ci - items: #for I2S and HDMI 1648c2ecf20Sopenharmony_ci - const: lpass-hdmiif 1658c2ecf20Sopenharmony_ci - const: lpass-lpaif 1668c2ecf20Sopenharmony_ci interrupt-names: 1678c2ecf20Sopenharmony_ci anyOf: 1688c2ecf20Sopenharmony_ci - items: #for I2S 1698c2ecf20Sopenharmony_ci - const: lpass-irq-lpaif 1708c2ecf20Sopenharmony_ci - items: #for I2S and HDMI 1718c2ecf20Sopenharmony_ci - const: lpass-irq-lpaif 1728c2ecf20Sopenharmony_ci - const: lpass-irq-hdmi 1738c2ecf20Sopenharmony_ci required: 1748c2ecf20Sopenharmony_ci - iommus 1758c2ecf20Sopenharmony_ci - power-domains 1768c2ecf20Sopenharmony_ci 1778c2ecf20Sopenharmony_ciexamples: 1788c2ecf20Sopenharmony_ci - | 1798c2ecf20Sopenharmony_ci #include <dt-bindings/sound/sc7180-lpass.h> 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci soc { 1828c2ecf20Sopenharmony_ci #address-cells = <2>; 1838c2ecf20Sopenharmony_ci #size-cells = <2>; 1848c2ecf20Sopenharmony_ci lpass@62d80000 { 1858c2ecf20Sopenharmony_ci compatible = "qcom,sc7180-lpass-cpu"; 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ci reg = <0 0x62d87000 0 0x68000>, 1888c2ecf20Sopenharmony_ci <0 0x62f00000 0 0x29000>; 1898c2ecf20Sopenharmony_ci reg-names = "lpass-hdmiif", 1908c2ecf20Sopenharmony_ci "lpass-lpaif"; 1918c2ecf20Sopenharmony_ci iommus = <&apps_smmu 0x1020 0>, 1928c2ecf20Sopenharmony_ci <&apps_smmu 0x1032 0>; 1938c2ecf20Sopenharmony_ci power-domains = <&lpass_hm 0>; 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci clocks = <&gcc 131>, 1968c2ecf20Sopenharmony_ci <&lpasscorecc 6>, 1978c2ecf20Sopenharmony_ci <&lpasscorecc 7>, 1988c2ecf20Sopenharmony_ci <&lpasscorecc 10>, 1998c2ecf20Sopenharmony_ci <&lpasscorecc 8>, 2008c2ecf20Sopenharmony_ci <&lpasscorecc 9>; 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci clock-names = "pcnoc-sway-clk", "audio-core", 2038c2ecf20Sopenharmony_ci "mclk0", "pcnoc-mport-clk", 2048c2ecf20Sopenharmony_ci "mi2s-bit-clk0", "mi2s-bit-clk1"; 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ci interrupts = <0 160 1>, 2078c2ecf20Sopenharmony_ci <0 268 1>; 2088c2ecf20Sopenharmony_ci interrupt-names = "lpass-irq-lpaif", 2098c2ecf20Sopenharmony_ci "lpass-irq-hdmi"; 2108c2ecf20Sopenharmony_ci #sound-dai-cells = <1>; 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci #address-cells = <1>; 2138c2ecf20Sopenharmony_ci #size-cells = <0>; 2148c2ecf20Sopenharmony_ci /* Optional to set different MI2S SD lines */ 2158c2ecf20Sopenharmony_ci dai-link@0 { 2168c2ecf20Sopenharmony_ci reg = <MI2S_PRIMARY>; 2178c2ecf20Sopenharmony_ci qcom,playback-sd-lines = <1>; 2188c2ecf20Sopenharmony_ci qcom,capture-sd-lines = <0>; 2198c2ecf20Sopenharmony_ci }; 2208c2ecf20Sopenharmony_ci }; 2218c2ecf20Sopenharmony_ci }; 2228c2ecf20Sopenharmony_ci 2238c2ecf20Sopenharmony_ci... 224