dm: led: Support "default-state" property
Add support for the device tree property "default-state". This feature might be useful for LEDs indicating "power on" or similar states. Note: Even with this commit gpio-leds remain in reset state. That's because the led_gpio is not probed until DM_FLAG_ACTIVATED is set. Signed-off-by: Patrick Bruenn <p.bruenn@beckhoff.com>
This commit is contained in:
		
							parent
							
								
									cbdca4ab79
								
							
						
					
					
						commit
						e0351eaf58
					
				|  | @ -60,11 +60,25 @@ static int led_gpio_probe(struct udevice *dev) | ||||||
| { | { | ||||||
| 	struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev); | 	struct led_uc_plat *uc_plat = dev_get_uclass_platdata(dev); | ||||||
| 	struct led_gpio_priv *priv = dev_get_priv(dev); | 	struct led_gpio_priv *priv = dev_get_priv(dev); | ||||||
|  | 	const char *default_state; | ||||||
|  | 	int ret; | ||||||
| 
 | 
 | ||||||
| 	/* Ignore the top-level LED node */ | 	/* Ignore the top-level LED node */ | ||||||
| 	if (!uc_plat->label) | 	if (!uc_plat->label) | ||||||
| 		return 0; | 		return 0; | ||||||
| 	return gpio_request_by_name(dev, "gpios", 0, &priv->gpio, GPIOD_IS_OUT); | 
 | ||||||
|  | 	ret = gpio_request_by_name(dev, "gpios", 0, &priv->gpio, GPIOD_IS_OUT); | ||||||
|  | 	if (ret) | ||||||
|  | 		return ret; | ||||||
|  | 
 | ||||||
|  | 	default_state = dev_read_string(dev, "default-state"); | ||||||
|  | 	if (default_state) { | ||||||
|  | 		if (!strncmp(default_state, "on", 2)) | ||||||
|  | 			gpio_led_set_state(dev, LEDST_ON); | ||||||
|  | 		else if (!strncmp(default_state, "off", 3)) | ||||||
|  | 			gpio_led_set_state(dev, LEDST_OFF); | ||||||
|  | 	} | ||||||
|  | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int led_gpio_remove(struct udevice *dev) | static int led_gpio_remove(struct udevice *dev) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue