hwmon: add max1111_read_channel() for use by sharpsl_pm
authorEric Miao <eric.miao@marvell.com>
Thu, 28 Aug 2008 22:19:32 +0000 (06:19 +0800)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 23 Sep 2008 21:04:32 +0000 (22:04 +0100)
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>
arch/arm/mach-pxa/sharpsl_pm.c
drivers/hwmon/max1111.c

index e804ae09370c0bc756aa69e55a3ea81d1dead4d3..9427d808839578f2e558c66fef0212e4edfe3007 100644 (file)
@@ -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)
index 12c05774a1c3b9d266ab830d3a5f4021ff3391e9..bfaa665ccf324a25d9e40368135f24b876d0b8d6 100644 (file)
@@ -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: