led: led-class: Read max-brightness from devicetree
authorAstrid Rost <astrid.rost@axis.com>
Mon, 3 Jul 2023 13:03:13 +0000 (15:03 +0200)
committerLee Jones <lee@kernel.org>
Fri, 28 Jul 2023 08:26:22 +0000 (09:26 +0100)
Normally, the maximum brightness is determined by the hardware, and this
property is not required. This property is used to set a software limit.
It could happen that an LED is made so bright that it gets damaged or
causes damage due to restrictions in a specific system, such as mounting
conditions.
Note that this flag is mainly used for PWM-LEDs, where it is not possible
to map brightness to current. Drivers for other controllers should use
led-max-microamp.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Astrid Rost <astrid.rost@axis.com>
Acked-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Link: https://lore.kernel.org/r/20230703130313.548519-3-astrid.rost@axis.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/led-class.c

index 6dae56b..4758da2 100644 (file)
@@ -457,6 +457,10 @@ int led_classdev_register_ext(struct device *parent,
                        if (fwnode_property_present(init_data->fwnode,
                                                    "retain-state-shutdown"))
                                led_cdev->flags |= LED_RETAIN_AT_SHUTDOWN;
+
+                       fwnode_property_read_u32(init_data->fwnode,
+                               "max-brightness",
+                               &led_cdev->max_brightness);
                }
        } else {
                proposed_name = led_cdev->name;