diff options
| author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-07-10 07:37:58 -0400 |
|---|---|---|
| committer | Samuel Ortiz <sameo@linux.intel.com> | 2012-07-16 09:00:32 -0400 |
| commit | e102befe7a254f7b827fecc19eba0c5af03d1bf3 (patch) | |
| tree | a58b33f847999e9ee80146f008717059945d3bf5 /include/linux/mfd | |
| parent | 9cd9e289ddeb66fb571dfa83d36e15c6d4b33b4e (diff) | |
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>
Diffstat (limited to 'include/linux/mfd')
| -rw-r--r-- | include/linux/mfd/arizona/core.h | 79 | ||||
| -rw-r--r-- | include/linux/mfd/arizona/pdata.h | 4 |
2 files changed, 47 insertions, 36 deletions
diff --git a/include/linux/mfd/arizona/core.h b/include/linux/mfd/arizona/core.h index 3ef32b4c1136..dd231ac0bb1f 100644 --- a/include/linux/mfd/arizona/core.h +++ b/include/linux/mfd/arizona/core.h | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | 22 | ||
| 23 | enum arizona_type { | 23 | enum arizona_type { |
| 24 | WM5102 = 1, | 24 | WM5102 = 1, |
| 25 | WM5110 = 2, | ||
| 25 | }; | 26 | }; |
| 26 | 27 | ||
| 27 | #define ARIZONA_IRQ_GP1 0 | 28 | #define ARIZONA_IRQ_GP1 0 |
| @@ -33,40 +34,49 @@ enum arizona_type { | |||
| 33 | #define ARIZONA_IRQ_JD_FALL 6 | 34 | #define ARIZONA_IRQ_JD_FALL 6 |
| 34 | #define ARIZONA_IRQ_JD_RISE 7 | 35 | #define ARIZONA_IRQ_JD_RISE 7 |
| 35 | #define ARIZONA_IRQ_DSP1_RAM_RDY 8 | 36 | #define ARIZONA_IRQ_DSP1_RAM_RDY 8 |
| 36 | #define ARIZONA_IRQ_DSP_IRQ1 9 | 37 | #define ARIZONA_IRQ_DSP2_RAM_RDY 9 |
| 37 | #define ARIZONA_IRQ_DSP_IRQ2 10 | 38 | #define ARIZONA_IRQ_DSP3_RAM_RDY 10 |
| 38 | #define ARIZONA_IRQ_SPK_SHUTDOWN_WARN 11 | 39 | #define ARIZONA_IRQ_DSP4_RAM_RDY 11 |
| 39 | #define ARIZONA_IRQ_SPK_SHUTDOWN 12 | 40 | #define ARIZONA_IRQ_DSP_IRQ1 12 |
| 40 | #define ARIZONA_IRQ_MICDET 13 | 41 | #define ARIZONA_IRQ_DSP_IRQ2 13 |
| 41 | #define ARIZONA_IRQ_HPDET 14 | 42 | #define ARIZONA_IRQ_DSP_IRQ3 14 |
| 42 | #define ARIZONA_IRQ_WSEQ_DONE 15 | 43 | #define ARIZONA_IRQ_DSP_IRQ4 15 |
| 43 | #define ARIZONA_IRQ_DRC2_SIG_DET 16 | 44 | #define ARIZONA_IRQ_DSP_IRQ5 16 |
| 44 | #define ARIZONA_IRQ_DRC1_SIG_DET 17 | 45 | #define ARIZONA_IRQ_DSP_IRQ6 17 |
| 45 | #define ARIZONA_IRQ_ASRC2_LOCK 18 | 46 | #define ARIZONA_IRQ_DSP_IRQ7 18 |
| 46 | #define ARIZONA_IRQ_ASRC1_LOCK 19 | 47 | #define ARIZONA_IRQ_DSP_IRQ8 19 |
| 47 | #define ARIZONA_IRQ_UNDERCLOCKED 20 | 48 | #define ARIZONA_IRQ_SPK_SHUTDOWN_WARN 20 |
| 48 | #define ARIZONA_IRQ_OVERCLOCKED 21 | 49 | #define ARIZONA_IRQ_SPK_SHUTDOWN 21 |
| 49 | #define ARIZONA_IRQ_FLL2_LOCK 22 | 50 | #define ARIZONA_IRQ_MICDET 22 |
| 50 | #define ARIZONA_IRQ_FLL1_LOCK 23 | 51 | #define ARIZONA_IRQ_HPDET 23 |
| 51 | #define ARIZONA_IRQ_CLKGEN_ERR 24 | 52 | #define ARIZONA_IRQ_WSEQ_DONE 24 |
| 52 | #define ARIZONA_IRQ_CLKGEN_ERR_ASYNC 25 | 53 | #define ARIZONA_IRQ_DRC2_SIG_DET 25 |
| 53 | #define ARIZONA_IRQ_ASRC_CFG_ERR 26 | 54 | #define ARIZONA_IRQ_DRC1_SIG_DET 26 |
| 54 | #define ARIZONA_IRQ_AIF3_ERR 27 | 55 | #define ARIZONA_IRQ_ASRC2_LOCK 27 |
| 55 | #define ARIZONA_IRQ_AIF2_ERR 28 | 56 | #define ARIZONA_IRQ_ASRC1_LOCK 28 |
| 56 | #define ARIZONA_IRQ_AIF1_ERR 29 | 57 | #define ARIZONA_IRQ_UNDERCLOCKED 29 |
| 57 | #define ARIZONA_IRQ_CTRLIF_ERR 30 | 58 | #define ARIZONA_IRQ_OVERCLOCKED 30 |
| 58 | #define ARIZONA_IRQ_MIXER_DROPPED_SAMPLES 31 | 59 | #define ARIZONA_IRQ_FLL2_LOCK 31 |
| 59 | #define ARIZONA_IRQ_ASYNC_CLK_ENA_LOW 32 | 60 | #define ARIZONA_IRQ_FLL1_LOCK 32 |
| 60 | #define ARIZONA_IRQ_SYSCLK_ENA_LOW 33 | 61 | #define ARIZONA_IRQ_CLKGEN_ERR 33 |
| 61 | #define ARIZONA_IRQ_ISRC1_CFG_ERR 34 | 62 | #define ARIZONA_IRQ_CLKGEN_ERR_ASYNC 34 |
| 62 | #define ARIZONA_IRQ_ISRC2_CFG_ERR 35 | 63 | #define ARIZONA_IRQ_ASRC_CFG_ERR 35 |
| 63 | #define ARIZONA_IRQ_BOOT_DONE 36 | 64 | #define ARIZONA_IRQ_AIF3_ERR 36 |
| 64 | #define ARIZONA_IRQ_DCS_DAC_DONE 37 | 65 | #define ARIZONA_IRQ_AIF2_ERR 37 |
| 65 | #define ARIZONA_IRQ_DCS_HP_DONE 38 | 66 | #define ARIZONA_IRQ_AIF1_ERR 38 |
| 66 | #define ARIZONA_IRQ_FLL2_CLOCK_OK 39 | 67 | #define ARIZONA_IRQ_CTRLIF_ERR 39 |
| 67 | #define ARIZONA_IRQ_FLL1_CLOCK_OK 40 | 68 | #define ARIZONA_IRQ_MIXER_DROPPED_SAMPLES 40 |
| 68 | 69 | #define ARIZONA_IRQ_ASYNC_CLK_ENA_LOW 41 | |
| 69 | #define ARIZONA_NUM_IRQ 41 | 70 | #define ARIZONA_IRQ_SYSCLK_ENA_LOW 42 |
| 71 | #define ARIZONA_IRQ_ISRC1_CFG_ERR 43 | ||
| 72 | #define ARIZONA_IRQ_ISRC2_CFG_ERR 44 | ||
| 73 | #define ARIZONA_IRQ_BOOT_DONE 45 | ||
| 74 | #define ARIZONA_IRQ_DCS_DAC_DONE 46 | ||
| 75 | #define ARIZONA_IRQ_DCS_HP_DONE 47 | ||
| 76 | #define ARIZONA_IRQ_FLL2_CLOCK_OK 48 | ||
| 77 | #define ARIZONA_IRQ_FLL1_CLOCK_OK 49 | ||
| 78 | |||
| 79 | #define ARIZONA_NUM_IRQ 50 | ||
| 70 | 80 | ||
| 71 | struct arizona { | 81 | struct arizona { |
| 72 | struct regmap *regmap; | 82 | struct regmap *regmap; |
| @@ -99,5 +109,6 @@ void arizona_free_irq(struct arizona *arizona, int irq, void *data); | |||
| 99 | int arizona_set_irq_wake(struct arizona *arizona, int irq, int on); | 109 | int arizona_set_irq_wake(struct arizona *arizona, int irq, int on); |
| 100 | 110 | ||
| 101 | int wm5102_patch(struct arizona *arizona); | 111 | int wm5102_patch(struct arizona *arizona); |
| 112 | int wm5110_patch(struct arizona *arizona); | ||
| 102 | 113 | ||
| 103 | #endif | 114 | #endif |
diff --git a/include/linux/mfd/arizona/pdata.h b/include/linux/mfd/arizona/pdata.h index 68ff91aa3888..7ab442905a57 100644 --- a/include/linux/mfd/arizona/pdata.h +++ b/include/linux/mfd/arizona/pdata.h | |||
| @@ -49,7 +49,7 @@ | |||
| 49 | #define ARIZONA_32KZ_MCLK2 2 | 49 | #define ARIZONA_32KZ_MCLK2 2 |
| 50 | #define ARIZONA_32KZ_NONE 3 | 50 | #define ARIZONA_32KZ_NONE 3 |
| 51 | 51 | ||
| 52 | #define ARIZONA_MAX_INPUT 3 | 52 | #define ARIZONA_MAX_INPUT 4 |
| 53 | 53 | ||
| 54 | #define ARIZONA_DMIC_MICVDD 0 | 54 | #define ARIZONA_DMIC_MICVDD 0 |
| 55 | #define ARIZONA_DMIC_MICBIAS1 1 | 55 | #define ARIZONA_DMIC_MICBIAS1 1 |
| @@ -60,7 +60,7 @@ | |||
| 60 | #define ARIZONA_INMODE_SE 1 | 60 | #define ARIZONA_INMODE_SE 1 |
| 61 | #define ARIZONA_INMODE_DMIC 2 | 61 | #define ARIZONA_INMODE_DMIC 2 |
| 62 | 62 | ||
| 63 | #define ARIZONA_MAX_OUTPUT 5 | 63 | #define ARIZONA_MAX_OUTPUT 6 |
| 64 | 64 | ||
| 65 | #define ARIZONA_MAX_PDM_SPK 2 | 65 | #define ARIZONA_MAX_PDM_SPK 2 |
| 66 | 66 | ||
