aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Miao <eric.miao@marvell.com>2008-08-28 18:19:32 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-09-23 17:04:32 -0400
commitf16177c20c42e1bd780b35259a995f7718986dd4 (patch)
tree9da7910f1d41178ad0d4d112d5389253d8622201
parent55b951e7e6b9f983286c40925e340124d79bb0f7 (diff)
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.c9
-rw-r--r--drivers/hwmon/max1111.c13
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)
132 if (machine_is_tosa()) // Ugly, better move this function into another module 132 if (machine_is_tosa()) // Ugly, better move this function into another module
133 return 0; 133 return 0;
134 134
135#ifdef CONFIG_SENSORS_MAX1111
136 extern int max1111_read_channel(int);
137
138 /* max1111 accepts channels from 0-3, however,
139 * it is encoded from 0-7 here in the code.
140 */
141 return max1111_read_channel(channel >> 1);
142#else
135 return corgi_ssp_max1111_get((channel << MAXCTRL_SEL_SH) | MAXCTRL_PD0 | MAXCTRL_PD1 143 return corgi_ssp_max1111_get((channel << MAXCTRL_SEL_SH) | MAXCTRL_PD0 | MAXCTRL_PD1
136 | MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR); 144 | MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR);
145#endif
137} 146}
138 147
139void sharpsl_pm_pxa_init(void) 148void 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)
66 return (v1 << 2) | (v2 >> 6); 66 return (v1 << 2) | (v2 >> 6);
67} 67}
68 68
69#ifdef CONFIG_SHARPSL_PM
70static struct max1111_data *the_max1111;
71
72int max1111_read_channel(int channel)
73{
74 return max1111_read(&the_max1111->spi->dev, channel);
75}
76EXPORT_SYMBOL(max1111_read_channel);
77#endif
78
69/* 79/*
70 * NOTE: SPI devices do not have a default 'name' attribute, which is 80 * NOTE: SPI devices do not have a default 'name' attribute, which is
71 * likely to be used by hwmon applications to distinguish between 81 * likely to be used by hwmon applications to distinguish between
@@ -181,6 +191,9 @@ static int __devinit max1111_probe(struct spi_device *spi)
181 goto err_remove; 191 goto err_remove;
182 } 192 }
183 193
194#ifdef CONFIG_SHARPSL_PM
195 the_max1111 = data;
196#endif
184 return 0; 197 return 0;
185 198
186err_remove: 199err_remove: