aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/i2c
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>2009-10-22 06:26:45 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-10-25 13:15:08 -0400
commit0b83ddebc6e884dc0221358cf68c461520fbdd8e (patch)
tree7c57a54fe8b0f02448597df3f7f81ea87a8b96b2 /include/linux/i2c
parent0ffc11800cb2a74b05c2f5b28966ebd50b27f70c (diff)
MFD: twl4030: add twl4030_codec MFD as a new child to the core
New MFD child to twl4030 MFD device. Reason for the twl4030_codec MFD: the vibra control is actually in the codec part of the twl4030. If both the vibra and the audio functionality is needed from the twl4030 at the same time, than they need to control the codec power and APLL at the same time without breaking the other driver. Also these two has to be able to work without the need for the other driver. This MFD device will be used by the drivers, which needs resources from the twl4030 codec like audio and vibra. The platform specific configuration data is passed along to the child drivers (audio, vibra). Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'include/linux/i2c')
-rw-r--r--include/linux/i2c/twl4030.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/i2c/twl4030.h b/include/linux/i2c/twl4030.h
index 2d02dfd7076c..42d6c722bd82 100644
--- a/include/linux/i2c/twl4030.h
+++ b/include/linux/i2c/twl4030.h
@@ -401,6 +401,23 @@ struct twl4030_power_data {
401 401
402extern void twl4030_power_init(struct twl4030_power_data *triton2_scripts); 402extern void twl4030_power_init(struct twl4030_power_data *triton2_scripts);
403 403
404struct twl4030_codec_audio_data {
405 unsigned int audio_mclk;
406 unsigned int ramp_delay_value;
407 unsigned int hs_extmute:1;
408 void (*set_hs_extmute)(int mute);
409};
410
411struct twl4030_codec_vibra_data {
412 unsigned int audio_mclk;
413 unsigned int coexist;
414};
415
416struct twl4030_codec_data {
417 struct twl4030_codec_audio_data *audio;
418 struct twl4030_codec_vibra_data *vibra;
419};
420
404struct twl4030_platform_data { 421struct twl4030_platform_data {
405 unsigned irq_base, irq_end; 422 unsigned irq_base, irq_end;
406 struct twl4030_bci_platform_data *bci; 423 struct twl4030_bci_platform_data *bci;
@@ -409,6 +426,7 @@ struct twl4030_platform_data {
409 struct twl4030_keypad_data *keypad; 426 struct twl4030_keypad_data *keypad;
410 struct twl4030_usb_data *usb; 427 struct twl4030_usb_data *usb;
411 struct twl4030_power_data *power; 428 struct twl4030_power_data *power;
429 struct twl4030_codec_data *codec;
412 430
413 /* LDO regulators */ 431 /* LDO regulators */
414 struct regulator_init_data *vdac; 432 struct regulator_init_data *vdac;