Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Stefan Kalscheuer and committed by
Lee Jones
ccc35ff2 46f02b68

+6 -5
+6 -5
drivers/leds/leds-spi-byte.c
··· 83 83 struct device_node *child; 84 84 struct device *dev = &spi->dev; 85 85 struct spi_byte_led *led; 86 - const char *name = "leds-spi-byte::"; 86 + struct led_init_data init_data = {}; 87 87 const char *state; 88 88 int ret; 89 89 ··· 97 97 if (!led) 98 98 return -ENOMEM; 99 99 100 - of_property_read_string(child, "label", &name); 101 - strscpy(led->name, name, sizeof(led->name)); 102 100 led->spi = spi; 103 101 mutex_init(&led->mutex); 104 102 led->cdef = device_get_match_data(dev); 105 - led->ldev.name = led->name; 106 103 led->ldev.brightness = LED_OFF; 107 104 led->ldev.max_brightness = led->cdef->max_value - led->cdef->off_value; 108 105 led->ldev.brightness_set_blocking = spi_byte_brightness_set_blocking; ··· 117 120 spi_byte_brightness_set_blocking(&led->ldev, 118 121 led->ldev.brightness); 119 122 120 - ret = devm_led_classdev_register(&spi->dev, &led->ldev); 123 + init_data.fwnode = of_fwnode_handle(child); 124 + init_data.devicename = "leds-spi-byte"; 125 + init_data.default_label = ":"; 126 + 127 + ret = devm_led_classdev_register_ext(&spi->dev, &led->ldev, &init_data); 121 128 if (ret) { 122 129 mutex_destroy(&led->mutex); 123 130 return ret;