hwmon: add support for THMC50 and ADM1022
[firefly-linux-kernel-4.4.55.git] / drivers / hwmon / applesmc.c
index 5456e86088921306370218c7cbdd1449d060934a..fd1281f4220909e3f80d10aee1a3a6c501cf9fcc 100644 (file)
@@ -491,6 +491,12 @@ out:
 
 /* Sysfs Files */
 
+static ssize_t applesmc_name_show(struct device *dev,
+                                  struct device_attribute *attr, char *buf)
+{
+       return snprintf(buf, PAGE_SIZE, "applesmc\n");
+}
+
 static ssize_t applesmc_position_show(struct device *dev,
                                   struct device_attribute *attr, char *buf)
 {
@@ -913,6 +919,8 @@ static struct led_classdev applesmc_backlight = {
        .brightness_set         = applesmc_brightness_set,
 };
 
+static DEVICE_ATTR(name, 0444, applesmc_name_show, NULL);
+
 static DEVICE_ATTR(position, 0444, applesmc_position_show, NULL);
 static DEVICE_ATTR(calibrate, 0644,
                        applesmc_calibrate_show, applesmc_calibrate_store);
@@ -981,7 +989,7 @@ static SENSOR_DEVICE_ATTR_2(fan##offset##_output, S_IRUGO | S_IWUSR, \
 static SENSOR_DEVICE_ATTR(fan##offset##_manual, S_IRUGO | S_IWUSR, \
        applesmc_show_fan_manual, applesmc_store_fan_manual, offset-1); \
 \
-static SENSOR_DEVICE_ATTR(fan##offset##_position, S_IRUGO, \
+static SENSOR_DEVICE_ATTR(fan##offset##_label, S_IRUGO, \
        applesmc_show_fan_position, NULL, offset-1); \
 \
 static struct attribute *fan##offset##_attributes[] = { \
@@ -991,7 +999,7 @@ static struct attribute *fan##offset##_attributes[] = { \
        &sensor_dev_attr_fan##offset##_safe.dev_attr.attr, \
        &sensor_dev_attr_fan##offset##_output.dev_attr.attr, \
        &sensor_dev_attr_fan##offset##_manual.dev_attr.attr, \
-       &sensor_dev_attr_fan##offset##_position.dev_attr.attr, \
+       &sensor_dev_attr_fan##offset##_label.dev_attr.attr, \
        NULL \
 };
 
@@ -1100,7 +1108,7 @@ static int applesmc_create_accelerometer(void)
        /* initialize the input class */
        applesmc_idev->name = "applesmc";
        applesmc_idev->id.bustype = BUS_HOST;
-       applesmc_idev->cdev.dev = &pdev->dev;
+       applesmc_idev->dev.parent = &pdev->dev;
        applesmc_idev->evbit[0] = BIT(EV_ABS);
        applesmc_idev->open = applesmc_idev_open;
        applesmc_idev->close = applesmc_idev_close;
@@ -1197,10 +1205,14 @@ static int __init applesmc_init(void)
                goto out_driver;
        }
 
+       ret = sysfs_create_file(&pdev->dev.kobj, &dev_attr_name.attr);
+       if (ret)
+               goto out_device;
+
        /* Create key enumeration sysfs files */
        ret = sysfs_create_group(&pdev->dev.kobj, &key_enumeration_group);
        if (ret)
-               goto out_device;
+               goto out_name;
 
        /* create fan files */
        count = applesmc_get_fan_count();
@@ -1300,6 +1312,8 @@ out_fan_1:
        sysfs_remove_group(&pdev->dev.kobj, &fan_attribute_groups[1]);
 out_key_enumeration:
        sysfs_remove_group(&pdev->dev.kobj, &key_enumeration_group);
+out_name:
+       sysfs_remove_file(&pdev->dev.kobj, &dev_attr_name.attr);
 out_device:
        platform_device_unregister(pdev);
 out_driver:
@@ -1325,6 +1339,7 @@ static void __exit applesmc_exit(void)
        sysfs_remove_group(&pdev->dev.kobj, &fan_attribute_groups[0]);
        sysfs_remove_group(&pdev->dev.kobj, &fan_attribute_groups[1]);
        sysfs_remove_group(&pdev->dev.kobj, &key_enumeration_group);
+       sysfs_remove_file(&pdev->dev.kobj, &dev_attr_name.attr);
        platform_device_unregister(pdev);
        platform_driver_unregister(&applesmc_driver);
        release_region(APPLESMC_DATA_PORT, APPLESMC_NR_PORTS);