Thread (28 messages) 28 messages, 5 authors, 2021-11-08

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help