On 9/9/20 11:31 AM, Marek Behún wrote: > On Wed, 9 Sep 2020 11:20:00 -0700 > Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote: > >> Hi, >> >> On 9/9/20 9:25 AM, Marek Behún wrote: >>> Many an ethernet PHY (and other chips) supports various HW control >>> modes for LEDs connected directly to them. >>> >>> This patch adds a generic API for registering such LEDs when >>> described in device tree. This API also exposes generic way to >>> select between these hardware control modes. >>> >>> This API registers a new private LED trigger called dev-hw-mode. >>> When this trigger is enabled for a LED, the various HW control >>> modes which are supported by the device for given LED can be >>> get/set via hw_mode sysfs file. >>> >>> Signed-off-by: Marek Behún <marek.behun@xxxxxx> >>> --- >>> .../sysfs-class-led-trigger-dev-hw-mode | 8 + >>> drivers/leds/Kconfig | 10 + >>> drivers/leds/Makefile | 1 + >>> drivers/leds/leds-hw-controlled.c | 227 >>> ++++++++++++++++++ include/linux/leds-hw-controlled.h | >>> 74 ++++++ 5 files changed, 320 insertions(+) >>> create mode 100644 >>> Documentation/ABI/testing/sysfs-class-led-trigger-dev-hw-mode >>> create mode 100644 drivers/leds/leds-hw-controlled.c create mode >>> 100644 include/linux/leds-hw-controlled.h >> >>> diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig >>> index 1c181df24eae4..5e47ab21aafb4 100644 >>> --- a/drivers/leds/Kconfig >>> +++ b/drivers/leds/Kconfig >>> @@ -49,6 +49,16 @@ config LEDS_BRIGHTNESS_HW_CHANGED >>> >>> See Documentation/ABI/testing/sysfs-class-led for >>> details. >>> +config LEDS_HW_CONTROLLED >>> + bool "API for LEDs that can be controlled by hardware" >>> + depends on LEDS_CLASS >> >> depends on OF || COMPILE_TEST >> ? >> > > I specifically did not add OF dependency so that this can be also used > on non-OF systems. A device driver may register such LED itself... > That's why hw_controlled_led_brightness_set symbol is exported. > > Do you think I shouldn't do it? I have no problem with it as it is. >>> + select LEDS_TRIGGERS >>> + help >>> + This option enables support for a generic API via which >>> other drivers >>> + can register LEDs that can be put into hardware >>> controlled mode, eg. thanks. -- ~Randy