|
@@ -244,11 +244,14 @@ static int led_classdev_next_name(const char *init_name, char *name,
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * led_classdev_register - register a new object of led_classdev class.
|
|
|
|
- * @parent: The device to register.
|
|
|
|
|
|
+ * of_led_classdev_register - register a new object of led_classdev class.
|
|
|
|
+ *
|
|
|
|
+ * @parent: parent of LED device
|
|
* @led_cdev: the led_classdev structure for this device.
|
|
* @led_cdev: the led_classdev structure for this device.
|
|
|
|
+ * @np: DT node describing this LED
|
|
*/
|
|
*/
|
|
-int led_classdev_register(struct device *parent, struct led_classdev *led_cdev)
|
|
|
|
|
|
+int of_led_classdev_register(struct device *parent, struct device_node *np,
|
|
|
|
+ struct led_classdev *led_cdev)
|
|
{
|
|
{
|
|
char name[LED_MAX_NAME_SIZE];
|
|
char name[LED_MAX_NAME_SIZE];
|
|
int ret;
|
|
int ret;
|
|
@@ -261,6 +264,7 @@ int led_classdev_register(struct device *parent, struct led_classdev *led_cdev)
|
|
led_cdev, led_cdev->groups, "%s", name);
|
|
led_cdev, led_cdev->groups, "%s", name);
|
|
if (IS_ERR(led_cdev->dev))
|
|
if (IS_ERR(led_cdev->dev))
|
|
return PTR_ERR(led_cdev->dev);
|
|
return PTR_ERR(led_cdev->dev);
|
|
|
|
+ led_cdev->dev->of_node = np;
|
|
|
|
|
|
if (ret)
|
|
if (ret)
|
|
dev_warn(parent, "Led %s renamed to %s due to name collision",
|
|
dev_warn(parent, "Led %s renamed to %s due to name collision",
|
|
@@ -303,7 +307,7 @@ int led_classdev_register(struct device *parent, struct led_classdev *led_cdev)
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
-EXPORT_SYMBOL_GPL(led_classdev_register);
|
|
|
|
|
|
+EXPORT_SYMBOL_GPL(of_led_classdev_register);
|
|
|
|
|
|
/**
|
|
/**
|
|
* led_classdev_unregister - unregisters a object of led_properties class.
|
|
* led_classdev_unregister - unregisters a object of led_properties class.
|
|
@@ -348,12 +352,14 @@ static void devm_led_classdev_release(struct device *dev, void *res)
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * devm_led_classdev_register - resource managed led_classdev_register()
|
|
|
|
- * @parent: The device to register.
|
|
|
|
|
|
+ * devm_of_led_classdev_register - resource managed led_classdev_register()
|
|
|
|
+ *
|
|
|
|
+ * @parent: parent of LED device
|
|
* @led_cdev: the led_classdev structure for this device.
|
|
* @led_cdev: the led_classdev structure for this device.
|
|
*/
|
|
*/
|
|
-int devm_led_classdev_register(struct device *parent,
|
|
|
|
- struct led_classdev *led_cdev)
|
|
|
|
|
|
+int devm_of_led_classdev_register(struct device *parent,
|
|
|
|
+ struct device_node *np,
|
|
|
|
+ struct led_classdev *led_cdev)
|
|
{
|
|
{
|
|
struct led_classdev **dr;
|
|
struct led_classdev **dr;
|
|
int rc;
|
|
int rc;
|
|
@@ -362,7 +368,7 @@ int devm_led_classdev_register(struct device *parent,
|
|
if (!dr)
|
|
if (!dr)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
|
|
|
|
- rc = led_classdev_register(parent, led_cdev);
|
|
|
|
|
|
+ rc = of_led_classdev_register(parent, np, led_cdev);
|
|
if (rc) {
|
|
if (rc) {
|
|
devres_free(dr);
|
|
devres_free(dr);
|
|
return rc;
|
|
return rc;
|
|
@@ -373,7 +379,7 @@ int devm_led_classdev_register(struct device *parent,
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
-EXPORT_SYMBOL_GPL(devm_led_classdev_register);
|
|
|
|
|
|
+EXPORT_SYMBOL_GPL(devm_of_led_classdev_register);
|
|
|
|
|
|
static int devm_led_classdev_match(struct device *dev, void *res, void *data)
|
|
static int devm_led_classdev_match(struct device *dev, void *res, void *data)
|
|
{
|
|
{
|