[PATCH 02/11] leds: add binding to check support for LED hw control

From: Christian Marangi
Date: Wed Apr 26 2023 - 20:19:08 EST


Add 2 binding to facilitate checking support for LED hw control.

Add a mask for the LED driver to declare support for specific modes of
the defined hw control trigger.

Add hw_control_is_supported() to ask the LED driver if the requested
mode by the trigger are supported and the LED can be setup to follow
the requested modes.

Signed-off-by: Christian Marangi <ansuelsmth@xxxxxxxxx>
---
include/linux/leds.h | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/include/linux/leds.h b/include/linux/leds.h
index b3bd1cc8ace8..06a67c62ed6e 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -157,6 +157,8 @@ struct led_classdev {

/* Unique trigger name supported by LED set in hw control mode */
const char *hw_control_trigger;
+ /* Mask of the different supported trigger mode in hw control mode */
+ unsigned long trigger_supported_flags_mask;
/*
* Activate hardware control, LED driver will use the provided flags
* from the supported trigger and setup the LED to be driven by hardware
@@ -174,6 +176,12 @@ struct led_classdev {
*/
int (*hw_control_get)(struct led_classdev *led_cdev,
unsigned long *flags);
+ /*
+ * Check if the LED driver supports the requested mode provided by the
+ * defined supported trigger to setup the LED to hw control mode.
+ */
+ int (*hw_control_is_supported)(struct led_classdev *led_cdev,
+ unsigned long flags);
#endif

#ifdef CONFIG_LEDS_BRIGHTNESS_HW_CHANGED
--
2.39.2