1
0
Fork 0
mirror of https://github.com/u-boot/u-boot.git synced 2025-04-25 14:56:03 +00:00

led: pwm: Use NOP uclass driver for top-level node

The top level DT node of pwm-leds is not a LED itself, bind NOP uclass
driver to it, and bind different LED uclass driver to its subnodes which
represent the actual LEDs. This change removes the top-level node from
the 'led list' command output and is based on the commit 0107469780
("led: gpio: Use NOP uclass driver for top-level node").

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
This commit is contained in:
Stefan Herbrechtsmeier 2022-06-23 11:25:29 +02:00 committed by Tom Rini
parent 7886c45d42
commit e3812b5b08

View file

@ -95,27 +95,17 @@ static enum led_state_t led_pwm_get_state(struct udevice *dev)
static int led_pwm_probe(struct udevice *dev)
{
struct led_pwm_priv *priv = dev_get_priv(dev);
struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
/* Ignore the top-level LED node */
if (!uc_plat->label)
return 0;
return led_pwm_set_state(dev, (priv->enabled) ? LEDST_ON : LEDST_OFF);
}
static int led_pwm_of_to_plat(struct udevice *dev)
{
struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
struct led_pwm_priv *priv = dev_get_priv(dev);
struct ofnode_phandle_args args;
uint def_brightness, max_brightness;
int ret;
/* Ignore the top-level LED node */
if (!uc_plat->label)
return 0;
ret = dev_read_phandle_with_args(dev, "pwms", "#pwm-cells", 0, 0, &args);
if (ret)
return ret;
@ -173,10 +163,15 @@ static const struct udevice_id led_pwm_ids[] = {
U_BOOT_DRIVER(led_pwm) = {
.name = LEDS_PWM_DRIVER_NAME,
.id = UCLASS_LED,
.of_match = led_pwm_ids,
.ops = &led_pwm_ops,
.priv_auto = sizeof(struct led_pwm_priv),
.bind = led_pwm_bind,
.probe = led_pwm_probe,
.of_to_plat = led_pwm_of_to_plat,
};
U_BOOT_DRIVER(led_pwm_wrap) = {
.name = LEDS_PWM_DRIVER_NAME "_wrap",
.id = UCLASS_NOP,
.of_match = led_pwm_ids,
.bind = led_pwm_bind,
};