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

leds: sc27xx-blt: Use generic support for composing LED names

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

Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Reviewed-by: Baolin Wang <baolin.wang@linaro.org>
Acked-by: Pavel Machek <pavel@ucw.cz>

+9 -13
+9 -13
drivers/leds/leds-sc27xx-bltc.c
··· 6 6 #include <linux/of.h> 7 7 #include <linux/platform_device.h> 8 8 #include <linux/regmap.h> 9 - #include <uapi/linux/uleds.h> 10 9 11 10 /* PMIC global control register definition */ 12 11 #define SC27XX_MODULE_EN0 0xc08 ··· 45 46 #define SC27XX_DELTA_T_MAX (SC27XX_LEDS_STEP * 255) 46 47 47 48 struct sc27xx_led { 48 - char name[LED_MAX_NAME_SIZE]; 49 + struct fwnode_handle *fwnode; 49 50 struct led_classdev ldev; 50 51 struct sc27xx_led_priv *priv; 51 52 u8 line; ··· 248 249 249 250 for (i = 0; i < SC27XX_LEDS_MAX; i++) { 250 251 struct sc27xx_led *led = &priv->leds[i]; 252 + struct led_init_data init_data = {}; 251 253 252 254 if (!led->active) 253 255 continue; 254 256 255 257 led->line = i; 256 258 led->priv = priv; 257 - led->ldev.name = led->name; 258 259 led->ldev.brightness_set_blocking = sc27xx_led_set; 259 260 led->ldev.pattern_set = sc27xx_led_pattern_set; 260 261 led->ldev.pattern_clear = sc27xx_led_pattern_clear; 261 262 led->ldev.default_trigger = "pattern"; 262 263 263 - err = devm_led_classdev_register(dev, &led->ldev); 264 + init_data.fwnode = led->fwnode; 265 + init_data.devicename = "sc27xx"; 266 + init_data.default_label = ":"; 267 + 268 + err = devm_led_classdev_register_ext(dev, &led->ldev, 269 + &init_data); 264 270 if (err) 265 271 return err; 266 272 } ··· 278 274 struct device *dev = &pdev->dev; 279 275 struct device_node *np = dev->of_node, *child; 280 276 struct sc27xx_led_priv *priv; 281 - const char *str; 282 277 u32 base, count, reg; 283 278 int err; 284 279 ··· 319 316 return -EINVAL; 320 317 } 321 318 319 + priv->leds[reg].fwnode = of_fwnode_handle(child); 322 320 priv->leds[reg].active = true; 323 - 324 - err = of_property_read_string(child, "label", &str); 325 - if (err) 326 - snprintf(priv->leds[reg].name, LED_MAX_NAME_SIZE, 327 - "sc27xx::"); 328 - else 329 - snprintf(priv->leds[reg].name, LED_MAX_NAME_SIZE, 330 - "sc27xx:%s", str); 331 321 } 332 322 333 323 err = sc27xx_led_register(dev, priv);