1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 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 driver 8 9maintainers: 10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 11 - Rohit kumar <rohitkr@codeaurora.org> 12 13description: | 14 Qualcomm Technologies Inc. SOC Low-Power Audio SubSystem (LPASS) that consist 15 of MI2S interface for audio data transfer on external codecs. LPASS cpu driver 16 is a module to configure Low-Power Audio Interface(LPAIF) core registers 17 across different IP versions. 18 19properties: 20 compatible: 21 enum: 22 - qcom,lpass-cpu 23 - qcom,apq8016-lpass-cpu 24 - qcom,sc7180-lpass-cpu 25 - qcom,sc7280-lpass-cpu 26 27 reg: 28 minItems: 1 29 maxItems: 6 30 description: LPAIF core registers 31 32 reg-names: 33 minItems: 1 34 maxItems: 6 35 36 clocks: 37 minItems: 3 38 maxItems: 10 39 40 clock-names: 41 minItems: 1 42 maxItems: 10 43 44 interrupts: 45 minItems: 1 46 maxItems: 4 47 description: LPAIF DMA buffer interrupt 48 49 interrupt-names: 50 minItems: 1 51 maxItems: 4 52 53 qcom,adsp: 54 $ref: /schemas/types.yaml#/definitions/phandle 55 description: Phandle for the audio DSP node 56 57 iommus: 58 minItems: 2 59 maxItems: 3 60 description: Phandle to apps_smmu node with sid mask 61 62 power-domains: 63 maxItems: 1 64 65 power-domain-names: 66 maxItems: 1 67 68 required-opps: 69 maxItems: 1 70 71 '#sound-dai-cells': 72 const: 1 73 74 '#address-cells': 75 const: 1 76 77 '#size-cells': 78 const: 0 79 80patternProperties: 81 "^dai-link@[0-9a-f]+$": 82 type: object 83 description: | 84 LPASS CPU dai node for each I2S device or Soundwire device. Bindings of each node 85 depends on the specific driver providing the functionality and 86 properties. 87 properties: 88 reg: 89 maxItems: 1 90 description: Must be one of the DAI ID 91 92 qcom,playback-sd-lines: 93 $ref: /schemas/types.yaml#/definitions/uint32-array 94 description: list of MI2S data lines for playback 95 96 qcom,capture-sd-lines: 97 $ref: /schemas/types.yaml#/definitions/uint32-array 98 description: list of MI2S data lines for capture 99 100 required: 101 - reg 102 103 additionalProperties: false 104 105required: 106 - compatible 107 - reg 108 - reg-names 109 - clocks 110 - clock-names 111 - interrupts 112 - interrupt-names 113 - '#sound-dai-cells' 114 115unevaluatedProperties: false 116 117allOf: 118 - $ref: dai-common.yaml# 119 - if: 120 properties: 121 compatible: 122 contains: 123 const: qcom,lpass-cpu 124 125 then: 126 properties: 127 clocks: 128 maxItems: 3 129 clock-names: 130 items: 131 - const: ahbix-clk 132 - const: mi2s-osr-clk 133 - const: mi2s-bit-clk 134 135 - if: 136 properties: 137 compatible: 138 contains: 139 const: qcom,apq8016-lpass-cpu 140 141 then: 142 properties: 143 clocks: 144 minItems: 7 145 maxItems: 7 146 clock-names: 147 items: 148 - const: ahbix-clk 149 - const: mi2s-bit-clk0 150 - const: mi2s-bit-clk1 151 - const: mi2s-bit-clk2 152 - const: mi2s-bit-clk3 153 - const: pcnoc-mport-clk 154 - const: pcnoc-sway-clk 155 156 - if: 157 properties: 158 compatible: 159 contains: 160 const: qcom,sc7180-lpass-cpu 161 162 then: 163 properties: 164 clocks: 165 minItems: 6 166 maxItems: 6 167 clock-names: 168 items: 169 - const: pcnoc-sway-clk 170 - const: audio-core 171 - const: mclk0 172 - const: pcnoc-mport-clk 173 - const: mi2s-bit-clk0 174 - const: mi2s-bit-clk1 175 reg: 176 minItems: 2 177 maxItems: 2 178 reg-names: 179 items: 180 - const: lpass-hdmiif 181 - const: lpass-lpaif 182 interrupts: 183 minItems: 2 184 maxItems: 2 185 interrupt-names: 186 items: 187 - const: lpass-irq-lpaif 188 - const: lpass-irq-hdmi 189 required: 190 - iommus 191 - power-domains 192 193 - if: 194 properties: 195 compatible: 196 contains: 197 const: qcom,sc7280-lpass-cpu 198 199 then: 200 properties: 201 clocks: 202 minItems: 10 203 maxItems: 10 204 clock-names: 205 items: 206 - const: aon_cc_audio_hm_h 207 - const: audio_cc_ext_mclk0 208 - const: core_cc_sysnoc_mport_core 209 - const: core_cc_ext_if0_ibit 210 - const: core_cc_ext_if1_ibit 211 - const: audio_cc_codec_mem 212 - const: audio_cc_codec_mem0 213 - const: audio_cc_codec_mem1 214 - const: audio_cc_codec_mem2 215 - const: aon_cc_va_mem0 216 reg: 217 minItems: 6 218 maxItems: 6 219 reg-names: 220 items: 221 - const: lpass-hdmiif 222 - const: lpass-lpaif 223 - const: lpass-rxtx-cdc-dma-lpm 224 - const: lpass-rxtx-lpaif 225 - const: lpass-va-lpaif 226 - const: lpass-va-cdc-dma-lpm 227 interrupts: 228 minItems: 4 229 maxItems: 4 230 interrupt-names: 231 items: 232 - const: lpass-irq-lpaif 233 - const: lpass-irq-hdmi 234 - const: lpass-irq-vaif 235 - const: lpass-irq-rxtxif 236 power-domain-names: 237 items: 238 - const: lcx 239 240 required: 241 - iommus 242 - power-domains 243 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