linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jacek Anaszewski <jacek.anaszewski@gmail.com>
To: linux-leds@vger.kernel.org
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	pavel@ucw.cz, robh@kernel.org, dtor@google.com,
	linux@roeck-us.net, jacek.anaszewski@gmail.com,
	Dan Murphy <dmurphy@ti.com>
Subject: [PATCH v4 12/26] leds: lp8860: Use generic support for composing LED names
Date: Wed, 17 Apr 2019 22:54:25 +0200	[thread overview]
Message-ID: <20190417205439.17685-13-jacek.anaszewski@gmail.com> (raw)
In-Reply-To: <20190417205439.17685-1-jacek.anaszewski@gmail.com>

Switch to using generic LED support for composing LED class
device name.

While at it, avoid iterating through available child of nodes
in favor of obtaining single expected child node using single
call to of_get_next_available_child().

Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Cc: Dan Murphy <dmurphy@ti.com>
---
 drivers/leds/leds-lp8860.c | 35 ++++++++++++++++-------------------
 1 file changed, 16 insertions(+), 19 deletions(-)

diff --git a/drivers/leds/leds-lp8860.c b/drivers/leds/leds-lp8860.c
index 39c72a908f3b..0d3f6b237aac 100644
--- a/drivers/leds/leds-lp8860.c
+++ b/drivers/leds/leds-lp8860.c
@@ -22,7 +22,6 @@
 #include <linux/of_gpio.h>
 #include <linux/gpio/consumer.h>
 #include <linux/slab.h>
-#include <uapi/linux/uleds.h>
 
 #define LP8860_DISP_CL1_BRT_MSB		0x00
 #define LP8860_DISP_CL1_BRT_LSB		0x01
@@ -87,6 +86,8 @@
 
 #define LP8860_CLEAR_FAULTS		0x01
 
