diff options
author | Stefan Kalscheuer <stefan@stklcode.de> | 2024-02-04 16:07:26 +0100 |
---|---|---|
committer | Lee Jones <lee@kernel.org> | 2024-03-07 08:48:06 +0000 |
commit | ccc35ff2fd2911986b716a87fe65e03fac2312c9 (patch) | |
tree | bdd8b097288db0a6f08a8f0a55f1572df3d32813 /drivers/leds/leds-spi-byte.c | |
parent | 46f02b681ba2e39ea2bebd66aec45e38cf9b3687 (diff) | |
download | lwn-ccc35ff2fd2911986b716a87fe65e03fac2312c9.tar.gz lwn-ccc35ff2fd2911986b716a87fe65e03fac2312c9.zip |
leds: spi-byte: Use devm_led_classdev_register_ext()
Use extended classdev registration to generate generic device names from
color and function enums instead of reading only the label from the
device tree.
Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://lore.kernel.org/r/20240204150726.29783-1-stefan@stklcode.de
Signed-off-by: Lee Jones <lee@kernel.org>
Diffstat (limited to 'drivers/leds/leds-spi-byte.c')
-rw-r--r-- | drivers/leds/leds-spi-byte.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/leds/leds-spi-byte.c b/drivers/leds/leds-spi-byte.c index 9d91f21842f2..96296db5f410 100644 --- a/drivers/leds/leds-spi-byte.c +++ b/drivers/leds/leds-spi-byte.c @@ -83,7 +83,7 @@ static int spi_byte_probe(struct spi_device *spi) struct device_node *child; struct device *dev = &spi->dev; struct spi_byte_led *led; - const char *name = "leds-spi-byte::"; + struct led_init_data init_data = {}; const char *state; int ret; @@ -97,12 +97,9 @@ static int spi_byte_probe(struct spi_device *spi) if (!led) return -ENOMEM; - of_property_read_string(child, "label", &name); - strscpy(led->name, name, sizeof(led->name)); led->spi = spi; mutex_init(&led->mutex); led->cdef = device_get_match_data(dev); - led->ldev.name = led->name; led->ldev.brightness = LED_OFF; led->ldev.max_brightness = led->cdef->max_value - led->cdef->off_value; led->ldev.brightness_set_blocking = spi_byte_brightness_set_blocking; @@ -120,7 +117,11 @@ static int spi_byte_probe(struct spi_device *spi) spi_byte_brightness_set_blocking(&led->ldev, led->ldev.brightness); - ret = devm_led_classdev_register(&spi->dev, &led->ldev); + init_data.fwnode = of_fwnode_handle(child); + init_data.devicename = "leds-spi-byte"; + init_data.default_label = ":"; + + ret = devm_led_classdev_register_ext(&spi->dev, &led->ldev, &init_data); if (ret) { mutex_destroy(&led->mutex); return ret; |