From: Mieczyslaw Nalewaj Date: Thu, 27 Nov 2025 13:17:50 +0100 Subject: leds: add "network" LED trigger (lan/wan/wlan) LED trigger for network interfaces. - Aggregated per-family (lan/wan/wlan). - Family and flags are taken from device tree properties: - "family" : simple family string "lan" | "wan" | "wlan" - "mode" : any combination of "link", "tx", "rx" flags Priority/combination: * If "mode" present: flags come from "mode" and take precedence. Family is taken from "family" if present, otherwise from the LED name. * If only "family" present: use its family and default flags = link+tx+rx. * If neither present: fall back to LED device name parsing. - Suffix "-online" is valid ONLY in the LED name (label), e.g. "green:wlan-online". It indicates the online variant but is applied only when DT "mode" is absent. Behaviour: - wlan (normal): blink/solid driven by throughput table - lan/wan (normal): one-shot blink on TX/RX packet change - *-online variants: steady ON while any interface of the family has carrier Interfaces are auto-tracked by name match (lan0, wan1, wlan2, phy0, wl1, ath0, ra0...). Up to MAX_IFACES (16) interfaces per family This trigger is intended for board/device authors and drivers to provide simple network-activity LED behaviour without per-interface wiring in userspace. Signed-off-by: Mieczyslaw Nalewaj --- --- a/drivers/leds/trigger/Kconfig +++ b/drivers/leds/trigger/Kconfig @@ -129,6 +129,15 @@ config LEDS_TRIGGER_NETDEV This allows LEDs to be controlled by network device activity. If unsure, say Y. +config LEDS_TRIGGER_NETWORK + tristate "LED trigger for network interfaces" + depends on NET + help + Per-family network LED trigger: aggregates lan/wan/wlan stats; + family from DT 'family' or name; flags from DT 'mode'; + '-online' - online-only if mode absent. + If unsure, say Y. + config LEDS_TRIGGER_PATTERN tristate "LED Pattern Trigger" help --- a/drivers/leds/trigger/Makefile +++ b/drivers/leds/trigger/Makefile @@ -16,3 +16,4 @@ obj-$(CONFIG_LEDS_TRIGGER_NETDEV) += led obj-$(CONFIG_LEDS_TRIGGER_PATTERN) += ledtrig-pattern.o obj-$(CONFIG_LEDS_TRIGGER_TTY) += ledtrig-tty.o obj-$(CONFIG_LEDS_TRIGGER_INPUT_EVENTS) += ledtrig-input-events.o +obj-$(CONFIG_LEDS_TRIGGER_NETWORK) += ledtrig-network.o