mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-28 08:35:38 +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:
parent
7886c45d42
commit
e3812b5b08
1 changed files with 7 additions and 12 deletions
|
@ -95,27 +95,17 @@ static enum led_state_t led_pwm_get_state(struct udevice *dev)
|
||||||
static int led_pwm_probe(struct udevice *dev)
|
static int led_pwm_probe(struct udevice *dev)
|
||||||
{
|
{
|
||||||
struct led_pwm_priv *priv = dev_get_priv(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);
|
return led_pwm_set_state(dev, (priv->enabled) ? LEDST_ON : LEDST_OFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int led_pwm_of_to_plat(struct udevice *dev)
|
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 led_pwm_priv *priv = dev_get_priv(dev);
|
||||||
struct ofnode_phandle_args args;
|
struct ofnode_phandle_args args;
|
||||||
uint def_brightness, max_brightness;
|
uint def_brightness, max_brightness;
|
||||||
int ret;
|
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);
|
ret = dev_read_phandle_with_args(dev, "pwms", "#pwm-cells", 0, 0, &args);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -173,10 +163,15 @@ static const struct udevice_id led_pwm_ids[] = {
|
||||||
U_BOOT_DRIVER(led_pwm) = {
|
U_BOOT_DRIVER(led_pwm) = {
|
||||||
.name = LEDS_PWM_DRIVER_NAME,
|
.name = LEDS_PWM_DRIVER_NAME,
|
||||||
.id = UCLASS_LED,
|
.id = UCLASS_LED,
|
||||||
.of_match = led_pwm_ids,
|
|
||||||
.ops = &led_pwm_ops,
|
.ops = &led_pwm_ops,
|
||||||
.priv_auto = sizeof(struct led_pwm_priv),
|
.priv_auto = sizeof(struct led_pwm_priv),
|
||||||
.bind = led_pwm_bind,
|
|
||||||
.probe = led_pwm_probe,
|
.probe = led_pwm_probe,
|
||||||
.of_to_plat = led_pwm_of_to_plat,
|
.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,
|
||||||
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue