Skip to content

Commit 8cb0810

Browse files
geo-starklag-linaro
authored andcommitted
leds: pwm: Add optional DT property default-brightness
When probing if default LED state is on then default brightness will be applied instead of max brightness. Signed-off-by: George Stark <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Lee Jones <[email protected]>
1 parent 44e04fb commit 8cb0810

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

drivers/leds/leds-pwm.c

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,20 @@ static int led_pwm_set(struct led_classdev *led_cdev,
6262
return pwm_apply_might_sleep(led_dat->pwm, &led_dat->pwmstate);
6363
}
6464

65+
static int led_pwm_default_brightness_get(struct fwnode_handle *fwnode,
66+
int max_brightness)
67+
{
68+
unsigned int default_brightness;
69+
int ret;
70+
71+
ret = fwnode_property_read_u32(fwnode, "default-brightness",
72+
&default_brightness);
73+
if (ret < 0 || default_brightness > max_brightness)
74+
default_brightness = max_brightness;
75+
76+
return default_brightness;
77+
}
78+
6579
__attribute__((nonnull))
6680
static int led_pwm_add(struct device *dev, struct led_pwm_priv *priv,
6781
struct led_pwm *led, struct fwnode_handle *fwnode)
@@ -103,7 +117,8 @@ static int led_pwm_add(struct device *dev, struct led_pwm_priv *priv,
103117
/* set brightness */
104118
switch (led->default_state) {
105119
case LEDS_DEFSTATE_ON:
106-
led_data->cdev.brightness = led->max_brightness;
120+
led_data->cdev.brightness =
121+
led_pwm_default_brightness_get(fwnode, led->max_brightness);
107122
break;
108123
case LEDS_DEFSTATE_KEEP:
109124
{

0 commit comments

Comments
 (0)