From: Andriy Shevencho <andriy.shevchenko@linux.intel.com>
To: Jonathan Brophy <professorjonny98@gmail.com>
Cc: lee Jones <lee@kernel.org>, Pavel Machek <pavel@kernel.org>,
Jonathan Brophy <professor_jonny@hotmail.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Radoslav Tsvetkov <rtsvetkov@gradotech.eu>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-leds@vger.kernel.org
Subject: Re: [PATCH v5 4/7] ABI: Add sysfs documentation for leds-group-virtualcolor
Date: Tue, 30 Dec 2025 13:52:49 +0200 [thread overview]
Message-ID: <aVO9EWB80PwqrHBn@smile.fi.intel.com> (raw)
In-Reply-To: <20251230082336.3308403-5-professorjonny98@gmail.com>
On Tue, Dec 30, 2025 at 09:23:17PM +1300, Jonathan Brophy wrote:
>
> Document the sysfs ABI for the virtual LED group driver, including:
>
> - mc/multi_intensity: Per-channel intensity control (0-255)
> - mc/multi_index: Channel-to-color-ID mapping (read-only)
> - mc/multi_multipliers: Per-channel scale factors (read-only)
> - brightness: Master brightness control with arbitration trigger
> - max_brightness: Maximum brightness value (mode-dependent)
>
> Channel ordering is deterministic, sorted by ascending LED_COLOR_ID
> value. For RGBW LEDs, white (ID=0) appears first, followed by RGB.
>
> The multi_intensity attribute is rate-limited to 100 updates/second
> per virtual LED by default, with counters visible in debugfs when
> CONFIG_DEBUG_FS is enabled.
...
> +Date: December 2024
> +KernelVersion: 6.x
Both fields better to be filled with help of prediction crystal ball:
https://hansen.beer/~dave/phb/
Take the -rc1 or .0 date of the expected release (as of now 6.20.
Ditto for all new documented attributes.
...
> + Example (RGB LED with 3 channels):
> + $ cat /sys/class/leds/myled/mc/multi_index
> + 1 2 3
> + $ cat /sys/class/leds/myled/mc/multi_intensity
> + 255 128 0
> + $ echo "128 64 200" > /sys/class/leds/myled/mc/multi_intensity
I believe for the arrays we use ',' (comma) as a separator.
> + Note: In standard mode (led-mode = "standard"), intensity
> + changes are rejected with -EPERM and the color is fixed by the
> + channel multipliers defined in the device tree. In multicolor
> + mode (led-mode = "multicolor", default), intensity can be
> + freely modified.
> +
> + This attribute is rate-limited to prevent system overload
> + (default: 100 updates/second per virtual LED). Excessive
> + updates will be silently dropped with incremented rate limit
> + counters (visible in debugfs when CONFIG_DEBUG_FS enabled).
...
> + Common color ID values:
> + - 0: LED_COLOR_ID_WHITE
> + - 1: LED_COLOR_ID_RED
> + - 2: LED_COLOR_ID_GREEN
> + - 3: LED_COLOR_ID_BLUE
> + - 4: LED_COLOR_ID_AMBER
> + - 5: LED_COLOR_ID_VIOLET
> + - 6: LED_COLOR_ID_YELLOW
> + - 7: LED_COLOR_ID_IR
> + - 8: LED_COLOR_ID_MULTI
> + - 9: LED_COLOR_ID_RGB
> + - 10: LED_COLOR_ID_UV
This doesn't seem to be scalable. Better to use plain color names I think.
In that case the indexing schema is kept internal to the kernel.
...
> + Example (RGB LED):
> + $ cat /sys/class/leds/myled/mc/multi_index
> + 1 2 3
> + (Shows: red=1, green=2, blue=3)
> +
> + Example (RGBW LED):
> + $ cat /sys/class/leds/myled/mc/multi_index
> + 0 1 2 3
> + (Shows: white=0, red=1, green=2, blue=3)
With my proposal it will be
(Shows: white,red,green,blue)
and note that if kernel wants to change index, it's flexible to do so and user
space will work the same way as it will keep their own index mapping if they
need so.
The
(Shows: red,green,blue,white)
is more aligned with the RGBW given name in your example.
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2025-12-30 11:52 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-30 8:23 [PATCH v5 0/7] leds: Add virtual LED group driver with priority arbitration Jonathan Brophy
2025-12-30 8:23 ` [PATCH v5 1/7] dt-bindings: leds: add function virtual_status to led common properties Jonathan Brophy
2025-12-30 8:23 ` [PATCH v5 2/7] dt-bindings: leds: Add virtual LED class bindings Jonathan Brophy
2025-12-30 8:23 ` [PATCH v5 3/7] dt-bindings: leds: Add virtual LED group controller bindings Jonathan Brophy
2025-12-30 8:23 ` [PATCH v5 4/7] ABI: Add sysfs documentation for leds-group-virtualcolor Jonathan Brophy
2025-12-30 11:52 ` Andriy Shevencho [this message]
2025-12-30 8:23 ` [PATCH v5 5/7] leds: Add driver " Jonathan Brophy
2025-12-30 8:23 ` [PATCH v5 6/7] leds: Add fwnode_led_get() for firmware-agnostic LED resolution Jonathan Brophy
2025-12-30 12:00 ` Andriy Shevencho
2025-12-31 2:30 ` kernel test robot
2025-12-31 23:37 ` kernel test robot
2025-12-31 23:45 ` kernel test robot
2026-01-02 12:20 ` kernel test robot
2026-01-02 15:07 ` kernel test robot
2026-01-02 16:29 ` kernel test robot
2025-12-30 8:23 ` [PATCH v5 7/7] leds: Add virtual LED group driver with priority arbitration Jonathan Brophy
2025-12-30 12:19 ` Andriy Shevencho
2026-01-03 8:22 ` [PATCH v5 7/7] leds: Add virtual LED group driver Jonathan Brophy
2026-01-03 12:56 ` Andriy Shevencho
2026-01-06 16:59 ` [PATCH v5 0/7] leds: Add virtual LED group driver with priority arbitration Rob Herring
2026-01-13 11:52 ` Lee Jones
2026-01-13 11:57 ` Lee Jones
2026-01-13 20:35 ` Jonathan Brophy
2026-01-15 15:07 ` Lee Jones
2026-01-15 16:58 ` Andriy Shevencho
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aVO9EWB80PwqrHBn@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=pavel@kernel.org \
--cc=professor_jonny@hotmail.com \
--cc=professorjonny98@gmail.com \
--cc=robh@kernel.org \
--cc=rtsvetkov@gradotech.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox