GNU Linux-libre 6.1.90-gnu
[releases.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   - if:
171       properties:
172         opmode:
173           enum:
174             - 0
175
176     then:
177       required:
178         - tdm-slots
179
180 additionalProperties: false
181
182 examples:
183   - |
184     mcasp0: mcasp0@1d00000 {
185       compatible = "ti,da830-mcasp-audio";
186       reg = <0x100000 0x3000>;
187       reg-names = "mpu";
188       interrupts = <82>, <83>;
189       interrupt-names = "tx", "rx";
190       op-mode = <0>;            /* MCASP_IIS_MODE */
191       tdm-slots = <2>;
192       dmas = <&main_udmap 0xc400>, <&main_udmap 0x4400>;
193       dma-names = "tx", "rx";
194       serial-dir = <
195           0 0 0 0       /* 0: INACTIVE, 1: TX, 2: RX */
196           0 0 0 0
197           0 0 0 1
198           2 0 0 0 >;
199       tx-num-evt = <1>;
200       rx-num-evt = <1>;
201     };