McPDM module is the interface between the OMAP and TWL6030 audio codec. It transfers data between the two chips using a Pulse Density Modulation protocol, which allows sound to be played or recorded at speeds of up to 96000 Hz. Besides data, McPDM can transfer commands and read status to/from the codec using the frame synchronization line.
The interface supports the following: * Up to 5 downlink channels and 3 uplink channels * 88.2 and 96 KHz * 32 bit sample size
Currently, driver is set to support up to 4 downlink channels. If 2 channels are selected, output will go to the headset, and if 4 channels are selected, output will go to the headset and speakers. Functionality to select the output at runtime will be added afterwards.
Command and status mode is not supported in current patches.
--
Jorge Eduardo Candelaria (2): OMAP4: IRQ: Add McPDM IRQ definition. ASoC: OMAP4: Add support for McPDM
Misael Lopez Cruz (1): ASoC: OMAP4: Add McPDM platform driver
arch/arm/plat-omap/include/plat/irqs.h | 2 +- sound/soc/omap/Kconfig | 3 + sound/soc/omap/Makefile | 2 + sound/soc/omap/mcpdm.c | 505 ++++++++++++++++++++++++++++++++ sound/soc/omap/mcpdm.h | 156 ++++++++++ sound/soc/omap/omap-mcpdm.c | 248 ++++++++++++++++ sound/soc/omap/omap-mcpdm.h | 29 ++ 7 files changed, 944 insertions(+), 1 deletions(-) create mode 100644 sound/soc/omap/mcpdm.c create mode 100644 sound/soc/omap/mcpdm.h create mode 100644 sound/soc/omap/omap-mcpdm.c create mode 100644 sound/soc/omap/omap-mcpdm.h