mfd: Initial support for the WM5110

The WM5110 is a highly-integrated low-power audio system for smartphones,
tablets and other portable audio devices. It combines an advanced DSP
feature set with a flexible, high-performance audio hub CODEC.

The support is based on the Arizona core driver.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Mark Brown
2012-07-10 12:37:58 +01:00
committed by Samuel Ortiz
parent 9cd9e289dd
commit e102befe7a
9 changed files with 104 additions and 35 deletions

View File

@@ -22,6 +22,7 @@
enum arizona_type {
WM5102 = 1,
WM5110 = 2,
};
#define ARIZONA_IRQ_GP1 0
@@ -33,40 +34,49 @@ enum arizona_type {
#define ARIZONA_IRQ_JD_FALL 6
#define ARIZONA_IRQ_JD_RISE 7
#define ARIZONA_IRQ_DSP1_RAM_RDY 8
#define ARIZONA_IRQ_DSP_IRQ1 9
#define ARIZONA_IRQ_DSP_IRQ2 10
#define ARIZONA_IRQ_SPK_SHUTDOWN_WARN 11
#define ARIZONA_IRQ_SPK_SHUTDOWN 12
#define ARIZONA_IRQ_MICDET 13
#define ARIZONA_IRQ_HPDET 14
#define ARIZONA_IRQ_WSEQ_DONE 15
#define ARIZONA_IRQ_DRC2_SIG_DET 16
#define ARIZONA_IRQ_DRC1_SIG_DET 17
#define ARIZONA_IRQ_ASRC2_LOCK 18
#define ARIZONA_IRQ_ASRC1_LOCK 19
#define ARIZONA_IRQ_UNDERCLOCKED 20
#define ARIZONA_IRQ_OVERCLOCKED 21
#define ARIZONA_IRQ_FLL2_LOCK 22
#define ARIZONA_IRQ_FLL1_LOCK 23
#define ARIZONA_IRQ_CLKGEN_ERR 24
#define ARIZONA_IRQ_CLKGEN_ERR_ASYNC 25
#define ARIZONA_IRQ_ASRC_CFG_ERR 26
#define ARIZONA_IRQ_AIF3_ERR 27
#define ARIZONA_IRQ_AIF2_ERR 28
#define ARIZONA_IRQ_AIF1_ERR 29
#define ARIZONA_IRQ_CTRLIF_ERR 30
#define ARIZONA_IRQ_MIXER_DROPPED_SAMPLES 31
#define ARIZONA_IRQ_ASYNC_CLK_ENA_LOW 32
#define ARIZONA_IRQ_SYSCLK_ENA_LOW 33
#define ARIZONA_IRQ_ISRC1_CFG_ERR 34
#define ARIZONA_IRQ_ISRC2_CFG_ERR 35
#define ARIZONA_IRQ_BOOT_DONE 36
#define ARIZONA_IRQ_DCS_DAC_DONE 37
#define ARIZONA_IRQ_DCS_HP_DONE 38
#define ARIZONA_IRQ_FLL2_CLOCK_OK 39
#define ARIZONA_IRQ_FLL1_CLOCK_OK 40
#define ARIZONA_IRQ_DSP2_RAM_RDY 9
#define ARIZONA_IRQ_DSP3_RAM_RDY 10
#define ARIZONA_IRQ_DSP4_RAM_RDY 11
#define ARIZONA_IRQ_DSP_IRQ1 12
#define ARIZONA_IRQ_DSP_IRQ2 13
#define ARIZONA_IRQ_DSP_IRQ3 14
#define ARIZONA_IRQ_DSP_IRQ4 15
#define ARIZONA_IRQ_DSP_IRQ5 16
#define ARIZONA_IRQ_DSP_IRQ6 17
#define ARIZONA_IRQ_DSP_IRQ7 18
#define ARIZONA_IRQ_DSP_IRQ8 19
#define ARIZONA_IRQ_SPK_SHUTDOWN_WARN 20
#define ARIZONA_IRQ_SPK_SHUTDOWN 21
#define ARIZONA_IRQ_MICDET 22
#define ARIZONA_IRQ_HPDET 23
#define ARIZONA_IRQ_WSEQ_DONE 24
#define ARIZONA_IRQ_DRC2_SIG_DET 25
#define ARIZONA_IRQ_DRC1_SIG_DET 26
#define ARIZONA_IRQ_ASRC2_LOCK 27
#define ARIZONA_IRQ_ASRC1_LOCK 28
#define ARIZONA_IRQ_UNDERCLOCKED 29
#define ARIZONA_IRQ_OVERCLOCKED 30
#define ARIZONA_IRQ_FLL2_LOCK 31
#define ARIZONA_IRQ_FLL1_LOCK 32
#define ARIZONA_IRQ_CLKGEN_ERR 33
#define ARIZONA_IRQ_CLKGEN_ERR_ASYNC 34
#define ARIZONA_IRQ_ASRC_CFG_ERR 35
#define ARIZONA_IRQ_AIF3_ERR 36
#define ARIZONA_IRQ_AIF2_ERR 37
#define ARIZONA_IRQ_AIF1_ERR 38
#define ARIZONA_IRQ_CTRLIF_ERR 39
#define ARIZONA_IRQ_MIXER_DROPPED_SAMPLES 40
#define ARIZONA_IRQ_ASYNC_CLK_ENA_LOW 41
#define ARIZONA_IRQ_SYSCLK_ENA_LOW 42
#define ARIZONA_IRQ_ISRC1_CFG_ERR 43
#define ARIZONA_IRQ_ISRC2_CFG_ERR 44
#define ARIZONA_IRQ_BOOT_DONE 45
#define ARIZONA_IRQ_DCS_DAC_DONE 46
#define ARIZONA_IRQ_DCS_HP_DONE 47
#define ARIZONA_IRQ_FLL2_CLOCK_OK 48
#define ARIZONA_IRQ_FLL1_CLOCK_OK 49
#define ARIZONA_NUM_IRQ 41
#define ARIZONA_NUM_IRQ 50
struct arizona {
struct regmap *regmap;
@@ -99,5 +109,6 @@ void arizona_free_irq(struct arizona *arizona, int irq, void *data);
int arizona_set_irq_wake(struct arizona *arizona, int irq, int on);
int wm5102_patch(struct arizona *arizona);
int wm5110_patch(struct arizona *arizona);
#endif

View File

@@ -49,7 +49,7 @@
#define ARIZONA_32KZ_MCLK2 2
#define ARIZONA_32KZ_NONE 3
#define ARIZONA_MAX_INPUT 3
#define ARIZONA_MAX_INPUT 4
#define ARIZONA_DMIC_MICVDD 0
#define ARIZONA_DMIC_MICBIAS1 1
@@ -60,7 +60,7 @@
#define ARIZONA_INMODE_SE 1
#define ARIZONA_INMODE_DMIC 2
#define ARIZONA_MAX_OUTPUT 5
#define ARIZONA_MAX_OUTPUT 6
#define ARIZONA_MAX_PDM_SPK 2