diff options
-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: |