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 bindings 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 26 reg: 27 maxItems: 2 28 description: LPAIF core registers 29 reg-names: 30 maxItems: 2 31 clocks: 32 minItems: 3 33 maxItems: 6 34 35 clock-names: 36 minItems: 3 37 maxItems: 6 38 39 interrupts: 40 maxItems: 2 41 description: LPAIF DMA buffer interrupt 42 interrupt-names: 43 maxItems: 2 44 qcom,adsp: 45 $ref: /schemas/types.yaml#/definitions/phandle 46 description: Phandle for the audio DSP node 47 48 iommus: 49 maxItems: 2 50 description: Phandle to apps_smmu node with sid mask 51 52 power-domains: 53 maxItems: 1 54 55 '#sound-dai-cells': 56 const: 1 57 58 '#address-cells': 59 const: 1 60 61 '#size-cells': 62 const: 0 63 64patternProperties: 65 "^dai-link@[0-9a-f]$": 66 type: object 67 description: | 68 LPASS CPU dai node for each I2S device. Bindings of each node 69 depends on the specific driver providing the functionality and 70 properties. 71 properties: 72 reg: 73 maxItems: 1 74 description: Must be one of the DAI ID 75 76 qcom,playback-sd-lines: 77 $ref: /schemas/types.yaml#/definitions/uint32-array 78 description: list of MI2S data lines for playback 79 80 qcom,capture-sd-lines: 81 $ref: /schemas/types.yaml#/definitions/uint32-array 82 description: list of MI2S data lines for capture 83 84 required: 85 - reg 86 87 additionalProperties: false 88 89required: 90 - compatible 91 - reg 92 - reg-names 93 - clocks 94 - clock-names 95 - interrupts 96 - interrupt-names 97 - '#sound-dai-cells' 98 99additionalProperties: false 100 101allOf: 102 - if: 103 properties: 104 compatible: 105 contains: 106 const: qcom,lpass-cpu 107 108 then: 109 properties: 110 clock-names: 111 items: 112 - const: ahbix-clk 113 - const: mi2s-osr-clk 114 - const: mi2s-bit-clk 115 116 - if: 117 properties: 118 compatible: 119 contains: 120 const: qcom,apq8016-lpass-cpu 121 122 then: 123 properties: 124 clock-names: 125 items: 126 - const: ahbix-clk 127 - const: mi2s-bit-clk0 128 - const: mi2s-bit-clk1 129 - const: mi2s-bit-clk2 130 - const: mi2s-bit-clk3 131 - const: pcnoc-mport-clk 132 - const: pcnoc-sway-clk 133 134 - if: 135 properties: 136 compatible: 137 contains: 138 const: qcom,sc7180-lpass-cpu 139 140 then: 141 properties: 142 clock-names: 143 oneOf: 144 - items: #for I2S 145 - const: pcnoc-sway-clk 146 - const: audio-core 147 - const: mclk0 148 - const: pcnoc-mport-clk 149 - const: mi2s-bit-clk0 150 - const: mi2s-bit-clk1 151 - items: #for HDMI 152 - const: pcnoc-sway-clk 153 - const: audio-core 154 - const: pcnoc-mport-clk 155 reg-names: 156 anyOf: 157 - items: #for I2S 158 - const: lpass-lpaif 159 - items: #for I2S and HDMI 160 - const: lpass-hdmiif 161 - const: lpass-lpaif 162 interrupt-names: 163 anyOf: 164 - items: #for I2S 165 - const: lpass-irq-lpaif 166 - items: #for I2S and HDMI 167 - const: lpass-irq-lpaif 168 - const: lpass-irq-hdmi 169 required: 170 - iommus 171 - power-domains 172 173examples: 174 - | 175 #include <dt-bindings/sound/sc7180-lpass.h> 176 177 soc { 178 #address-cells = <2>; 179 #size-cells = <2>; 180 lpass@62d80000 { 181 compatible = "qcom,sc7180-lpass-cpu"; 182 183 reg = <0 0x62d87000 0 0x68000>, 184 <0 0x62f00000 0 0x29000>; 185 reg-names = "lpass-hdmiif", 186 "lpass-lpaif"; 187 iommus = <&apps_smmu 0x1020 0>, 188 <&apps_smmu 0x1032 0>; 189 power-domains = <&lpass_hm 0>; 190 191 clocks = <&gcc 131>, 192 <&lpasscorecc 6>, 193 <&lpasscorecc 7>, 194 <&lpasscorecc 10>, 195 <&lpasscorecc 8>, 196 <&lpasscorecc 9>; 197 198 clock-names = "pcnoc-sway-clk", "audio-core", 199 "mclk0", "pcnoc-mport-clk", 200 "mi2s-bit-clk0", "mi2s-bit-clk1"; 201 202 interrupts = <0 160 1>, 203 <0 268 1>; 204 interrupt-names = "lpass-irq-lpaif", 205 "lpass-irq-hdmi"; 206 #sound-dai-cells = <1>; 207 208 #address-cells = <1>; 209 #size-cells = <0>; 210 /* Optional to set different MI2S SD lines */ 211 dai-link@0 { 212 reg = <MI2S_PRIMARY>; 213 qcom,playback-sd-lines = <1>; 214 qcom,capture-sd-lines = <0>; 215 }; 216 }; 217 }; 218 219... 220