]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - drivers/hwmon/mc13783-adc.c
hwmon: (lm90) Add support for Philips SA56004
[linux-2.6.git] / drivers / hwmon / mc13783-adc.c
index 883fa8197da42845086fb180e9196afb7e825e0e..d5226c9e1201521046458a403d83fba245032db3 100644 (file)
  * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#include <linux/mfd/mc13783-private.h>
+#include <linux/mfd/mc13783.h>
 #include <linux/platform_device.h>
 #include <linux/hwmon-sysfs.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/hwmon.h>
+#include <linux/slab.h>
 #include <linux/init.h>
 #include <linux/err.h>
 
@@ -143,6 +144,14 @@ static const struct attribute_group mc13783_group_ts = {
        .attrs = mc13783_attr_ts,
 };
 
+static int mc13783_adc_use_touchscreen(struct platform_device *pdev)
+{
+       struct mc13783_adc_priv *priv = platform_get_drvdata(pdev);
+       unsigned flags = mc13783_get_flags(priv->mc13783);
+
+       return flags & MC13783_USE_TOUCHSCREEN;
+}
+
 static int __init mc13783_adc_probe(struct platform_device *pdev)
 {
        struct mc13783_adc_priv *priv;
@@ -161,10 +170,11 @@ static int __init mc13783_adc_probe(struct platform_device *pdev)
        if (ret)
                goto out_err_create1;
 
-       if (!(priv->mc13783->flags & MC13783_USE_TOUCHSCREEN))
+       if (!mc13783_adc_use_touchscreen(pdev)) {
                ret = sysfs_create_group(&pdev->dev.kobj, &mc13783_group_ts);
                if (ret)
                        goto out_err_create2;
+       }
 
        priv->hwmon_dev = hwmon_device_register(&pdev->dev);
        if (IS_ERR(priv->hwmon_dev)) {
@@ -179,7 +189,7 @@ static int __init mc13783_adc_probe(struct platform_device *pdev)
 
 out_err_register:
 
-       if (!(priv->mc13783->flags & MC13783_USE_TOUCHSCREEN))
+       if (!mc13783_adc_use_touchscreen(pdev))
                sysfs_remove_group(&pdev->dev.kobj, &mc13783_group_ts);
 out_err_create2:
 
@@ -198,7 +208,7 @@ static int __devexit mc13783_adc_remove(struct platform_device *pdev)
 
        hwmon_device_unregister(priv->hwmon_dev);
 
-       if (!(priv->mc13783->flags & MC13783_USE_TOUCHSCREEN))
+       if (!mc13783_adc_use_touchscreen(pdev))
                sysfs_remove_group(&pdev->dev.kobj, &mc13783_group_ts);
 
        sysfs_remove_group(&pdev->dev.kobj, &mc13783_group);