aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/twl-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/twl-core.c')
-rw-r--r--drivers/mfd/twl-core.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/mfd/twl-core.c b/drivers/mfd/twl-core.c
index 2a760653419..19a930d0624 100644
--- a/drivers/mfd/twl-core.c
+++ b/drivers/mfd/twl-core.c
@@ -115,7 +115,8 @@
115#define twl_has_watchdog() false 115#define twl_has_watchdog() false
116#endif 116#endif
117 117
118#if defined(CONFIG_TWL4030_CODEC) || defined(CONFIG_TWL4030_CODEC_MODULE) 118#if defined(CONFIG_TWL4030_CODEC) || defined(CONFIG_TWL4030_CODEC_MODULE) ||\
119 defined(CONFIG_SND_SOC_TWL6030) || defined(CONFIG_SND_SOC_TWL6030_MODULE)
119#define twl_has_codec() true 120#define twl_has_codec() true
120#else 121#else
121#define twl_has_codec() false 122#define twl_has_codec() false
@@ -711,8 +712,19 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features)
711 return PTR_ERR(child); 712 return PTR_ERR(child);
712 } 713 }
713 714
714 if (twl_has_codec() && pdata->codec) { 715 if (twl_has_codec() && pdata->codec && twl_class_is_4030()) {
715 child = add_child(1, "twl4030_codec", 716 sub_chip_id = twl_map[TWL_MODULE_AUDIO_VOICE].sid;
717 child = add_child(sub_chip_id, "twl4030_codec",
718 pdata->codec, sizeof(*pdata->codec),
719 false, 0, 0);
720 if (IS_ERR(child))
721 return PTR_ERR(child);
722 }
723
724 /* Phoenix*/
725 if (twl_has_codec() && pdata->codec && twl_class_is_6030()) {
726 sub_chip_id = twl_map[TWL_MODULE_AUDIO_VOICE].sid;
727 child = add_child(sub_chip_id, "twl6030_codec",
716 pdata->codec, sizeof(*pdata->codec), 728 pdata->codec, sizeof(*pdata->codec),
717 false, 0, 0); 729 false, 0, 0);
718 if (IS_ERR(child)) 730 if (IS_ERR(child))