1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: "http://devicetree.org/schemas/sound/qcom,q6dsp-lpass-ports.yaml#"
5$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6
7title: Qualcomm DSP LPASS(Low Power Audio SubSystem) Audio Ports
8
9maintainers:
10  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11
12description: |
13  This binding describes the Qualcomm DSP LPASS Audio ports
14
15properties:
16  compatible:
17    enum:
18      - qcom,q6afe-dais
19
20  '#sound-dai-cells':
21    const: 1
22
23  '#address-cells':
24    const: 1
25
26  '#size-cells':
27    const: 0
28
29# Digital Audio Interfaces
30patternProperties:
31  '^dai@[0-9]+$':
32    type: object
33    description:
34      Q6DSP Digital Audio Interfaces.
35
36    properties:
37      reg:
38        description:
39          Digital Audio Interface ID
40
41      qcom,sd-lines:
42        $ref: /schemas/types.yaml#/definitions/uint32-array
43        description:
44          List of serial data lines used by this dai.should be one or more of the 0-3 sd lines.
45        minItems: 1
46        maxItems: 4
47        uniqueItems: true
48        items:
49          minimum: 0
50          maximum: 3
51
52      qcom,tdm-sync-mode:
53        $ref: /schemas/types.yaml#/definitions/uint32
54        enum: [0, 1, 2]
55        description:
56          TDM Synchronization mode
57            0 = Short sync bit mode
58            1 = Long sync mode
59            2 = Short sync slot mode
60
61      qcom,tdm-sync-src:
62        $ref: /schemas/types.yaml#/definitions/uint32
63        enum: [0, 1]
64        description:
65          TDM Synchronization source
66            0 = External source
67            1 = Internal source
68
69      qcom,tdm-data-out:
70        $ref: /schemas/types.yaml#/definitions/uint32
71        enum: [0, 1]
72        description:
73          TDM Data out signal to drive with other masters
74            0 = Disable
75            1 = Enable
76
77      qcom,tdm-invert-sync:
78        $ref: /schemas/types.yaml#/definitions/uint32
79        enum: [0, 1]
80        description:
81          TDM Invert the sync
82            0 = Normal
83            1 = Invert
84
85      qcom,tdm-data-delay:
86        $ref: /schemas/types.yaml#/definitions/uint32
87        enum: [0, 1, 2]
88        description:
89          TDM Number of bit clock to delay data
90            0 = 0 bit clock cycle
91            1 = 1 bit clock cycle
92            2 = 2 bit clock cycle
93
94      qcom,tdm-data-align:
95        $ref: /schemas/types.yaml#/definitions/uint32
96        enum: [0, 1]
97        description:
98          Indicate how data is packed within the slot. For example, 32 slot
99          width in case of sample bit width is 24TDM Invert the sync.
100            0 = MSB
101            1 = LSB
102
103    required:
104      - reg
105
106    allOf:
107      - if:
108          properties:
109            reg:
110              contains:
111                # TDM DAI ID range from PRIMARY_TDM_RX_0 - QUINARY_TDM_TX_7
112                items:
113                  minimum: 24
114                  maximum: 103
115        then:
116          required:
117            - qcom,tdm-sync-mode
118            - qcom,tdm-sync-src
119            - qcom,tdm-data-out
120            - qcom,tdm-invert-sync
121            - qcom,tdm-data-delay
122            - qcom,tdm-data-align
123
124      - if:
125          properties:
126            reg:
127              contains:
128                # MI2S DAI ID range PRIMARY_MI2S_RX - QUATERNARY_MI2S_TX and
129                # QUINARY_MI2S_RX - QUINARY_MI2S_TX
130                items:
131                  oneOf:
132                    - minimum: 16
133                      maximum: 23
134                    - minimum: 127
135                      maximum: 128
136        then:
137          required:
138            - qcom,sd-lines
139
140    additionalProperties: false
141
142required:
143  - compatible
144  - "#sound-dai-cells"
145  - "#address-cells"
146  - "#size-cells"
147
148additionalProperties: false
149
150examples:
151  - |
152    #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
153
154    dais {
155        compatible = "qcom,q6afe-dais";
156        #address-cells = <1>;
157        #size-cells = <0>;
158        #sound-dai-cells = <1>;
159
160        dai@22 {
161            reg = <QUATERNARY_MI2S_RX>;
162            qcom,sd-lines = <0 1 2 3>;
163        };
164    };
165