diff options
author | Candelaria Villareal, Jorge <x0107209@ti.com> | 2009-08-25 11:13:25 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-08-25 14:30:32 -0400 |
commit | 30cd0c4ad57f45e257758edad537cc5f6554e711 (patch) | |
tree | e9e297c49c8400c1838543d1d7fb8b8a665be640 /sound/soc | |
parent | faf907c7ba3d7df6266366556817f2ef7314640a (diff) |
ASoC: SDP3430: Fix TWL GPIO6 pin mux request
Fix the write to PMBR1 register through I2C. Also, the constant which
holds the value to write is now called TWL4030_GPIO6_PWM0_MUTE. This
name is based on TRM to avoid confusion.
Signed-off-by: Jorge Eduardo Candelaria <x0107209@ti.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/omap/sdp3430.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sound/soc/omap/sdp3430.c b/sound/soc/omap/sdp3430.c index f7e5b7488c35..4a3f62d1f295 100644 --- a/sound/soc/omap/sdp3430.c +++ b/sound/soc/omap/sdp3430.c | |||
@@ -40,8 +40,10 @@ | |||
40 | #include "omap-pcm.h" | 40 | #include "omap-pcm.h" |
41 | #include "../codecs/twl4030.h" | 41 | #include "../codecs/twl4030.h" |
42 | 42 | ||
43 | #define TWL4030_INTBR_PMBR1 0x0D | 43 | /* TWL4030 PMBR1 Register */ |
44 | #define EXTMUTE(value) (value << 2) | 44 | #define TWL4030_INTBR_PMBR1 0x0D |
45 | /* TWL4030 PMBR1 Register GPIO6 mux bit */ | ||
46 | #define TWL4030_GPIO6_PWM0_MUTE(value) (value << 2) | ||
45 | 47 | ||
46 | static struct snd_soc_card snd_soc_sdp3430; | 48 | static struct snd_soc_card snd_soc_sdp3430; |
47 | 49 | ||
@@ -299,6 +301,7 @@ static struct platform_device *sdp3430_snd_device; | |||
299 | static int __init sdp3430_soc_init(void) | 301 | static int __init sdp3430_soc_init(void) |
300 | { | 302 | { |
301 | int ret; | 303 | int ret; |
304 | u8 pin_mux; | ||
302 | 305 | ||
303 | if (!machine_is_omap_3430sdp()) { | 306 | if (!machine_is_omap_3430sdp()) { |
304 | pr_debug("Not SDP3430!\n"); | 307 | pr_debug("Not SDP3430!\n"); |
@@ -318,8 +321,12 @@ static int __init sdp3430_soc_init(void) | |||
318 | *(unsigned int *)sdp3430_dai[1].cpu_dai->private_data = 2; /* McBSP3 */ | 321 | *(unsigned int *)sdp3430_dai[1].cpu_dai->private_data = 2; /* McBSP3 */ |
319 | 322 | ||
320 | /* Set TWL4030 GPIO6 as EXTMUTE signal */ | 323 | /* Set TWL4030 GPIO6 as EXTMUTE signal */ |
321 | twl4030_i2c_write_u8(TWL4030_MODULE_INTBR, EXTMUTE(0x02), | 324 | twl4030_i2c_read_u8(TWL4030_MODULE_INTBR, &pin_mux, |
322 | TWL4030_MODULE_INTBR); | 325 | TWL4030_INTBR_PMBR1); |
326 | pin_mux &= ~TWL4030_GPIO6_PWM0_MUTE(0x03); | ||
327 | pin_mux |= TWL4030_GPIO6_PWM0_MUTE(0x02); | ||
328 | twl4030_i2c_write_u8(TWL4030_MODULE_INTBR, pin_mux, | ||
329 | TWL4030_INTBR_PMBR1); | ||
323 | 330 | ||
324 | ret = platform_device_add(sdp3430_snd_device); | 331 | ret = platform_device_add(sdp3430_snd_device); |
325 | if (ret) | 332 | if (ret) |