diff options
Diffstat (limited to 'include/linux/mfd/wm8994/pdata.h')
-rw-r--r-- | include/linux/mfd/wm8994/pdata.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/include/linux/mfd/wm8994/pdata.h b/include/linux/mfd/wm8994/pdata.h index ea32f306dca6..3fb1f407d5e6 100644 --- a/include/linux/mfd/wm8994/pdata.h +++ b/include/linux/mfd/wm8994/pdata.h | |||
@@ -23,7 +23,7 @@ struct wm8994_ldo_pdata { | |||
23 | int enable; | 23 | int enable; |
24 | 24 | ||
25 | const char *supply; | 25 | const char *supply; |
26 | struct regulator_init_data *init_data; | 26 | const struct regulator_init_data *init_data; |
27 | }; | 27 | }; |
28 | 28 | ||
29 | #define WM8994_CONFIGURE_GPIO 0x10000 | 29 | #define WM8994_CONFIGURE_GPIO 0x10000 |
@@ -113,6 +113,23 @@ struct wm8958_enh_eq_cfg { | |||
113 | u16 regs[WM8958_ENH_EQ_REGS]; | 113 | u16 regs[WM8958_ENH_EQ_REGS]; |
114 | }; | 114 | }; |
115 | 115 | ||
116 | /** | ||
117 | * Microphone detection rates, used to tune response rates and power | ||
118 | * consumption for WM8958/WM1811 microphone detection. | ||
119 | * | ||
120 | * @sysclk: System clock rate to use this configuration for. | ||
121 | * @idle: True if this configuration should use when no accessory is detected, | ||
122 | * false otherwise. | ||
123 | * @start: Value for MICD_BIAS_START_TIME register field (not shifted). | ||
124 | * @rate: Value for MICD_RATE register field (not shifted). | ||
125 | */ | ||
126 | struct wm8958_micd_rate { | ||
127 | int sysclk; | ||
128 | bool idle; | ||
129 | int start; | ||
130 | int rate; | ||
131 | }; | ||
132 | |||
116 | struct wm8994_pdata { | 133 | struct wm8994_pdata { |
117 | int gpio_base; | 134 | int gpio_base; |
118 | 135 | ||
@@ -144,6 +161,9 @@ struct wm8994_pdata { | |||
144 | int num_enh_eq_cfgs; | 161 | int num_enh_eq_cfgs; |
145 | struct wm8958_enh_eq_cfg *enh_eq_cfgs; | 162 | struct wm8958_enh_eq_cfg *enh_eq_cfgs; |
146 | 163 | ||
164 | int num_micd_rates; | ||
165 | struct wm8958_micd_rate *micd_rates; | ||
166 | |||
147 | /* LINEOUT can be differential or single ended */ | 167 | /* LINEOUT can be differential or single ended */ |
148 | unsigned int lineout1_diff:1; | 168 | unsigned int lineout1_diff:1; |
149 | unsigned int lineout2_diff:1; | 169 | unsigned int lineout2_diff:1; |
@@ -168,12 +188,21 @@ struct wm8994_pdata { | |||
168 | /* WM8958 microphone bias configuration */ | 188 | /* WM8958 microphone bias configuration */ |
169 | int micbias[2]; | 189 | int micbias[2]; |
170 | 190 | ||
191 | /* WM8958 microphone detection ranges */ | ||
192 | u16 micd_lvl_sel; | ||
193 | |||
171 | /* Disable the internal pull downs on the LDOs if they are | 194 | /* Disable the internal pull downs on the LDOs if they are |
172 | * always driven (eg, connected to an always on supply or | 195 | * always driven (eg, connected to an always on supply or |
173 | * GPIO that always drives an output. If they float power | 196 | * GPIO that always drives an output. If they float power |
174 | * consumption will rise. | 197 | * consumption will rise. |
175 | */ | 198 | */ |
176 | bool ldo_ena_always_driven; | 199 | bool ldo_ena_always_driven; |
200 | |||
201 | /* | ||
202 | * SPKMODE must be pulled internally by the device on this | ||
203 | * system. | ||
204 | */ | ||
205 | bool spkmode_pu; | ||
177 | }; | 206 | }; |
178 | 207 | ||
179 | #endif | 208 | #endif |