aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2009-05-27 09:22:58 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2009-05-27 09:25:05 -0400
commitcbf806dd9302f3ff27ba496dae474b9da6b58873 (patch)
tree083051bf123c7bc52bcdc53918a82fb1ca470067 /drivers
parent10494dce0b43ed3212abde64bf759705ee3c56ef (diff)
Input: ucb1400 - move static function from header into core
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/mfd/ucb1400_core.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/mfd/ucb1400_core.c b/drivers/mfd/ucb1400_core.c
index 178159e264ce..78c2135c5de6 100644
--- a/drivers/mfd/ucb1400_core.c
+++ b/drivers/mfd/ucb1400_core.c
@@ -23,6 +23,26 @@
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/ucb1400.h> 24#include <linux/ucb1400.h>
25 25
26unsigned int ucb1400_adc_read(struct snd_ac97 *ac97, u16 adc_channel,
27 int adcsync)
28{
29 unsigned int val;
30
31 if (adcsync)
32 adc_channel |= UCB_ADC_SYNC_ENA;
33
34 ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA | adc_channel);
35 ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA | adc_channel |
36 UCB_ADC_START);
37
38 while (!((val = ucb1400_reg_read(ac97, UCB_ADC_DATA))
39 & UCB_ADC_DAT_VALID))
40 schedule_timeout_uninterruptible(1);
41
42 return val & UCB_ADC_DAT_MASK;
43}
44EXPORT_SYMBOL_GPL(ucb1400_adc_read);
45
26static int ucb1400_core_probe(struct device *dev) 46static int ucb1400_core_probe(struct device *dev)
27{ 47{
28 int err; 48 int err;