Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / sound / davinci-mcasp-audio.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/davinci-mcasp-audio.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: McASP Controller for TI SoCs
8
9 maintainers:
10   - Jayesh Choudhary <j-choudhary@ti.com>
11
12 properties:
13   compatible:
14     enum:
15       - ti,dm646x-mcasp-audio
16       - ti,da830-mcasp-audio
17       - ti,am33xx-mcasp-audio
18       - ti,dra7-mcasp-audio
19       - ti,omap4-mcasp-audio
20
21   reg:
22     minItems: 1
23     items:
24       - description: CFG registers
25       - description: data registers
26
27   reg-names:
28     minItems: 1
29     items:
30       - const: mpu
31       - const: dat
32
33   op-mode:
34     $ref: /schemas/types.yaml#/definitions/uint32
35     description: 0 - I2S or 1 - DIT operation mode
36     enum:
37       - 0
38       - 1
39
40   tdm-slots:
41     $ref: /schemas/types.yaml#/definitions/uint32
42     description:
43       number of channels over one serializer
44       the property is ignored in DIT mode
45     minimum: 2
46     maximum: 32
47
48   serial-dir:
49     description:
50       A list of serializer configuration
51       Entry is indication for serializer pin direction
52       0 - Inactive, 1 - TX, 2 - RX
53       All AXR pins should be present in the array even if inactive
54     $ref: /schemas/types.yaml#/definitions/uint32-array
55     minItems: 1
56     maxItems: 25
57     items:
58       minimum: 0
59       maximum: 2
60
61   dmas:
62     minItems: 1
63     items:
64       - description: transmission DMA channel
65       - description: reception DMA channel
66
67   dma-names:
68     minItems: 1
69     items:
70       - const: tx
71       - const: rx
72
73   ti,hwmods:
74     $ref: /schemas/types.yaml#/definitions/string
75     description: Name of hwmod associated with McASP
76     maxItems: 1
77     deprecated: true
78
79   tx-num-evt:
80     $ref: /schemas/types.yaml#/definitions/uint32
81     description:
82       configures WFIFO threshold
83       0 disables the FIFO use
84       if property is missing, then also FIFO use is disabled
85
86   rx-num-evt:
87     $ref: /schemas/types.yaml#/definitions/uint32
88     description:
89       configures RFIFO threshold
90       0 disables the FIFO use
91       if property is missing, then also FIFO use is disabled
92
93   dismod:
94     $ref: /schemas/types.yaml#/definitions/uint32
95     description:
96       specify the drive on TX pin during inactive time slots
97       0 - 3-state, 2 - logic low, 3 - logic high
98     enum:
99       - 0
100       - 2
101       - 3
102     default: 2
103
104   interrupts:
105     anyOf:
106       - minItems: 1
107         items:
108           - description: TX interrupt
109           - description: RX interrupt
110       - items:
111           - description: common/combined interrupt
112
113   interrupt-names:
114     oneOf:
115       - minItems: 1
116         items:
117           - const: tx
118           - const: rx
119       - const: common
120
121   fck_parent:
122     $ref: /schemas/types.yaml#/definitions/string
123     description: parent clock name for McASP fck
124     maxItems: 1
125
126   auxclk-fs-ratio:
127     $ref: /schemas/types.yaml#/definitions/uint32
128     description: ratio of AUCLK and FS rate if applicable
129
130   gpio-controller: true
131
132   "#gpio-cells":
133     const: 2
134
135   clocks:
136     minItems: 1
137     items:
138       - description: functional clock
139       - description: module specific optional ahclkx clock
140       - description: module specific optional ahclkr clock
141
142   clock-names:
143     minItems: 1
144     items:
145       - const: fck
146       - const: ahclkx
147       - const: ahclkr
148
149   power-domains:
150     description: phandle to the corresponding power-domain
151     maxItems: 1
152
153   "#sound-dai-cells":
154     const: 0
155
156   port:
157     description: connection for when McASP is used via graph card
158     type: object
159
160 required:
161   - compatible
162   - reg
163   - reg-names
164   - dmas
165   - dma-names
166   - interrupts
167   - interrupt-names
168
169 allOf:
170   - $ref: dai-common.yaml#
171   - if:
172       properties:
173         opmode:
174           enum:
175             - 0
176
177     then:
178       required:
179         - tdm-slots
180
181 unevaluatedProperties: false
182
183 examples:
184   - |
185     mcasp0: mcasp0@1d00000 {
186       compatible = "ti,da830-mcasp-audio";
187       reg = <0x100000 0x3000>;
188       reg-names = "mpu";
189       interrupts = <82>, <83>;
190       interrupt-names = "tx", "rx";
191       op-mode = <0>;            /* MCASP_IIS_MODE */
192       tdm-slots = <2>;
193       dmas = <&main_udmap 0xc400>, <&main_udmap 0x4400>;
194       dma-names = "tx", "rx";
195       serial-dir = <
196           0 0 0 0       /* 0: INACTIVE, 1: TX, 2: RX */
197           0 0 0 0
198           0 0 0 1
199           2 0 0 0 >;
200       tx-num-evt = <1>;
201       rx-num-evt = <1>;
202     };