xref: /freebsd/sys/contrib/device-tree/Bindings/sound/davinci-mcasp-audio.txt (revision 5ca8e32633c4ffbbcd6762e5888b6a4ba0708c6c)
1Texas Instruments McASP controller
2
3Required 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
29Optional 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
52Optional GPIO support:
53If 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
59When requesting a GPIO, the first parameter is the PIN index in McASP_P*
60registers.
61For example to request the AXR2 pin of mcasp8:
62function-gpios = <&mcasp8 2 0>;
63
64Or to request the ACLKR pin of mcasp8:
65function-gpios = <&mcasp8 29 0>;
66
67For generic gpio information, please refer to bindings/gpio/gpio.txt
68
69Example:
70
71mcasp0: 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};
87