aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/omap
diff options
context:
space:
mode:
authorCandelaria Villareal, Jorge <x0107209@ti.com>2009-08-25 11:13:25 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-08-25 14:30:32 -0400
commit30cd0c4ad57f45e257758edad537cc5f6554e711 (patch)
treee9e297c49c8400c1838543d1d7fb8b8a665be640 /sound/soc/omap
parentfaf907c7ba3d7df6266366556817f2ef7314640a (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/omap')
-rw-r--r--sound/soc/omap/sdp3430.c15
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
46static struct snd_soc_card snd_soc_sdp3430; 48static struct snd_soc_card snd_soc_sdp3430;
47 49
@@ -299,6 +301,7 @@ static struct platform_device *sdp3430_snd_device;
299static int __init sdp3430_soc_init(void) 301static 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)