Misael Lopez Cruz 8ecbabd977 ASoC: TWL6040: Add twl6040 codec driver
Initial version of TWL6040 codec driver.

The TWL6040 codec uses a proprietary PDM-based digital audio interface.
Audio paths supported are:

- Input: Main Mic, Sub Mic, Headset Mic, Auxiliary-FM Left/Right
- Output: Headset Left/Right, Handsfree Left/Right

TWL6040 codec supports power-up/down manual and automatic sequence.
Manual sequence is done through a specific register writes sequence.
Automatic sequence is done when the codec is powered-up through the
external AUDPWRON line. The completion of the sequence is signaled
through the audio interrupt.

TWL6040 codec sysclk can be provided by: low-power or high
performance PLL:

- The low-power PLL takes a low-frequency input at 32,768 Hz and
generates an approximate of 17.64 or 19.2 MHz (for 44.1 KHz and 48 KHz
respectively)

- The high-performance PLL generates an exact 19.2 MHz clock signal
from high-frequency input at 12/19.2/26/38.4 MHz.

Low-power playback mode is a special scenario where only headset path
(headset DAC and driver) is active.

For the particular case of headset path, PLL being used defines the
headset power mode: low-power, high-performance.

Signed-off-by: Misael Lopez Cruz <x0052729@ti.com>
Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2010-03-19 11:29:33 +00:00
..
2009-11-03 22:14:43 +00:00
2009-11-03 22:14:43 +00:00
2009-11-04 21:43:27 +00:00
2009-11-04 21:27:53 +00:00
2009-08-21 10:54:02 +01:00
2009-09-10 00:27:57 +01:00
2010-03-12 11:12:22 +00:00
2010-03-12 11:12:22 +00:00
2008-11-17 11:45:39 +00:00
2009-11-03 22:14:43 +00:00
2008-11-19 13:16:38 +00:00
2010-02-12 10:31:06 +00:00
2010-02-12 10:31:06 +00:00
2008-10-13 02:17:15 +02:00
2009-07-01 18:47:45 +01:00
2009-08-18 20:37:49 +01:00
2009-12-16 17:30:51 +00:00
2009-11-02 15:24:19 +00:00
2008-11-14 14:44:53 +00:00
2010-03-17 14:09:02 +00:00
2008-09-23 08:18:19 +02:00
2009-08-06 11:36:45 +01:00
2009-04-27 20:37:13 +01:00
2009-12-18 13:06:47 +00:00
2009-12-18 13:06:47 +00:00
2009-06-12 17:16:06 +01:00
2008-09-23 08:18:05 +02:00
2009-04-07 18:51:23 +01:00
2009-07-08 17:20:20 +01:00
2010-02-02 11:21:11 +00:00
2010-02-01 18:37:01 +00:00