diff options
| author | Eric Miao <eric.miao@marvell.com> | 2008-09-05 18:15:22 +0800 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-09-23 22:04:39 +0100 | 
| commit | 6168cda927ecdf3347537e0d01618ca2a2272007 (patch) | |
| tree | 4ebd67abd724ed3af2a8c3c555d221761b6042f5 /sound | |
| parent | 2d91f94174ce42378aafc7bedda2588a913d3eab (diff) | |
| download | kernel_samsung_tuna-6168cda927ecdf3347537e0d01618ca2a2272007.zip kernel_samsung_tuna-6168cda927ecdf3347537e0d01618ca2a2272007.tar.gz kernel_samsung_tuna-6168cda927ecdf3347537e0d01618ca2a2272007.tar.bz2  | |
[ARM] pxa/corgi: use generic GPIO API for SCOOP GPIOs
Original patch from Dmitry Baryshkov's inital scoop gpio conversion
work at http://git.infradead.org/users/dbaryshkov/zaurus-2.6.git.
Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'sound')
| -rw-r--r-- | sound/soc/pxa/corgi.c | 34 | 
1 files changed, 13 insertions, 21 deletions
diff --git a/sound/soc/pxa/corgi.c b/sound/soc/pxa/corgi.c index 0a53f72..fa69faa 100644 --- a/sound/soc/pxa/corgi.c +++ b/sound/soc/pxa/corgi.c @@ -18,13 +18,13 @@  #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/corgi.h> @@ -54,8 +54,8 @@ static void corgi_ext_control(struct snd_soc_codec *codec)  	switch (corgi_jack_func) {  	case CORGI_HP:  		/* set = unmute headphone */ -		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L); -		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R); +		gpio_set_value(CORGI_GPIO_MUTE_L, 1); +		gpio_set_value(CORGI_GPIO_MUTE_R, 1);  		snd_soc_dapm_disable_pin(codec, "Mic Jack");  		snd_soc_dapm_disable_pin(codec, "Line Jack");  		snd_soc_dapm_enable_pin(codec, "Headphone Jack"); @@ -63,24 +63,24 @@ static void corgi_ext_control(struct snd_soc_codec *codec)  		break;  	case CORGI_MIC:  		/* reset = mute headphone */ -		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L); -		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R); +		gpio_set_value(CORGI_GPIO_MUTE_L, 0); +		gpio_set_value(CORGI_GPIO_MUTE_R, 0);  		snd_soc_dapm_enable_pin(codec, "Mic Jack");  		snd_soc_dapm_disable_pin(codec, "Line Jack");  		snd_soc_dapm_disable_pin(codec, "Headphone Jack");  		snd_soc_dapm_disable_pin(codec, "Headset Jack");  		break;  	case CORGI_LINE: -		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L); -		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R); +		gpio_set_value(CORGI_GPIO_MUTE_L, 0); +		gpio_set_value(CORGI_GPIO_MUTE_R, 0);  		snd_soc_dapm_disable_pin(codec, "Mic Jack");  		snd_soc_dapm_enable_pin(codec, "Line Jack");  		snd_soc_dapm_disable_pin(codec, "Headphone Jack");  		snd_soc_dapm_disable_pin(codec, "Headset Jack");  		break;  	case CORGI_HEADSET: -		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L); -		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R); +		gpio_set_value(CORGI_GPIO_MUTE_L, 0); +		gpio_set_value(CORGI_GPIO_MUTE_R, 1);  		snd_soc_dapm_enable_pin(codec, "Mic Jack");  		snd_soc_dapm_disable_pin(codec, "Line Jack");  		snd_soc_dapm_disable_pin(codec, "Headphone Jack"); @@ -114,8 +114,8 @@ static int corgi_shutdown(struct snd_pcm_substream *substream)  	struct snd_soc_codec *codec = rtd->socdev->codec;  	/* set = unmute headphone */ -	set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L); -	set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R); +	gpio_set_value(CORGI_GPIO_MUTE_L, 1); +	gpio_set_value(CORGI_GPIO_MUTE_R, 1);  	return 0;  } @@ -218,22 +218,14 @@ static int corgi_set_spk(struct snd_kcontrol *kcontrol,  static int corgi_amp_event(struct snd_soc_dapm_widget *w,  	struct snd_kcontrol *k, int event)  { -	if (SND_SOC_DAPM_EVENT_ON(event)) -		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON); -	else -		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON); - +	gpio_set_value(CORGI_GPIO_APM_ON, SND_SOC_DAPM_EVENT_ON(event));  	return 0;  }  static int corgi_mic_event(struct snd_soc_dapm_widget *w,  	struct snd_kcontrol *k, int event)  { -	if (SND_SOC_DAPM_EVENT_ON(event)) -		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MIC_BIAS); -	else -		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MIC_BIAS); - +	gpio_set_value(CORGI_GPIO_MIC_BIAS, SND_SOC_DAPM_EVENT_ON(event));  	return 0;  }  | 
