162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/sound/qcom,lpass-cpu.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Qualcomm Technologies Inc. LPASS CPU dai driver 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 1162306a36Sopenharmony_ci - Rohit kumar <quic_rohkumar@quicinc.com> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cidescription: | 1462306a36Sopenharmony_ci Qualcomm Technologies Inc. SOC Low-Power Audio SubSystem (LPASS) that consist 1562306a36Sopenharmony_ci of MI2S interface for audio data transfer on external codecs. LPASS cpu driver 1662306a36Sopenharmony_ci is a module to configure Low-Power Audio Interface(LPAIF) core registers 1762306a36Sopenharmony_ci across different IP versions. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciproperties: 2062306a36Sopenharmony_ci compatible: 2162306a36Sopenharmony_ci enum: 2262306a36Sopenharmony_ci - qcom,lpass-cpu 2362306a36Sopenharmony_ci - qcom,apq8016-lpass-cpu 2462306a36Sopenharmony_ci - qcom,sc7180-lpass-cpu 2562306a36Sopenharmony_ci - qcom,sc7280-lpass-cpu 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci reg: 2862306a36Sopenharmony_ci minItems: 1 2962306a36Sopenharmony_ci maxItems: 6 3062306a36Sopenharmony_ci description: LPAIF core registers 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci reg-names: 3362306a36Sopenharmony_ci minItems: 1 3462306a36Sopenharmony_ci maxItems: 6 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci clocks: 3762306a36Sopenharmony_ci minItems: 3 3862306a36Sopenharmony_ci maxItems: 10 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci clock-names: 4162306a36Sopenharmony_ci minItems: 1 4262306a36Sopenharmony_ci maxItems: 10 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci interrupts: 4562306a36Sopenharmony_ci minItems: 1 4662306a36Sopenharmony_ci maxItems: 4 4762306a36Sopenharmony_ci description: LPAIF DMA buffer interrupt 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci interrupt-names: 5062306a36Sopenharmony_ci minItems: 1 5162306a36Sopenharmony_ci maxItems: 4 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci qcom,adsp: 5462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/phandle 5562306a36Sopenharmony_ci description: Phandle for the audio DSP node 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci iommus: 5862306a36Sopenharmony_ci minItems: 2 5962306a36Sopenharmony_ci maxItems: 3 6062306a36Sopenharmony_ci description: Phandle to apps_smmu node with sid mask 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci power-domains: 6362306a36Sopenharmony_ci maxItems: 1 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci power-domain-names: 6662306a36Sopenharmony_ci maxItems: 1 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci required-opps: 6962306a36Sopenharmony_ci maxItems: 1 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci '#sound-dai-cells': 7262306a36Sopenharmony_ci const: 1 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci '#address-cells': 7562306a36Sopenharmony_ci const: 1 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci '#size-cells': 7862306a36Sopenharmony_ci const: 0 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_cipatternProperties: 8162306a36Sopenharmony_ci "^dai-link@[0-9a-f]+$": 8262306a36Sopenharmony_ci type: object 8362306a36Sopenharmony_ci description: | 8462306a36Sopenharmony_ci LPASS CPU dai node for each I2S device or Soundwire device. Bindings of each node 8562306a36Sopenharmony_ci depends on the specific driver providing the functionality and 8662306a36Sopenharmony_ci properties. 8762306a36Sopenharmony_ci properties: 8862306a36Sopenharmony_ci reg: 8962306a36Sopenharmony_ci maxItems: 1 9062306a36Sopenharmony_ci description: Must be one of the DAI ID 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci qcom,playback-sd-lines: 9362306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 9462306a36Sopenharmony_ci description: list of MI2S data lines for playback 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci qcom,capture-sd-lines: 9762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 9862306a36Sopenharmony_ci description: list of MI2S data lines for capture 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci required: 10162306a36Sopenharmony_ci - reg 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci additionalProperties: false 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_cirequired: 10662306a36Sopenharmony_ci - compatible 10762306a36Sopenharmony_ci - reg 10862306a36Sopenharmony_ci - reg-names 10962306a36Sopenharmony_ci - clocks 11062306a36Sopenharmony_ci - clock-names 11162306a36Sopenharmony_ci - interrupts 11262306a36Sopenharmony_ci - interrupt-names 11362306a36Sopenharmony_ci - '#sound-dai-cells' 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ciunevaluatedProperties: false 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ciallOf: 11862306a36Sopenharmony_ci - $ref: dai-common.yaml# 11962306a36Sopenharmony_ci - if: 12062306a36Sopenharmony_ci properties: 12162306a36Sopenharmony_ci compatible: 12262306a36Sopenharmony_ci contains: 12362306a36Sopenharmony_ci const: qcom,lpass-cpu 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci then: 12662306a36Sopenharmony_ci properties: 12762306a36Sopenharmony_ci clocks: 12862306a36Sopenharmony_ci maxItems: 3 12962306a36Sopenharmony_ci clock-names: 13062306a36Sopenharmony_ci items: 13162306a36Sopenharmony_ci - const: ahbix-clk 13262306a36Sopenharmony_ci - const: mi2s-osr-clk 13362306a36Sopenharmony_ci - const: mi2s-bit-clk 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci - if: 13662306a36Sopenharmony_ci properties: 13762306a36Sopenharmony_ci compatible: 13862306a36Sopenharmony_ci contains: 13962306a36Sopenharmony_ci const: qcom,apq8016-lpass-cpu 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci then: 14262306a36Sopenharmony_ci properties: 14362306a36Sopenharmony_ci clocks: 14462306a36Sopenharmony_ci minItems: 7 14562306a36Sopenharmony_ci maxItems: 7 14662306a36Sopenharmony_ci clock-names: 14762306a36Sopenharmony_ci items: 14862306a36Sopenharmony_ci - const: ahbix-clk 14962306a36Sopenharmony_ci - const: mi2s-bit-clk0 15062306a36Sopenharmony_ci - const: mi2s-bit-clk1 15162306a36Sopenharmony_ci - const: mi2s-bit-clk2 15262306a36Sopenharmony_ci - const: mi2s-bit-clk3 15362306a36Sopenharmony_ci - const: pcnoc-mport-clk 15462306a36Sopenharmony_ci - const: pcnoc-sway-clk 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci - if: 15762306a36Sopenharmony_ci properties: 15862306a36Sopenharmony_ci compatible: 15962306a36Sopenharmony_ci contains: 16062306a36Sopenharmony_ci const: qcom,sc7180-lpass-cpu 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci then: 16362306a36Sopenharmony_ci properties: 16462306a36Sopenharmony_ci clocks: 16562306a36Sopenharmony_ci minItems: 6 16662306a36Sopenharmony_ci maxItems: 6 16762306a36Sopenharmony_ci clock-names: 16862306a36Sopenharmony_ci items: 16962306a36Sopenharmony_ci - const: pcnoc-sway-clk 17062306a36Sopenharmony_ci - const: audio-core 17162306a36Sopenharmony_ci - const: mclk0 17262306a36Sopenharmony_ci - const: pcnoc-mport-clk 17362306a36Sopenharmony_ci - const: mi2s-bit-clk0 17462306a36Sopenharmony_ci - const: mi2s-bit-clk1 17562306a36Sopenharmony_ci reg: 17662306a36Sopenharmony_ci minItems: 2 17762306a36Sopenharmony_ci maxItems: 2 17862306a36Sopenharmony_ci reg-names: 17962306a36Sopenharmony_ci items: 18062306a36Sopenharmony_ci - const: lpass-hdmiif 18162306a36Sopenharmony_ci - const: lpass-lpaif 18262306a36Sopenharmony_ci interrupts: 18362306a36Sopenharmony_ci minItems: 2 18462306a36Sopenharmony_ci maxItems: 2 18562306a36Sopenharmony_ci interrupt-names: 18662306a36Sopenharmony_ci items: 18762306a36Sopenharmony_ci - const: lpass-irq-lpaif 18862306a36Sopenharmony_ci - const: lpass-irq-hdmi 18962306a36Sopenharmony_ci required: 19062306a36Sopenharmony_ci - iommus 19162306a36Sopenharmony_ci - power-domains 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_ci - if: 19462306a36Sopenharmony_ci properties: 19562306a36Sopenharmony_ci compatible: 19662306a36Sopenharmony_ci contains: 19762306a36Sopenharmony_ci const: qcom,sc7280-lpass-cpu 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci then: 20062306a36Sopenharmony_ci properties: 20162306a36Sopenharmony_ci clocks: 20262306a36Sopenharmony_ci minItems: 10 20362306a36Sopenharmony_ci maxItems: 10 20462306a36Sopenharmony_ci clock-names: 20562306a36Sopenharmony_ci items: 20662306a36Sopenharmony_ci - const: aon_cc_audio_hm_h 20762306a36Sopenharmony_ci - const: audio_cc_ext_mclk0 20862306a36Sopenharmony_ci - const: core_cc_sysnoc_mport_core 20962306a36Sopenharmony_ci - const: core_cc_ext_if0_ibit 21062306a36Sopenharmony_ci - const: core_cc_ext_if1_ibit 21162306a36Sopenharmony_ci - const: audio_cc_codec_mem 21262306a36Sopenharmony_ci - const: audio_cc_codec_mem0 21362306a36Sopenharmony_ci - const: audio_cc_codec_mem1 21462306a36Sopenharmony_ci - const: audio_cc_codec_mem2 21562306a36Sopenharmony_ci - const: aon_cc_va_mem0 21662306a36Sopenharmony_ci reg: 21762306a36Sopenharmony_ci minItems: 6 21862306a36Sopenharmony_ci maxItems: 6 21962306a36Sopenharmony_ci reg-names: 22062306a36Sopenharmony_ci items: 22162306a36Sopenharmony_ci - const: lpass-hdmiif 22262306a36Sopenharmony_ci - const: lpass-lpaif 22362306a36Sopenharmony_ci - const: lpass-rxtx-cdc-dma-lpm 22462306a36Sopenharmony_ci - const: lpass-rxtx-lpaif 22562306a36Sopenharmony_ci - const: lpass-va-lpaif 22662306a36Sopenharmony_ci - const: lpass-va-cdc-dma-lpm 22762306a36Sopenharmony_ci interrupts: 22862306a36Sopenharmony_ci minItems: 4 22962306a36Sopenharmony_ci maxItems: 4 23062306a36Sopenharmony_ci interrupt-names: 23162306a36Sopenharmony_ci items: 23262306a36Sopenharmony_ci - const: lpass-irq-lpaif 23362306a36Sopenharmony_ci - const: lpass-irq-hdmi 23462306a36Sopenharmony_ci - const: lpass-irq-vaif 23562306a36Sopenharmony_ci - const: lpass-irq-rxtxif 23662306a36Sopenharmony_ci power-domain-names: 23762306a36Sopenharmony_ci items: 23862306a36Sopenharmony_ci - const: lcx 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ci required: 24162306a36Sopenharmony_ci - iommus 24262306a36Sopenharmony_ci - power-domains 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ciexamples: 24562306a36Sopenharmony_ci - | 24662306a36Sopenharmony_ci #include <dt-bindings/sound/sc7180-lpass.h> 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ci soc { 24962306a36Sopenharmony_ci #address-cells = <2>; 25062306a36Sopenharmony_ci #size-cells = <2>; 25162306a36Sopenharmony_ci lpass@62d80000 { 25262306a36Sopenharmony_ci compatible = "qcom,sc7180-lpass-cpu"; 25362306a36Sopenharmony_ci 25462306a36Sopenharmony_ci reg = <0 0x62d87000 0 0x68000>, 25562306a36Sopenharmony_ci <0 0x62f00000 0 0x29000>; 25662306a36Sopenharmony_ci reg-names = "lpass-hdmiif", 25762306a36Sopenharmony_ci "lpass-lpaif"; 25862306a36Sopenharmony_ci iommus = <&apps_smmu 0x1020 0>, 25962306a36Sopenharmony_ci <&apps_smmu 0x1032 0>; 26062306a36Sopenharmony_ci power-domains = <&lpass_hm 0>; 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ci clocks = <&gcc 131>, 26362306a36Sopenharmony_ci <&lpasscorecc 6>, 26462306a36Sopenharmony_ci <&lpasscorecc 7>, 26562306a36Sopenharmony_ci <&lpasscorecc 10>, 26662306a36Sopenharmony_ci <&lpasscorecc 8>, 26762306a36Sopenharmony_ci <&lpasscorecc 9>; 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci clock-names = "pcnoc-sway-clk", "audio-core", 27062306a36Sopenharmony_ci "mclk0", "pcnoc-mport-clk", 27162306a36Sopenharmony_ci "mi2s-bit-clk0", "mi2s-bit-clk1"; 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci interrupts = <0 160 1>, 27462306a36Sopenharmony_ci <0 268 1>; 27562306a36Sopenharmony_ci interrupt-names = "lpass-irq-lpaif", 27662306a36Sopenharmony_ci "lpass-irq-hdmi"; 27762306a36Sopenharmony_ci #sound-dai-cells = <1>; 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ci #address-cells = <1>; 28062306a36Sopenharmony_ci #size-cells = <0>; 28162306a36Sopenharmony_ci /* Optional to set different MI2S SD lines */ 28262306a36Sopenharmony_ci dai-link@0 { 28362306a36Sopenharmony_ci reg = <MI2S_PRIMARY>; 28462306a36Sopenharmony_ci qcom,playback-sd-lines = <1>; 28562306a36Sopenharmony_ci qcom,capture-sd-lines = <0>; 28662306a36Sopenharmony_ci }; 28762306a36Sopenharmony_ci }; 28862306a36Sopenharmony_ci }; 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ci... 291