a7a3324a60
An underrun (playback) event occurs when the serializer transfer data from the XRBUF buffer to the XRSR shift register, but the XRBUF hasn't been filled. Similarly, the overrun (capture) event occurs when data from the XRSR shift register is transferred to the XRBUF but it hasn't been read yet. These events are handled as XRUN events that cause the pcm to stop. The stream has to be explicitly restarted by the userspace which ensures that after stopping/starting McASP the data transfer is aligned with DMA. The other possibility was to internally stop and start McASP without DMA even knowing about it. Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
61 lines
2.3 KiB
Plaintext
61 lines
2.3 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
|
|
|
|
- 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.
|
|
- 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
|
|
|
|
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>;
|
|
};
|