+#define LP8860_NAME			"lp8860"
+
 /**
  * struct lp8860_led -
  * @lock - Lock for reading/writing the device
@@ -96,7 +97,6 @@
  * @eeprom_regmap - EEPROM register map
  * @enable_gpio - VDDIO/EN gpio to enable communication interface
  * @regulator - LED supply regulator pointer
- * @label - LED label
  */
 struct lp8860_led {
 	struct mutex lock;
@@ -106,7 +106,6 @@ struct lp8860_led {
 	struct regmap *eeprom_regmap;
 	struct gpio_desc *enable_gpio;
 	struct regulator *regulator;
-	char label[LED_MAX_NAME_SIZE];
 };
 
 struct lp8860_eeprom_reg {
@@ -387,25 +386,19 @@ static int lp8860_probe(struct i2c_client *client,
 	struct lp8860_led *led;
 	struct device_node *np = client->dev.of_node;
 	struct device_node *child_node;
-	const char *name;
+	struct led_init_data init_data;
 
 	led = devm_kzalloc(&client->dev, sizeof(*led), GFP_KERNEL);
 	if (!led)
 		return -ENOMEM;
 
-	for_each_available_child_of_node(np, child_node) {
-		led->led_dev.default_trigger = of_get_property(child_node,
-						    "linux,default-trigger",
-						    NULL);
-
-		ret = of_property_read_string(child_node, "label", &name);
-		if (!ret)
-			snprintf(led->label, sizeof(led->label), "%s:%s",
-				 id->name, name);
-		else
-			snprintf(led->label, sizeof(led->label),
-				"%s::display_cluster", id->name);
-	}
+	child_node = of_get_next_available_child(np, NULL);
+	if (!child_node)
+		return -EINVAL;
+
+	led->led_dev.default_trigger = of_get_property(child_node,
+					    "linux,default-trigger",
+					    NULL);
 
 	led->enable_gpio = devm_gpiod_get_optional(&client->dev,
 						   "enable", GPIOD_OUT_LOW);
@@ -420,7 +413,6 @@ static int lp8860_probe(struct i2c_client *client,
 		led->regulator = NULL;
 
 	led->client = client;
-	led->led_dev.name = led->label;
 	led->led_dev.brightness_set_blocking = lp8860_brightness_set;
 
 	mutex_init(&led->lock);
@@ -447,7 +439,12 @@ static int lp8860_probe(struct i2c_client *client,
 	if (ret)
 		return ret;
 
-	ret = devm_led_classdev_register(&client->dev, &led->led_dev);
+	init_data.fwnode = of_fwnode_handle(child_node);
+	init_data.devicename = LP8860_NAME;
+	init_data.default_label = ":display_cluster";
+
+	ret = devm_led_classdev_register_ext(&client->dev, &led->led_dev,
+					     &init_data);
 	if (ret) {
 		dev_err(&client->dev, "led register err: %d\n", ret);
 		return ret;
-- 
2.11.0


  parent reply	other threads:[~2019-04-17 20:56 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-17 20:54 [PATCH v4 00/26] Add generic support for composing LED class device name Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 01/26] ALSA: line6: Avoid polluting led_* namespace Jacek Anaszewski
2019-04-18  5:17   ` Takashi Iwai
2019-04-18 12:21     ` Pavel Machek
2019-04-18 12:24       ` Takashi Iwai
2019-04-18 17:12         ` Jacek Anaszewski
2019-04-18 18:46           ` Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 02/26] leds: class: Improve LED and LED flash class registration API Jacek Anaszewski
2019-04-24 13:46   ` Pavel Machek
2019-04-24 18:04     ` Jacek Anaszewski
2019-04-24 18:25       ` Pavel Machek
2019-04-24 18:56         ` Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 03/26] dt-bindings: leds: Add LED_FUNCTION definitions Jacek Anaszewski
2019-04-26 18:47   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 04/26] dt-bindings: leds: Add LED_COLOR_ID definitions Jacek Anaszewski
2019-04-24 13:49   ` Pavel Machek
2019-04-24 18:14     ` Jacek Anaszewski
2019-04-26 18:47   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 05/26] dt-bindings: leds: Add properties for LED name construction Jacek Anaszewski
2019-04-26 18:58   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 06/26] leds: core: Add support for composing LED class device names Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 07/26] dt-bindings: sc27xx-blt: Add function and color properties Jacek Anaszewski
2019-04-26 18:58   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 08/26] leds: sc27xx-blt: Use generic support for composing LED names Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 09/26] dt-bindings: lt3593: Add function and color properties Jacek Anaszewski
2019-04-26 18:58   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 10/26] leds: lt3593: Use generic support for composing LED names Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 11/26] dt-bindings: lp8860: Add function and color properties Jacek Anaszewski
2019-04-18 12:28   ` Dan Murphy
2019-04-18 17:18     ` Jacek Anaszewski
2019-04-26 18:59   ` Rob Herring
2019-04-17 20:54 ` Jacek Anaszewski [this message]
2019-04-17 20:54 ` [PATCH v4 13/26] dt-bindings: lm3692x: " Jacek Anaszewski
2019-04-26 19:21   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 14/26] leds: lm3692x: Use generic support for composing LED names Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 15/26] dt-bindings: lm36010: Add function and color properties Jacek Anaszewski
2019-04-26 19:21   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 16/26] leds: lm3601x: Use generic support for composing LED names Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 17/26] dt-bindings: cr0014114: Add function and color properties Jacek Anaszewski
2019-04-26 19:22   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 18/26] leds: cr0014114: Use generic support for composing LED names Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 19/26] dt-bindings: aat1290: Add function and color properties Jacek Anaszewski
2019-04-26 19:22   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 20/26] leds: aat1290: Use generic support for composing LED names Jacek Anaszewski
2019-04-24 13:57   ` Pavel Machek
2019-04-24 18:16     ` Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 21/26] dt-bindings: as3645a: Add function and color properties Jacek Anaszewski
2019-04-26 19:23   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 22/26] leds: as3645a: Use generic support for composing LED names Jacek Anaszewski
2019-04-24 14:01   ` Pavel Machek
2019-04-24 18:18     ` Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 23/26] dt-bindings: leds-gpio: Add function and color properties Jacek Anaszewski
2019-04-26 19:23   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 24/26] leds: gpio: Use generic support for composing LED names Jacek Anaszewski
2019-04-24 14:04   ` Pavel Machek
2019-04-24 19:02     ` Jacek Anaszewski
2019-04-17 20:54 ` [PATCH v4 25/26] dt-bindings: an30259a: Add function and color properties Jacek Anaszewski
2019-04-26 19:23   ` Rob Herring
2019-04-17 20:54 ` [PATCH v4 26/26] leds: an30259a: Use generic support for composing LED names Jacek Anaszewski
2019-04-24 14:05   ` Pavel Machek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190417205439.17685-13-jacek.anaszewski@gmail.com \
    --to=jacek.anaszewski@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmurphy@ti.com \
    --cc=dtor@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=pavel@ucw.cz \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).