leds-lp55xx: use common device attribute driver function
authorMilo(Woogyom) Kim <milo.kim@ti.com>
Tue, 5 Feb 2013 10:20:45 +0000 (19:20 +0900)
committerBryan Wu <cooloney@gmail.com>
Wed, 6 Feb 2013 23:59:29 +0000 (15:59 -0800)
 lp5521/5523_register_sysfs() are replaced with lp55xx common driver function,
 lp55xx_register_sysfs().
 Chip specific device attributes are configurable using 'dev_attr_group'.

 Error condition name is changed:
 use specific error condition, 'err_register_sysfs' rather than unclear name,
 'fail2'.

Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
drivers/leds/leds-lp5521.c
drivers/leds/leds-lp5523.c

index 89371e0..abc3313 100644 (file)
@@ -506,12 +506,6 @@ static const struct attribute_group lp5521_group = {
        .attrs = lp5521_attributes,
 };
 
-static int lp5521_register_sysfs(struct i2c_client *client)
-{
-       struct device *dev = &client->dev;
-       return sysfs_create_group(&dev->kobj, &lp5521_group);
-}
-
 static void lp5521_unregister_sysfs(struct i2c_client *client)
 {
        struct device *dev = &client->dev;
@@ -535,6 +529,7 @@ static struct lp55xx_device_config lp5521_cfg = {
        .set_led_current    = lp5521_set_led_current,
        .firmware_cb        = lp5521_firmware_loaded,
        .run_engine         = lp5521_run_engine,
+       .dev_attr_group     = &lp5521_group,
 };
 
 static int lp5521_probe(struct i2c_client *client,
@@ -577,13 +572,15 @@ static int lp5521_probe(struct i2c_client *client,
        if (ret)
                goto err_register_leds;
 
-       ret = lp5521_register_sysfs(client);
+       ret = lp55xx_register_sysfs(chip);
        if (ret) {
                dev_err(&client->dev, "registering sysfs failed\n");
-               goto fail2;
+               goto err_register_sysfs;
        }
-       return ret;
-fail2:
+
+       return 0;
+
+err_register_sysfs:
        lp55xx_unregister_leds(led, chip);
 err_register_leds:
        lp55xx_deinit_device(chip);
index 4b1ad90..4192a1e 100644 (file)
@@ -484,18 +484,6 @@ static const struct attribute_group lp5523_group = {
        .attrs = lp5523_attributes,
 };
 
-static int lp5523_register_sysfs(struct i2c_client *client)
-{
-       struct device *dev = &client->dev;
-       int ret;
-
-       ret = sysfs_create_group(&dev->kobj, &lp5523_group);
-       if (ret < 0)
-               return ret;
-
-       return 0;
-}
-
 static void lp5523_unregister_sysfs(struct i2c_client *client)
 {
        struct device *dev = &client->dev;
@@ -519,6 +507,7 @@ static struct lp55xx_device_config lp5523_cfg = {
        .set_led_current    = lp5523_set_led_current,
        .firmware_cb        = lp5523_firmware_loaded,
        .run_engine         = lp5523_run_engine,
+       .dev_attr_group     = &lp5523_group,
 };
 
 static int lp5523_probe(struct i2c_client *client,
@@ -561,13 +550,15 @@ static int lp5523_probe(struct i2c_client *client,
        if (ret)
                goto err_register_leds;
 
-       ret = lp5523_register_sysfs(client);
+       ret = lp55xx_register_sysfs(chip);
        if (ret) {
                dev_err(&client->dev, "registering sysfs failed\n");
-               goto fail2;
+               goto err_register_sysfs;
        }
-       return ret;
-fail2:
+
+       return 0;
+
+err_register_sysfs:
        lp55xx_unregister_leds(led, chip);
 err_register_leds:
        lp55xx_deinit_device(chip);