ASoC: neo1973_gta02_wm8753: Replace deprecated s3c_gpio calls with gpiolib
With the s3c platform has implementing gpiolib support the s3c_gpio api has been deprecated. This patch gets rid of all s3c_gpio calls and replaces them by using gpiolib. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
69331fbdee
commit
82c4362ee3
1 changed files with 36 additions and 17 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* neo1973_gta02_wm8753.c -- SoC audio for Neo1973
|
* neo1973_gta02_wm8753.c -- SoC audio for Openmoko Freerunner(GTA02)
|
||||||
*
|
*
|
||||||
* Copyright 2007 Openmoko Inc
|
* Copyright 2007 Openmoko Inc
|
||||||
* Author: Graeme Gregory <graeme@openmoko.org>
|
* Author: Graeme Gregory <graeme@openmoko.org>
|
||||||
|
@ -18,6 +18,7 @@
|
||||||
#include <linux/timer.h>
|
#include <linux/timer.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
|
#include <linux/gpio.h>
|
||||||
#include <sound/core.h>
|
#include <sound/core.h>
|
||||||
#include <sound/pcm.h>
|
#include <sound/pcm.h>
|
||||||
#include <sound/soc.h>
|
#include <sound/soc.h>
|
||||||
|
@ -28,10 +29,7 @@
|
||||||
#include <plat/regs-iis.h>
|
#include <plat/regs-iis.h>
|
||||||
|
|
||||||
#include <mach/regs-clock.h>
|
#include <mach/regs-clock.h>
|
||||||
#include <mach/regs-gpio.h>
|
|
||||||
#include <mach/hardware.h>
|
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <mach/regs-gpioj.h>
|
|
||||||
#include <mach/gta02.h>
|
#include <mach/gta02.h>
|
||||||
#include "../codecs/wm8753.h"
|
#include "../codecs/wm8753.h"
|
||||||
#include "s3c24xx-pcm.h"
|
#include "s3c24xx-pcm.h"
|
||||||
|
@ -243,10 +241,10 @@ static int lm4853_set_spk(struct snd_kcontrol *kcontrol,
|
||||||
|
|
||||||
if (val) {
|
if (val) {
|
||||||
lm4853_state |= LM4853_SPK;
|
lm4853_state |= LM4853_SPK;
|
||||||
s3c2410_gpio_setpin(GTA02_GPIO_HP_IN, 0);
|
gpio_set_value(GTA02_GPIO_HP_IN, 0);
|
||||||
} else {
|
} else {
|
||||||
lm4853_state &= ~LM4853_SPK;
|
lm4853_state &= ~LM4853_SPK;
|
||||||
s3c2410_gpio_setpin(GTA02_GPIO_HP_IN, 1);
|
gpio_set_value(GTA02_GPIO_HP_IN, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -264,11 +262,7 @@ static int lm4853_event(struct snd_soc_dapm_widget *w,
|
||||||
struct snd_kcontrol *k,
|
struct snd_kcontrol *k,
|
||||||
int event)
|
int event)
|
||||||
{
|
{
|
||||||
if (SND_SOC_DAPM_EVENT_ON(event))
|
gpio_set_value(GTA02_GPIO_AMP_SHUT, SND_SOC_DAPM_EVENT_OFF(value));
|
||||||
s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 0);
|
|
||||||
|
|
||||||
if (SND_SOC_DAPM_EVENT_OFF(event))
|
|
||||||
s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 1);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -453,15 +447,38 @@ static int __init neo1973_gta02_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialise GPIOs used by amp */
|
/* Initialise GPIOs used by amp */
|
||||||
s3c2410_gpio_cfgpin(GTA02_GPIO_HP_IN, S3C2410_GPIO_OUTPUT);
|
ret = gpio_request(GTA02_GPIO_HP_IN, "GTA02_HP_IN");
|
||||||
s3c2410_gpio_cfgpin(GTA02_GPIO_AMP_SHUT, S3C2410_GPIO_OUTPUT);
|
if (ret) {
|
||||||
|
pr_err("gta02_wm8753: Failed to register GPIO %d\n", GTA02_GPIO_HP_IN);
|
||||||
|
goto err_unregister_device;
|
||||||
|
}
|
||||||
|
|
||||||
/* Amp off by default */
|
ret = gpio_direction_output(GTA02_GPIO_AMP_HP_IN, 1);
|
||||||
s3c2410_gpio_setpin(GTA02_GPIO_AMP_SHUT, 1);
|
if (ret) {
|
||||||
|
pr_err("gta02_wm8753: Failed to configure GPIO %d\n", GTA02_GPIO_HP_IN);
|
||||||
|
goto err_free_gpio_hp_in;
|
||||||
|
}
|
||||||
|
|
||||||
/* Speaker off by default */
|
ret = gpio_request(GTA02_GPIO_AMP_SHUT, "GTA02_AMP_SHUT");
|
||||||
s3c2410_gpio_setpin(GTA02_GPIO_HP_IN, 1);
|
if (ret) {
|
||||||
|
pr_err("gta02_wm8753: Failed to register GPIO %d\n", GTA02_GPIO_AMP_SHUT);
|
||||||
|
goto err_free_gpio_hp_in;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = gpio_direction_output(GTA02_GPIO_AMP_SHUT, 1);
|
||||||
|
if (ret) {
|
||||||
|
pr_err("gta02_wm8753: Failed to configure GPIO %d\n", GTA02_GPIO_AMP_SHUT);
|
||||||
|
goto err_free_gpio_amp_shut;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
err_free_gpio_amp_shut:
|
||||||
|
gpio_free(GTA02_GPIO_AMP_SHUT);
|
||||||
|
err_free_gpio_hp_in:
|
||||||
|
gpio_free(GTA02_GPIO_HP_IN);
|
||||||
|
err_unregister_device:
|
||||||
|
platform_device_unregister(neo1973_gta02_snd_device);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
module_init(neo1973_gta02_init);
|
module_init(neo1973_gta02_init);
|
||||||
|
@ -470,6 +487,8 @@ static void __exit neo1973_gta02_exit(void)
|
||||||
{
|
{
|
||||||
snd_soc_unregister_dai(&bt_dai);
|
snd_soc_unregister_dai(&bt_dai);
|
||||||
platform_device_unregister(neo1973_gta02_snd_device);
|
platform_device_unregister(neo1973_gta02_snd_device);
|
||||||
|
gpio_free(GTA02_GPIO_HP_IN);
|
||||||
|
gpio_free(GTA02_GPIO_AMP_SHUT);
|
||||||
}
|
}
|
||||||
module_exit(neo1973_gta02_exit);
|
module_exit(neo1973_gta02_exit);
|
||||||
|
|
||||||
|
|
Reference in a new issue