Re: [RFC PATCH v2 1/5] leds: trigger: add API for HW offloading of triggers
From: Randy Dunlap <hidden>
Date: 2021-11-08 02:29:18
Also in:
linux-devicetree, linux-leds, lkml, netdev
On 11/7/21 4:24 PM, Ansuel Smith wrote:
From: Marek Behún <kabel@kernel.org>
quoted hunk ↗ jump to hunk
--- Documentation/leds/leds-class.rst | 20 +++++++++++++++++++ drivers/leds/led-triggers.c | 1 + drivers/leds/trigger/Kconfig | 10 ++++++++++ include/linux/leds.h | 33 +++++++++++++++++++++++++++++++ 4 files changed, 64 insertions(+)diff --git a/Documentation/leds/leds-class.rst b/Documentation/leds/leds-class.rst index cd155ead8703..5bf6e5d471ce 100644 --- a/Documentation/leds/leds-class.rst +++ b/Documentation/leds/leds-class.rst@@ -169,6 +169,26 @@ Setting the brightness to zero with brightness_set() callback function should completely turn off the LED and cancel the previously programmed hardware blinking function, if any. +Hardware offloading of LED triggers +=================================== + +Some LEDs can be driven by hardware triggers (for example a LED connected to +an ethernet PHY or an ethernet switch can be configured to blink on activity on +the network, which in software is done by the netdev trigger). + +To do such offloading, LED driver must support this and a deficated offload
dedicated
+trigger must be used. The LED must implement the trigger_offload() method and +the trigger code must try to call this method (via led_trigger_offload() +function) to set the LED to this particular mode. (and disable any software +blinking) + +The implementation of the trigger_offload() method by the LED driver must return +0 if the offload is successful and -EOPNOTSUPP if the requested trigger +configuration is not supported. + +If the second argument (enable) to the trigger_offload() method is false, any +active HW offloading must be deactivated. In this case errors are not permitted
Preferably s/HW/hardware/ and s/SW/software/ throughout documentation and Kconfig files.
+in the trigger_offload() method and the driver will be set to the new trigger. Known Issues ============
quoted hunk ↗ jump to hunk
diff --git a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig index dc6816d36d06..33aba8defeab 100644 --- a/drivers/leds/trigger/Kconfig +++ b/drivers/leds/trigger/Kconfig@@ -9,6 +9,16 @@ menuconfig LEDS_TRIGGERS if LEDS_TRIGGERS +config LEDS_OFFLOAD_TRIGGERS + bool "LED Offload Trigger support" + help + This option enabled offload triggers support used by leds that
enables LEDs
+ can be driven in hardware by declaring some specific triggers. + A offload trigger will expose a sysfs dir to configure the + different blinking trigger and the available hardware triggers. + + If unsure, say Y.
-- ~Randy