Skip to content

Commit

Permalink
Input: ucb1400 - move static function from header into core
Browse files Browse the repository at this point in the history
it's a little too large for static line.
The ts is currently the only mainline user but Marek Vasut claims that
there is a battery driver in an ARM tree which also needs this function.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
  • Loading branch information
Sebastian Andrzej Siewior authored and Dmitry Torokhov committed May 27, 2009
1 parent 10494dc commit cbf806d
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 19 deletions.
20 changes: 20 additions & 0 deletions drivers/mfd/ucb1400_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,26 @@
#include <linux/module.h>
#include <linux/ucb1400.h>

unsigned int ucb1400_adc_read(struct snd_ac97 *ac97, u16 adc_channel,
int adcsync)
{
unsigned int val;

if (adcsync)
adc_channel |= UCB_ADC_SYNC_ENA;

ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA | adc_channel);
ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA | adc_channel |
UCB_ADC_START);

while (!((val = ucb1400_reg_read(ac97, UCB_ADC_DATA))
& UCB_ADC_DAT_VALID))
schedule_timeout_uninterruptible(1);

return val & UCB_ADC_DAT_MASK;
}
EXPORT_SYMBOL_GPL(ucb1400_adc_read);

static int ucb1400_core_probe(struct device *dev)
{
int err;
Expand Down
23 changes: 4 additions & 19 deletions include/linux/ucb1400.h
Original file line number Diff line number Diff line change
Expand Up @@ -134,28 +134,13 @@ static inline void ucb1400_adc_enable(struct snd_ac97 *ac97)
ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA);
}

static unsigned int ucb1400_adc_read(struct snd_ac97 *ac97, u16 adc_channel,
int adcsync)
{
unsigned int val;

if (adcsync)
adc_channel |= UCB_ADC_SYNC_ENA;

ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA | adc_channel);
ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA | adc_channel |
UCB_ADC_START);

while (!((val = ucb1400_reg_read(ac97, UCB_ADC_DATA))
& UCB_ADC_DAT_VALID))
schedule_timeout_uninterruptible(1);

return val & UCB_ADC_DAT_MASK;
}

static inline void ucb1400_adc_disable(struct snd_ac97 *ac97)
{
ucb1400_reg_write(ac97, UCB_ADC_CR, 0);
}


unsigned int ucb1400_adc_read(struct snd_ac97 *ac97, u16 adc_channel,
int adcsync);

#endif

0 comments on commit cbf806d

Please sign in to comment.