OMAP4 has one McASP instance with single serializer and supporting only DIT mode. According to the TRM the DAT port needs to be accessed as specific offset compared to other devices where access to any part of the DAT region is valid. To handle this constraint we need to introduce a new compatiple string for OMAP4. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@gmail.com> Link: https://lore.kernel.org/r/20210705194249.2385-3-peter.ujfalusi@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
87 lines
3.1 KiB
Plaintext
87 lines
3.1 KiB
Plaintext
Texas Instruments McASP controller
|
|
|
|
Required properties:
|
|
- compatible :
|
|
"ti,dm646x-mcasp-audio" : for DM646x platforms
|
|
"ti,da830-mcasp-audio" : for both DA830 & DA850 platforms
|
|
"ti,am33xx-mcasp-audio" : for AM33xx platforms (AM33xx, AM43xx, TI81xx)
|
|
"ti,dra7-mcasp-audio" : for DRA7xx platforms
|
|
"ti,omap4-mcasp-audio" : for OMAP4
|
|
|
|
- reg : Should contain reg specifiers for the entries in the reg-names property.
|
|
- reg-names : Should contain:
|
|
* "mpu" for the main registers (required). For compatibility with
|
|
existing software, it is recommended this is the first entry.
|
|
* "dat" for separate data port register access (optional).
|
|
- op-mode : I2S/DIT ops mode. 0 for I2S mode. 1 for DIT mode used for S/PDIF,
|
|
IEC60958-1, and AES-3 formats.
|
|
- tdm-slots : Slots for TDM operation. Indicates number of channels transmitted
|
|
or received over one serializer.
|
|
- serial-dir : A list of serializer configuration. Each entry is a number
|
|
indication for serializer pin direction.
|
|
(0 - INACTIVE, 1 - TX, 2 - RX)
|
|
- dmas: two element list of DMA controller phandles and DMA request line
|
|
ordered pairs.
|
|
- dma-names: identifier string for each DMA request line in the dmas property.
|
|
These strings correspond 1:1 with the ordered pairs in dmas. The dma
|
|
identifiers must be "rx" and "tx".
|
|
|
|
Optional properties:
|
|
|
|
- ti,hwmods : Must be "mcasp<n>", n is controller instance starting 0
|
|
- tx-num-evt : FIFO levels.
|
|
- rx-num-evt : FIFO levels.
|
|
- dismod : Specify the drive on TX pin during inactive slots
|
|
0 : 3-state
|
|
2 : logic low
|
|
3 : logic high
|
|
Defaults to 'logic low' when the property is not present
|
|
- sram-size-playback : size of sram to be allocated during playback
|
|
- sram-size-capture : size of sram to be allocated during capture
|
|
- interrupts : Interrupt numbers for McASP
|
|
- interrupt-names : Known interrupt names are "tx" and "rx"
|
|
- pinctrl-0: Should specify pin control group used for this controller.
|
|
- pinctrl-names: Should contain only one value - "default", for more details
|
|
please refer to pinctrl-bindings.txt
|
|
- fck_parent : Should contain a valid clock name which will be used as parent
|
|
for the McASP fck
|
|
- auxclk-fs-ratio: When McASP is bus master indicates the ratio between AUCLK
|
|
and FS rate if applicable:
|
|
AUCLK rate = auxclk-fs-ratio * FS rate
|
|
|
|
Optional GPIO support:
|
|
If any McASP pin need to be used as GPIO then the McASP node must have:
|
|
...
|
|
gpio-controller
|
|
#gpio-cells = <2>;
|
|
...
|
|
|
|
When requesting a GPIO, the first parameter is the PIN index in McASP_P*
|
|
registers.
|
|
For example to request the AXR2 pin of mcasp8:
|
|
function-gpios = <&mcasp8 2 0>;
|
|
|
|
Or to request the ACLKR pin of mcasp8:
|
|
function-gpios = <&mcasp8 29 0>;
|
|
|
|
For generic gpio information, please refer to bindings/gpio/gpio.txt
|
|
|
|
Example:
|
|
|
|
mcasp0: mcasp0@1d00000 {
|
|
compatible = "ti,da830-mcasp-audio";
|
|
reg = <0x100000 0x3000>;
|
|
reg-names "mpu";
|
|
interrupts = <82>, <83>;
|
|
interrupt-names = "tx", "rx";
|
|
op-mode = <0>; /* MCASP_IIS_MODE */
|
|
tdm-slots = <2>;
|
|
serial-dir = <
|
|
0 0 0 0 /* 0: INACTIVE, 1: TX, 2: RX */
|
|
0 0 0 0
|
|
0 0 0 1
|
|
2 0 0 0 >;
|
|
tx-num-evt = <1>;
|
|
rx-num-evt = <1>;
|
|
};
|