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: 7 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 '#sound-dai-cells': 69 const: 1 70 71 '#address-cells': 72 const: 1 73 74 '#size-cells': 75 const: 0 76 77patternProperties: 78 "^dai-link@[0-9a-f]$": 79 type: object 80 description: | 81 LPASS CPU dai node for each I2S device or Soundwire device. Bindings of each node 82 depends on the specific driver providing the functionality and 83 properties. 84 properties: 85 reg: 86 maxItems: 1 87 description: Must be one of the DAI ID 88 89 qcom,playback-sd-lines: 90 $ref: /schemas/types.yaml#/definitions/uint32-array 91 description: list of MI2S data lines for playback 92 93 qcom,capture-sd-lines: 94 $ref: /schemas/types.yaml#/definitions/uint32-array 95 description: list of MI2S data lines for capture 96 97 required: 98 - reg 99 100 additionalProperties: false 101 102required: 103 - compatible 104 - reg 105 - reg-names 106 - clocks 107 - clock-names 108 - interrupts 109 - interrupt-names 110 - '#sound-dai-cells' 111 112unevaluatedProperties: false 113 114allOf: 115 - $ref: dai-common.yaml# 116 - if: 117 properties: 118 compatible: 119 contains: 120 const: qcom,lpass-cpu 121 122 then: 123 properties: 124 clock-names: 125 items: 126 - const: ahbix-clk 127 - const: mi2s-osr-clk 128 - const: mi2s-bit-clk 129 130 - if: 131 properties: 132 compatible: 133 contains: 134 const: qcom,apq8016-lpass-cpu 135 136 then: 137 properties: 138 clock-names: 139 items: 140 - const: ahbix-clk 141 - const: mi2s-bit-clk0 142 - const: mi2s-bit-clk1 143 - const: mi2s-bit-clk2 144 - const: mi2s-bit-clk3 145 - const: pcnoc-mport-clk 146 - const: pcnoc-sway-clk 147 148 - if: 149 properties: 150 compatible: 151 contains: 152 const: qcom,sc7180-lpass-cpu 153 154 then: 155 properties: 156 clock-names: 157 oneOf: 158 - items: #for I2S 159 - const: pcnoc-sway-clk 160 - const: audio-core 161 - const: mclk0 162 - const: pcnoc-mport-clk 163 - const: mi2s-bit-clk0 164 - const: mi2s-bit-clk1 165 - items: #for HDMI 166 - const: pcnoc-sway-clk 167 - const: audio-core 168 - const: pcnoc-mport-clk 169 reg-names: 170 anyOf: 171 - items: #for I2S 172 - const: lpass-lpaif 173 - items: #for I2S and HDMI 174 - const: lpass-hdmiif 175 - const: lpass-lpaif 176 interrupt-names: 177 anyOf: 178 - items: #for I2S 179 - const: lpass-irq-lpaif 180 - items: #for I2S and HDMI 181 - const: lpass-irq-lpaif 182 - const: lpass-irq-hdmi 183 required: 184 - iommus 185 - power-domains 186 187 - if: 188 properties: 189 compatible: 190 contains: 191 const: qcom,sc7280-lpass-cpu 192 193 then: 194 properties: 195 clock-names: 196 oneOf: 197 - items: #for I2S 198 - const: aon_cc_audio_hm_h 199 - const: audio_cc_ext_mclk0 200 - const: core_cc_sysnoc_mport_core 201 - const: core_cc_ext_if0_ibit 202 - const: core_cc_ext_if1_ibit 203 - items: #for Soundwire 204 - const: aon_cc_audio_hm_h 205 - const: audio_cc_codec_mem 206 - const: audio_cc_codec_mem0 207 - const: audio_cc_codec_mem1 208 - const: audio_cc_codec_mem2 209 - const: aon_cc_va_mem0 210 - items: #for HDMI 211 - const: core_cc_sysnoc_mport_core 212 213 reg-names: 214 anyOf: 215 - items: #for I2S 216 - const: lpass-lpaif 217 - items: #for I2S and HDMI 218 - const: lpass-hdmiif 219 - const: lpass-lpaif 220 - items: #for I2S, soundwire and HDMI 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 interrupt-names: 228 anyOf: 229 - items: #for I2S 230 - const: lpass-irq-lpaif 231 - items: #for I2S and HDMI 232 - const: lpass-irq-lpaif 233 - const: lpass-irq-hdmi 234 - items: #for I2S, soundwire and HDMI 235 - const: lpass-irq-lpaif 236 - const: lpass-irq-hdmi 237 - const: lpass-irq-vaif 238 - const: lpass-irq-rxtxif 239 power-domain-names: 240 allOf: 241 - items: 242 - const: lcx 243 244 required: 245 - iommus 246 - power-domains 247 248examples: 249 - | 250 #include <dt-bindings/sound/sc7180-lpass.h> 251 252 soc { 253 #address-cells = <2>; 254 #size-cells = <2>; 255 lpass@62d80000 { 256 compatible = "qcom,sc7180-lpass-cpu"; 257 258 reg = <0 0x62d87000 0 0x68000>, 259 <0 0x62f00000 0 0x29000>; 260 reg-names = "lpass-hdmiif", 261 "lpass-lpaif"; 262 iommus = <&apps_smmu 0x1020 0>, 263 <&apps_smmu 0x1032 0>; 264 power-domains = <&lpass_hm 0>; 265 266 clocks = <&gcc 131>, 267 <&lpasscorecc 6>, 268 <&lpasscorecc 7>, 269 <&lpasscorecc 10>, 270 <&lpasscorecc 8>, 271 <&lpasscorecc 9>; 272 273 clock-names = "pcnoc-sway-clk", "audio-core", 274 "mclk0", "pcnoc-mport-clk", 275 "mi2s-bit-clk0", "mi2s-bit-clk1"; 276 277 interrupts = <0 160 1>, 278 <0 268 1>; 279 interrupt-names = "lpass-irq-lpaif", 280 "lpass-irq-hdmi"; 281 #sound-dai-cells = <1>; 282 283 #address-cells = <1>; 284 #size-cells = <0>; 285 /* Optional to set different MI2S SD lines */ 286 dai-link@0 { 287 reg = <MI2S_PRIMARY>; 288 qcom,playback-sd-lines = <1>; 289 qcom,capture-sd-lines = <0>; 290 }; 291 }; 292 }; 293 294... 295