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