return pwm_apply_might_sleep(led_dat->pwm, &led_dat->pwmstate);
 }
 
+static int led_pwm_default_brightness_get(struct fwnode_handle *fwnode,
+                                         int max_brightness)
+{
+       unsigned int default_brightness;
+       int ret;
+
+       ret = fwnode_property_read_u32(fwnode, "default-brightness",
+                                      &default_brightness);
+       if (ret < 0 || default_brightness > max_brightness)
+               default_brightness = max_brightness;
+
+       return default_brightness;
+}
+
 __attribute__((nonnull))
 static int led_pwm_add(struct device *dev, struct led_pwm_priv *priv,
                       struct led_pwm *led, struct fwnode_handle *fwnode)
        /* set brightness */
        switch (led->default_state) {
        case LEDS_DEFSTATE_ON:
-               led_data->cdev.brightness = led->max_brightness;
+               led_data->cdev.brightness =
+                       led_pwm_default_brightness_get(fwnode, led->max_brightness);
                break;
        case LEDS_DEFSTATE_KEEP:
                {