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
7title: McASP Controller for TI SoCs
8
9maintainers:
10  - Jayesh Choudhary <j-choudhary@ti.com>
11
12properties:
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    minItems: 1
106    maxItems: 2
107
108  interrupt-names:
109    oneOf:
110      - description: TX interrupt
111        const: tx
112      - description: RX interrupt
113        const: rx
114      - description: TX and RX interrupts
115        items:
116          - const: tx
117          - const: rx
118      - description: Common/combined interrupt
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
160required:
161  - compatible
162  - reg
163  - reg-names
164  - dmas
165  - dma-names
166  - interrupts
167  - interrupt-names
168
169allOf:
170  - $ref: dai-common.yaml#
171  - if:
172      properties:
173        opmode:
174          enum:
175            - 0
176
177    then:
178      required:
179        - tdm-slots
180
181unevaluatedProperties: false
182
183examples:
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    };
203