#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 <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>
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;
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;
}
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);
{
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);