xref: /freebsd/sys/contrib/device-tree/Bindings/sound/qcom,lpass-tx-macro.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
15def4c47SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25def4c47SEmmanuel Vadot%YAML 1.2
35def4c47SEmmanuel Vadot---
45def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/sound/qcom,lpass-tx-macro.yaml#
55def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65def4c47SEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: LPASS(Low Power Audio Subsystem) TX Macro audio codec
85def4c47SEmmanuel Vadot
95def4c47SEmmanuel Vadotmaintainers:
105def4c47SEmmanuel Vadot  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
115def4c47SEmmanuel Vadot
125def4c47SEmmanuel Vadotproperties:
135def4c47SEmmanuel Vadot  compatible:
14*8d13bc63SEmmanuel Vadot    oneOf:
15*8d13bc63SEmmanuel Vadot      - enum:
168cc087a1SEmmanuel Vadot          - qcom,sc7280-lpass-tx-macro
1784943d6fSEmmanuel Vadot          - qcom,sm6115-lpass-tx-macro
188cc087a1SEmmanuel Vadot          - qcom,sm8250-lpass-tx-macro
197ef62cebSEmmanuel Vadot          - qcom,sm8450-lpass-tx-macro
20fac71e4eSEmmanuel Vadot          - qcom,sm8550-lpass-tx-macro
217ef62cebSEmmanuel Vadot          - qcom,sc8280xp-lpass-tx-macro
22*8d13bc63SEmmanuel Vadot      - items:
23*8d13bc63SEmmanuel Vadot          - enum:
24*8d13bc63SEmmanuel Vadot              - qcom,sm8650-lpass-tx-macro
25*8d13bc63SEmmanuel Vadot              - qcom,x1e80100-lpass-tx-macro
26*8d13bc63SEmmanuel Vadot          - const: qcom,sm8550-lpass-tx-macro
275def4c47SEmmanuel Vadot
285def4c47SEmmanuel Vadot  reg:
295def4c47SEmmanuel Vadot    maxItems: 1
305def4c47SEmmanuel Vadot
315def4c47SEmmanuel Vadot  "#sound-dai-cells":
325def4c47SEmmanuel Vadot    const: 1
335def4c47SEmmanuel Vadot
345def4c47SEmmanuel Vadot  '#clock-cells':
355def4c47SEmmanuel Vadot    const: 0
365def4c47SEmmanuel Vadot
375def4c47SEmmanuel Vadot  clocks:
38fac71e4eSEmmanuel Vadot    minItems: 3
39fac71e4eSEmmanuel Vadot    maxItems: 5
405def4c47SEmmanuel Vadot
415def4c47SEmmanuel Vadot  clock-names:
42fac71e4eSEmmanuel Vadot    minItems: 3
43fac71e4eSEmmanuel Vadot    maxItems: 5
445def4c47SEmmanuel Vadot
455def4c47SEmmanuel Vadot  clock-output-names:
468bab661aSEmmanuel Vadot    maxItems: 1
475def4c47SEmmanuel Vadot
48c9ccf3a3SEmmanuel Vadot  power-domains:
49c9ccf3a3SEmmanuel Vadot    maxItems: 2
50c9ccf3a3SEmmanuel Vadot
51c9ccf3a3SEmmanuel Vadot  power-domain-names:
52c9ccf3a3SEmmanuel Vadot    items:
53c9ccf3a3SEmmanuel Vadot      - const: macro
54c9ccf3a3SEmmanuel Vadot      - const: dcodec
55c9ccf3a3SEmmanuel Vadot
565def4c47SEmmanuel Vadot  qcom,dmic-sample-rate:
575def4c47SEmmanuel Vadot    description: dmic sample rate
585def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
595def4c47SEmmanuel Vadot
605def4c47SEmmanuel Vadotrequired:
615def4c47SEmmanuel Vadot  - compatible
625def4c47SEmmanuel Vadot  - reg
635def4c47SEmmanuel Vadot  - "#sound-dai-cells"
645def4c47SEmmanuel Vadot
65fac71e4eSEmmanuel VadotallOf:
66fac71e4eSEmmanuel Vadot  - $ref: dai-common.yaml#
67fac71e4eSEmmanuel Vadot  - if:
68fac71e4eSEmmanuel Vadot      properties:
69fac71e4eSEmmanuel Vadot        compatible:
70fac71e4eSEmmanuel Vadot          enum:
71fac71e4eSEmmanuel Vadot            - qcom,sc7280-lpass-tx-macro
72fac71e4eSEmmanuel Vadot    then:
73fac71e4eSEmmanuel Vadot      properties:
74fac71e4eSEmmanuel Vadot        clock-names:
75fac71e4eSEmmanuel Vadot          oneOf:
76fac71e4eSEmmanuel Vadot            - items:   # for ADSP based platforms
77fac71e4eSEmmanuel Vadot                - const: mclk
78fac71e4eSEmmanuel Vadot                - const: npl
79fac71e4eSEmmanuel Vadot                - const: macro
80fac71e4eSEmmanuel Vadot                - const: dcodec
81fac71e4eSEmmanuel Vadot                - const: fsgen
82fac71e4eSEmmanuel Vadot            - items:   # for ADSP bypass based platforms
83fac71e4eSEmmanuel Vadot                - const: mclk
84fac71e4eSEmmanuel Vadot                - const: npl
85fac71e4eSEmmanuel Vadot                - const: fsgen
86fac71e4eSEmmanuel Vadot
87fac71e4eSEmmanuel Vadot  - if:
88fac71e4eSEmmanuel Vadot      properties:
89fac71e4eSEmmanuel Vadot        compatible:
90fac71e4eSEmmanuel Vadot          enum:
91fac71e4eSEmmanuel Vadot            - qcom,sc8280xp-lpass-tx-macro
92fac71e4eSEmmanuel Vadot            - qcom,sm8250-lpass-tx-macro
93fac71e4eSEmmanuel Vadot            - qcom,sm8450-lpass-tx-macro
94fac71e4eSEmmanuel Vadot    then:
95fac71e4eSEmmanuel Vadot      properties:
96fac71e4eSEmmanuel Vadot        clocks:
97fac71e4eSEmmanuel Vadot          minItems: 5
98fac71e4eSEmmanuel Vadot          maxItems: 5
99fac71e4eSEmmanuel Vadot        clock-names:
100fac71e4eSEmmanuel Vadot          items:
101fac71e4eSEmmanuel Vadot            - const: mclk
102fac71e4eSEmmanuel Vadot            - const: npl
103fac71e4eSEmmanuel Vadot            - const: macro
104fac71e4eSEmmanuel Vadot            - const: dcodec
105fac71e4eSEmmanuel Vadot            - const: fsgen
106fac71e4eSEmmanuel Vadot
107fac71e4eSEmmanuel Vadot  - if:
108fac71e4eSEmmanuel Vadot      properties:
109fac71e4eSEmmanuel Vadot        compatible:
110fac71e4eSEmmanuel Vadot          enum:
11184943d6fSEmmanuel Vadot            - qcom,sm6115-lpass-tx-macro
11284943d6fSEmmanuel Vadot    then:
11384943d6fSEmmanuel Vadot      properties:
11484943d6fSEmmanuel Vadot        clocks:
11584943d6fSEmmanuel Vadot          minItems: 4
11684943d6fSEmmanuel Vadot          maxItems: 4
11784943d6fSEmmanuel Vadot        clock-names:
11884943d6fSEmmanuel Vadot          items:
11984943d6fSEmmanuel Vadot            - const: mclk
12084943d6fSEmmanuel Vadot            - const: npl
12184943d6fSEmmanuel Vadot            - const: dcodec
12284943d6fSEmmanuel Vadot            - const: fsgen
12384943d6fSEmmanuel Vadot
12484943d6fSEmmanuel Vadot  - if:
12584943d6fSEmmanuel Vadot      properties:
12684943d6fSEmmanuel Vadot        compatible:
127*8d13bc63SEmmanuel Vadot          contains:
12884943d6fSEmmanuel Vadot            enum:
129fac71e4eSEmmanuel Vadot              - qcom,sm8550-lpass-tx-macro
130fac71e4eSEmmanuel Vadot    then:
131fac71e4eSEmmanuel Vadot      properties:
132fac71e4eSEmmanuel Vadot        clocks:
133fac71e4eSEmmanuel Vadot          minItems: 4
134fac71e4eSEmmanuel Vadot          maxItems: 4
135fac71e4eSEmmanuel Vadot        clock-names:
136fac71e4eSEmmanuel Vadot          items:
137fac71e4eSEmmanuel Vadot            - const: mclk
138fac71e4eSEmmanuel Vadot            - const: macro
139fac71e4eSEmmanuel Vadot            - const: dcodec
140fac71e4eSEmmanuel Vadot            - const: fsgen
141fac71e4eSEmmanuel Vadot
1428bab661aSEmmanuel VadotunevaluatedProperties: false
1435def4c47SEmmanuel Vadot
1445def4c47SEmmanuel Vadotexamples:
1455def4c47SEmmanuel Vadot  - |
1465def4c47SEmmanuel Vadot    #include <dt-bindings/sound/qcom,q6afe.h>
1475def4c47SEmmanuel Vadot    codec@3220000 {
1485def4c47SEmmanuel Vadot      compatible = "qcom,sm8250-lpass-tx-macro";
1495def4c47SEmmanuel Vadot      reg = <0x3220000 0x1000>;
1505def4c47SEmmanuel Vadot      #sound-dai-cells = <1>;
1515def4c47SEmmanuel Vadot      #clock-cells = <0>;
1525def4c47SEmmanuel Vadot      clocks = <&aoncc 0>,
1535def4c47SEmmanuel Vadot               <&aoncc 1>,
1545def4c47SEmmanuel Vadot               <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
1555def4c47SEmmanuel Vadot               <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
1565def4c47SEmmanuel Vadot               <&vamacro>;
1575def4c47SEmmanuel Vadot      clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
1585def4c47SEmmanuel Vadot      clock-output-names = "mclk";
1595def4c47SEmmanuel Vadot      qcom,dmic-sample-rate = <600000>;
1605def4c47SEmmanuel Vadot    };
161