[s3c24xx] revert changes to gta02_wm8753.c in previous commit. They should not
[openwrt/svn-archive/archive.git] / target / linux / s3c24xx / files-2.6.30 / sound / soc / s3c24xx / gta02_wm8753.c
index 5f9ea7e42487c4804b0a990f41c3ee04d3dd1885..1f8f9db9b01d7af19b2b7b99b87b038968d6805f 100644 (file)
@@ -18,7 +18,6 @@
 #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>
@@ -29,6 +28,8 @@
 #include <plat/regs-iis.h>
 
 #include <mach/regs-clock.h>
+#include <mach/regs-gpio.h>
+#include <mach/hardware.h>
 #include <asm/io.h>
 #include <mach/regs-gpioj.h>
 #include <mach/gta02.h>
@@ -242,10 +243,10 @@ static int lm4853_set_spk(struct snd_kcontrol *kcontrol,
 
        if (val) {
                lm4853_state |= LM4853_SPK;
-               gpio_set_value(GTA02_GPIO_HP_IN, 0);
+               s3c2410_gpio_setpin(GTA02_GPIO_HP_IN, 0);
        } else {
                lm4853_state &= ~LM4853_SPK;
-               gpio_set_value(GTA02_GPIO_HP_IN, 1);
+               s3c2410_gpio_setpin(GTA02_GPIO_HP_IN, 1);
        }
 
        return 0;
@@ -264,10 +265,10 @@ static int lm4853_event(struct snd_soc_dapm_widget *w,
                        int event)
 {
        if (SND_SOC_DAPM_EVENT_ON(event))
-               gpio_set_value(GTA02_GPIO_AMP_SHUT, 0);
+               s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 0);
 
        if (SND_SOC_DAPM_EVENT_OFF(event))
-               gpio_set_value(GTA02_GPIO_AMP_SHUT, 1);
+               s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 1);
 
        return 0;
 }
@@ -448,40 +449,19 @@ static int __init neo1973_gta02_init(void)
 
        if (ret) {
                platform_device_put(neo1973_gta02_snd_device);
-               return 0;
+               return ret;
        }
 
        /* Initialise GPIOs used by amp */
-       ret = gpio_request(GTA02_GPIO_HP_IN, "GTA02_HP_IN");
-       if (ret) {
-               pr_err("%s: Failed to register GPIO %d\n", __func__, GTA02_GPIO_HP_IN);
-               goto err_unregister_device;
-       }
+       s3c2410_gpio_cfgpin(GTA02_GPIO_HP_IN, S3C2410_GPIO_OUTPUT);
+       s3c2410_gpio_cfgpin(GTA02_GPIO_AMP_SHUT, S3C2410_GPIO_OUTPUT);
 
-       ret = gpio_direction_output(GTA02_GPIO_HP_IN, 1);
-       if (ret) {
-               pr_err("%s: Failed to configure GPIO %d\n", __func__, GTA02_GPIO_HP_IN);
-               goto err_unregister_device;
-       }
+       /* Amp off by default */
+       s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 1);
 
-       ret = gpio_request(GTA02_GPIO_AMP_SHUT, "GTA02_AMP_SHUT");
-       if (ret) {
-               pr_err("%s: Failed to register GPIO %d\n", __func__, GTA02_GPIO_AMP_SHUT);
-               goto err_free_gpio_hp_in;
-       }
+       /* Speaker off by default */
+       s3c2410_gpio_setpin(GTA02_GPIO_HP_IN, 1);
 
-       ret = gpio_direction_output(GTA02_GPIO_AMP_SHUT, 1);
-       if (ret) {
-               pr_err("%s: Failed to configure GPIO %d\n", __func__, GTA02_GPIO_AMP_SHUT);
-               goto err_free_gpio_hp_in;
-       }
-
-
-       return 0;
-err_free_gpio_hp_in:
-       gpio_free(GTA02_GPIO_HP_IN);
-err_unregister_device:
-       platform_device_unregister(neo1973_gta02_snd_device);
        return ret;
 }
 module_init(neo1973_gta02_init);
@@ -490,8 +470,6 @@ static void __exit neo1973_gta02_exit(void)
 {
        snd_soc_unregister_dai(&bt_dai);
        platform_device_unregister(neo1973_gta02_snd_device);
-       gpio_free(GTA02_GPIO_HP_IN);
-       gpio_free(GTA02_GPIO_AMP_SHUT);
 }
 module_exit(neo1973_gta02_exit);