Merge tag 'for-5.15/io_uring-2021-09-04' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / sound / davinci-mcasp-audio.txt
1 Texas Instruments McASP controller
2
3 Required properties:
4 - compatible :
5         "ti,dm646x-mcasp-audio" : for DM646x platforms
6         "ti,da830-mcasp-audio"  : for both DA830 & DA850 platforms
7         "ti,am33xx-mcasp-audio" : for AM33xx platforms (AM33xx, AM43xx, TI81xx)
8         "ti,dra7-mcasp-audio"   : for DRA7xx platforms
9         "ti,omap4-mcasp-audio"  : for OMAP4
10
11 - reg : Should contain reg specifiers for the entries in the reg-names property.
12 - reg-names : Should contain:
13          * "mpu" for the main registers (required). For compatibility with
14            existing software, it is recommended this is the first entry.
15          * "dat" for separate data port register access (optional).
16 - op-mode : I2S/DIT ops mode. 0 for I2S mode. 1 for DIT mode used for S/PDIF,
17             IEC60958-1, and AES-3 formats.
18 - tdm-slots : Slots for TDM operation. Indicates number of channels transmitted
19               or received over one serializer.
20 - serial-dir : A list of serializer configuration. Each entry is a number
21                indication for serializer pin direction.
22                (0 - INACTIVE, 1 - TX, 2 - RX)
23 - dmas: two element list of DMA controller phandles and DMA request line
24         ordered pairs.
25 - dma-names: identifier string for each DMA request line in the dmas property.
26              These strings correspond 1:1 with the ordered pairs in dmas. The dma
27              identifiers must be "rx" and "tx".
28
29 Optional properties:
30
31 - ti,hwmods : Must be "mcasp<n>", n is controller instance starting 0
32 - tx-num-evt : FIFO levels.
33 - rx-num-evt : FIFO levels.
34 - dismod : Specify the drive on TX pin during inactive slots
35         0 : 3-state
36         2 : logic low
37         3 : logic high
38         Defaults to 'logic low' when the property is not present
39 - sram-size-playback : size of sram to be allocated during playback
40 - sram-size-capture  : size of sram to be allocated during capture
41 - interrupts : Interrupt numbers for McASP
42 - interrupt-names : Known interrupt names are "tx" and "rx"
43 - pinctrl-0: Should specify pin control group used for this controller.
44 - pinctrl-names: Should contain only one value - "default", for more details
45                  please refer to pinctrl-bindings.txt
46 - fck_parent : Should contain a valid clock name which will be used as parent
47                for the McASP fck
48 - auxclk-fs-ratio: When McASP is bus master indicates the ratio between AUCLK
49                    and FS rate if applicable:
50                    AUCLK rate = auxclk-fs-ratio * FS rate
51
52 Optional GPIO support:
53 If any McASP pin need to be used as GPIO then the McASP node must have:
54 ...
55   gpio-controller
56   #gpio-cells = <2>;
57 ...
58
59 When requesting a GPIO, the first parameter is the PIN index in McASP_P*
60 registers.
61 For example to request the AXR2 pin of mcasp8:
62 function-gpios = <&mcasp8 2 0>;
63
64 Or to request the ACLKR pin of mcasp8:
65 function-gpios = <&mcasp8 29 0>;
66
67 For generic gpio information, please refer to bindings/gpio/gpio.txt
68
69 Example:
70
71 mcasp0: mcasp0@1d00000 {
72         compatible = "ti,da830-mcasp-audio";
73         reg = <0x100000 0x3000>;
74         reg-names "mpu";
75         interrupts = <82>, <83>;
76         interrupt-names = "tx", "rx";
77         op-mode = <0>;          /* MCASP_IIS_MODE */
78         tdm-slots = <2>;
79         serial-dir = <
80                         0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */
81                         0 0 0 0
82                         0 0 0 1
83                         2 0 0 0 >;
84         tx-num-evt = <1>;
85         rx-num-evt = <1>;
86 };