Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
[linux-2.6.git] / sound / soc / pxa / spitz.c
index 3d4738c..9a70b00 100644 (file)
 #include <linux/timer.h>
 #include <linux/interrupt.h>
 #include <linux/platform_device.h>
+#include <linux/gpio.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
 #include <sound/soc.h>
 #include <sound/soc-dapm.h>
 
 #include <asm/mach-types.h>
-#include <asm/hardware/scoop.h>
 #include <mach/pxa-regs.h>
 #include <mach/hardware.h>
-#include <mach/akita.h>
 #include <mach/spitz.h>
 #include "../codecs/wm8750.h"
 #include "pxa2xx-pcm.h"
@@ -63,8 +62,8 @@ static void spitz_ext_control(struct snd_soc_codec *codec)
                snd_soc_dapm_disable_pin(codec, "Mic Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
                snd_soc_dapm_enable_pin(codec, "Headphone Jack");
-               set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
-               set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
+               gpio_set_value(SPITZ_GPIO_MUTE_L, 1);
+               gpio_set_value(SPITZ_GPIO_MUTE_R, 1);
                break;
        case SPITZ_MIC:
                /* enable mic jack and bias, mute hp */
@@ -72,8 +71,8 @@ static void spitz_ext_control(struct snd_soc_codec *codec)
                snd_soc_dapm_disable_pin(codec, "Headset Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
                snd_soc_dapm_enable_pin(codec, "Mic Jack");
-               reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
-               reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
+               gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
+               gpio_set_value(SPITZ_GPIO_MUTE_R, 0);
                break;
        case SPITZ_LINE:
                /* enable line jack, disable mic bias and mute hp */
@@ -81,8 +80,8 @@ static void spitz_ext_control(struct snd_soc_codec *codec)
                snd_soc_dapm_disable_pin(codec, "Headset Jack");
                snd_soc_dapm_disable_pin(codec, "Mic Jack");
                snd_soc_dapm_enable_pin(codec, "Line Jack");
-               reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
-               reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
+               gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
+               gpio_set_value(SPITZ_GPIO_MUTE_R, 0);
                break;
        case SPITZ_HEADSET:
                /* enable and unmute headset jack enable mic bias, mute L hp */
@@ -90,8 +89,8 @@ static void spitz_ext_control(struct snd_soc_codec *codec)
                snd_soc_dapm_enable_pin(codec, "Mic Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
                snd_soc_dapm_enable_pin(codec, "Headset Jack");
-               reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
-               set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
+               gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
+               gpio_set_value(SPITZ_GPIO_MUTE_R, 1);
                break;
        case SPITZ_HP_OFF:
 
@@ -100,8 +99,8 @@ static void spitz_ext_control(struct snd_soc_codec *codec)
                snd_soc_dapm_disable_pin(codec, "Headset Jack");
                snd_soc_dapm_disable_pin(codec, "Mic Jack");
                snd_soc_dapm_disable_pin(codec, "Line Jack");
-               reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
-               reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
+               gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
+               gpio_set_value(SPITZ_GPIO_MUTE_R, 0);
                break;
        }
        snd_soc_dapm_sync(codec);
@@ -215,23 +214,14 @@ static int spitz_set_spk(struct snd_kcontrol *kcontrol,
 static int spitz_mic_bias(struct snd_soc_dapm_widget *w,
        struct snd_kcontrol *k, int event)
 {
-       if (machine_is_borzoi() || machine_is_spitz()) {
-               if (SND_SOC_DAPM_EVENT_ON(event))
-                       set_scoop_gpio(&spitzscoop2_device.dev,
-                               SPITZ_SCP2_MIC_BIAS);
-               else
-                       reset_scoop_gpio(&spitzscoop2_device.dev,
-                               SPITZ_SCP2_MIC_BIAS);
-       }
+       if (machine_is_borzoi() || machine_is_spitz())
+               gpio_set_value(SPITZ_GPIO_MIC_BIAS,
+                               SND_SOC_DAPM_EVENT_ON(event));
+
+       if (machine_is_akita())
+               gpio_set_value(AKITA_GPIO_MIC_BIAS,
+                               SND_SOC_DAPM_EVENT_ON(event));
 
-       if (machine_is_akita()) {
-               if (SND_SOC_DAPM_EVENT_ON(event))
-                       akita_set_ioexp(&akitaioexp_device.dev,
-                               AKITA_IOEXP_MIC_BIAS);
-               else
-                       akita_reset_ioexp(&akitaioexp_device.dev,
-                               AKITA_IOEXP_MIC_BIAS);
-       }
        return 0;
 }