291 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/sound/qcom,lpass-cpu.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Qualcomm Technologies Inc. LPASS CPU dai driver8 9maintainers:10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>11 - Rohit kumar <quic_rohkumar@quicinc.com>12 13description: |14 Qualcomm Technologies Inc. SOC Low-Power Audio SubSystem (LPASS) that consist15 of MI2S interface for audio data transfer on external codecs. LPASS cpu driver16 is a module to configure Low-Power Audio Interface(LPAIF) core registers17 across different IP versions.18 19properties:20 compatible:21 enum:22 - qcom,lpass-cpu23 - qcom,apq8016-lpass-cpu24 - qcom,sc7180-lpass-cpu25 - qcom,sc7280-lpass-cpu26 27 reg:28 minItems: 129 maxItems: 630 description: LPAIF core registers31 32 reg-names:33 minItems: 134 maxItems: 635 36 clocks:37 minItems: 338 maxItems: 1039 40 clock-names:41 minItems: 142 maxItems: 1043 44 interrupts:45 minItems: 146 maxItems: 447 description: LPAIF DMA buffer interrupt48 49 interrupt-names:50 minItems: 151 maxItems: 452 53 qcom,adsp:54 $ref: /schemas/types.yaml#/definitions/phandle55 description: Phandle for the audio DSP node56 57 iommus:58 minItems: 259 maxItems: 360 description: Phandle to apps_smmu node with sid mask61 62 power-domains:63 maxItems: 164 65 power-domain-names:66 maxItems: 167 68 required-opps:69 maxItems: 170 71 '#sound-dai-cells':72 const: 173 74 '#address-cells':75 const: 176 77 '#size-cells':78 const: 079 80patternProperties:81 "^dai-link@[0-9a-f]+$":82 type: object83 description: |84 LPASS CPU dai node for each I2S device or Soundwire device. Bindings of each node85 depends on the specific driver providing the functionality and86 properties.87 properties:88 reg:89 maxItems: 190 description: Must be one of the DAI ID91 92 qcom,playback-sd-lines:93 $ref: /schemas/types.yaml#/definitions/uint32-array94 description: list of MI2S data lines for playback95 96 qcom,capture-sd-lines:97 $ref: /schemas/types.yaml#/definitions/uint32-array98 description: list of MI2S data lines for capture99 100 required:101 - reg102 103 additionalProperties: false104 105required:106 - compatible107 - reg108 - reg-names109 - clocks110 - clock-names111 - interrupts112 - interrupt-names113 - '#sound-dai-cells'114 115unevaluatedProperties: false116 117allOf:118 - $ref: dai-common.yaml#119 - if:120 properties:121 compatible:122 contains:123 const: qcom,lpass-cpu124 125 then:126 properties:127 clocks:128 maxItems: 3129 clock-names:130 items:131 - const: ahbix-clk132 - const: mi2s-osr-clk133 - const: mi2s-bit-clk134 135 - if:136 properties:137 compatible:138 contains:139 const: qcom,apq8016-lpass-cpu140 141 then:142 properties:143 clocks:144 minItems: 7145 maxItems: 7146 clock-names:147 items:148 - const: ahbix-clk149 - const: mi2s-bit-clk0150 - const: mi2s-bit-clk1151 - const: mi2s-bit-clk2152 - const: mi2s-bit-clk3153 - const: pcnoc-mport-clk154 - const: pcnoc-sway-clk155 156 - if:157 properties:158 compatible:159 contains:160 const: qcom,sc7180-lpass-cpu161 162 then:163 properties:164 clocks:165 minItems: 6166 maxItems: 6167 clock-names:168 items:169 - const: pcnoc-sway-clk170 - const: audio-core171 - const: mclk0172 - const: pcnoc-mport-clk173 - const: mi2s-bit-clk0174 - const: mi2s-bit-clk1175 reg:176 minItems: 2177 maxItems: 2178 reg-names:179 items:180 - const: lpass-hdmiif181 - const: lpass-lpaif182 interrupts:183 minItems: 2184 maxItems: 2185 interrupt-names:186 items:187 - const: lpass-irq-lpaif188 - const: lpass-irq-hdmi189 required:190 - iommus191 - power-domains192 193 - if:194 properties:195 compatible:196 contains:197 const: qcom,sc7280-lpass-cpu198 199 then:200 properties:201 clocks:202 minItems: 10203 maxItems: 10204 clock-names:205 items:206 - const: aon_cc_audio_hm_h207 - const: audio_cc_ext_mclk0208 - const: core_cc_sysnoc_mport_core209 - const: core_cc_ext_if0_ibit210 - const: core_cc_ext_if1_ibit211 - const: audio_cc_codec_mem212 - const: audio_cc_codec_mem0213 - const: audio_cc_codec_mem1214 - const: audio_cc_codec_mem2215 - const: aon_cc_va_mem0216 reg:217 minItems: 6218 maxItems: 6219 reg-names:220 items:221 - const: lpass-hdmiif222 - const: lpass-lpaif223 - const: lpass-rxtx-cdc-dma-lpm224 - const: lpass-rxtx-lpaif225 - const: lpass-va-lpaif226 - const: lpass-va-cdc-dma-lpm227 interrupts:228 minItems: 4229 maxItems: 4230 interrupt-names:231 items:232 - const: lpass-irq-lpaif233 - const: lpass-irq-hdmi234 - const: lpass-irq-vaif235 - const: lpass-irq-rxtxif236 power-domain-names:237 items:238 - const: lcx239 240 required:241 - iommus242 - power-domains243 244examples:245 - |246 #include <dt-bindings/sound/sc7180-lpass.h>247 248 soc {249 #address-cells = <2>;250 #size-cells = <2>;251 lpass@62d80000 {252 compatible = "qcom,sc7180-lpass-cpu";253 254 reg = <0 0x62d87000 0 0x68000>,255 <0 0x62f00000 0 0x29000>;256 reg-names = "lpass-hdmiif",257 "lpass-lpaif";258 iommus = <&apps_smmu 0x1020 0>,259 <&apps_smmu 0x1032 0>;260 power-domains = <&lpass_hm 0>;261 262 clocks = <&gcc 131>,263 <&lpasscorecc 6>,264 <&lpasscorecc 7>,265 <&lpasscorecc 10>,266 <&lpasscorecc 8>,267 <&lpasscorecc 9>;268 269 clock-names = "pcnoc-sway-clk", "audio-core",270 "mclk0", "pcnoc-mport-clk",271 "mi2s-bit-clk0", "mi2s-bit-clk1";272 273 interrupts = <0 160 1>,274 <0 268 1>;275 interrupt-names = "lpass-irq-lpaif",276 "lpass-irq-hdmi";277 #sound-dai-cells = <1>;278 279 #address-cells = <1>;280 #size-cells = <0>;281 /* Optional to set different MI2S SD lines */282 dai-link@0 {283 reg = <MI2S_PRIMARY>;284 qcom,playback-sd-lines = <1>;285 qcom,capture-sd-lines = <0>;286 };287 };288 };289 290...291