diff options
author | Eric Miao <eric.miao@marvell.com> | 2008-08-29 00:19:32 +0200 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-09-23 23:04:32 +0200 |
commit | f16177c20c42e1bd780b35259a995f7718986dd4 (patch) | |
tree | 9da7910f1d41178ad0d4d112d5389253d8622201 | |
parent | hwmon: add max1111 Low-power Multichannel Serial 8-bit ADCs (diff) | |
download | linux-f16177c20c42e1bd780b35259a995f7718986dd4.tar.xz linux-f16177c20c42e1bd780b35259a995f7718986dd4.zip |
hwmon: add max1111_read_channel() for use by sharpsl_pm
This is not generic, and is added here for backward compatibility.
It is made an individual commit here to make it easier for revert
once the sharpsl_pm gets generic enough.
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/mach-pxa/sharpsl_pm.c | 9 | ||||
-rw-r--r-- | drivers/hwmon/max1111.c | 13 |
2 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c index e804ae09370c..9427d8088395 100644 --- a/arch/arm/mach-pxa/sharpsl_pm.c +++ b/arch/arm/mach-pxa/sharpsl_pm.c @@ -132,8 +132,17 @@ int sharpsl_pm_pxa_read_max1111(int channel) if (machine_is_tosa()) // Ugly, better move this function into another module return 0; +#ifdef CONFIG_SENSORS_MAX1111 + extern int max1111_read_channel(int); + + /* max1111 accepts channels from 0-3, however, + * it is encoded from 0-7 here in the code. + */ + return max1111_read_channel(channel >> 1); +#else return corgi_ssp_max1111_get((channel << MAXCTRL_SEL_SH) | MAXCTRL_PD0 | MAXCTRL_PD1 | MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR); +#endif } void sharpsl_pm_pxa_init(void) diff --git a/drivers/hwmon/max1111.c b/drivers/hwmon/max1111.c index 12c05774a1c3..bfaa665ccf32 100644 --- a/drivers/hwmon/max1111.c +++ b/drivers/hwmon/max1111.c @@ -66,6 +66,16 @@ static int max1111_read(struct device *dev, int channel) return (v1 << 2) | (v2 >> 6); } +#ifdef CONFIG_SHARPSL_PM +static struct max1111_data *the_max1111; + +int max1111_read_channel(int channel) +{ + return max1111_read(&the_max1111->spi->dev, channel); +} +EXPORT_SYMBOL(max1111_read_channel); +#endif + /* * NOTE: SPI devices do not have a default 'name' attribute, which is * likely to be used by hwmon applications to distinguish between @@ -181,6 +191,9 @@ static int __devinit max1111_probe(struct spi_device *spi) goto err_remove; } +#ifdef CONFIG_SHARPSL_PM + the_max1111 = data; +#endif return 0; err_remove: |