Skip to content

Commit

Permalink
leds-lp55xx: support device specific attributes
Browse files Browse the repository at this point in the history
 To support device specific attributes, new common driver function is added.
 Eventually those are created on registering the sysfs with common dev attrs.
 Furthermore, this patch makes adding device attributes simple in each driver.

Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
  • Loading branch information
Milo(Woogyom) Kim authored and Bryan Wu committed Feb 6, 2013
1 parent db6eaf8 commit 240085e
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
13 changes: 12 additions & 1 deletion drivers/leds/leds-lp55xx-common.c
Original file line number Diff line number Diff line change
Expand Up @@ -493,8 +493,19 @@ EXPORT_SYMBOL_GPL(lp55xx_unregister_leds);
int lp55xx_register_sysfs(struct lp55xx_chip *chip)
{
struct device *dev = &chip->cl->dev;
struct lp55xx_device_config *cfg = chip->cfg;
int ret;

if (!cfg->run_engine || !cfg->firmware_cb)
goto dev_specific_attrs;

ret = sysfs_create_group(&dev->kobj, &lp55xx_engine_attr_group);
if (ret)
return ret;

return sysfs_create_group(&dev->kobj, &lp55xx_engine_attr_group);
dev_specific_attrs:
return cfg->dev_attr_group ?
sysfs_create_group(&dev->kobj, cfg->dev_attr_group) : 0;
}
EXPORT_SYMBOL_GPL(lp55xx_register_sysfs);

Expand Down
4 changes: 4 additions & 0 deletions drivers/leds/leds-lp55xx-common.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ struct lp55xx_reg {
* @set_led_current : LED current set function
* @firmware_cb : Call function when the firmware is loaded
* @run_engine : Run internal engine for pattern
* @dev_attr_group : Device specific attributes
*/
struct lp55xx_device_config {
const struct lp55xx_reg reset;
Expand All @@ -65,6 +66,9 @@ struct lp55xx_device_config {

/* used for running firmware LED patterns */
void (*run_engine) (struct lp55xx_chip *chip, bool start);

/* additional device specific attributes */
const struct attribute_group *dev_attr_group;
};

/*
Expand Down

0 comments on commit 240085e

Please sign in to comment.