File Index
Files and directories
Sign in
FILE

qcom,lpass-cpu.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/sound/qcom,lpass-cpu.yaml YAML
  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 <quic_rohkumar@quicinc.com>
 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...
~/ Read-only file preview.