linux-yocto/drivers/leds
Johan Adolfsson 8341c0a072 leds: leds-lp50xx: Handle reg to get correct multi_index
[ Upstream commit 2e84a5e537 ]

mc_subled used for multi_index needs well defined array indexes,
to guarantee the desired result, use reg for that.

If devicetree child nodes is processed in random or reverse order
you may end up with multi_index "blue green red" instead of the expected
"red green blue".
If user space apps uses multi_index to deduce how to control the leds
they would most likely be broken without this patch if devicetree
processing is reversed (which it appears to be).

arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-fuji.dts has reg set
but I don't see how it can have worked without this change.

If reg is not set, an error is returned,
If reg is out of range, an error is returned.
reg within led child nodes starts with 0, to map to the iout in each bank.

Signed-off-by: Johan Adolfsson <johan.adolfsson@axis.com>
Reviewed-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Link: https://lore.kernel.org/r/20250617-led-fix-v7-1-cdbe8efc88fa@axis.com
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-08-20 18:41:25 +02:00
..
blink leds: lgm-sso: Use new GPIO line value setter callbacks 2025-05-14 09:24:58 +01:00
flash leds: flash: leds-qcom-flash: Fix registry access after re-bind 2025-08-20 18:40:45 +02:00
rgb leds: rgb: leds-mt6370-rgb: Improve definition of some struct linear_range 2025-05-14 09:25:08 +01:00
simatic leds: Rename simple directory to simatic 2025-03-21 09:21:56 +00:00
trigger Revert "leds: trigger: netdev: Configure LED blink interval for HW offload" 2025-08-20 18:40:45 +02:00
.kunitconfig leds: Provide skeleton KUnit testing for the LEDs framework 2025-05-14 09:25:02 +01:00
Kconfig leds: Provide skeleton KUnit testing for the LEDs framework 2025-05-14 09:25:02 +01:00
led-class-flash.c leds: flash: Add support for flash/strobe duration 2025-05-14 09:25:09 +01:00
led-class-multicolor.c leds: multicolor: Fix intensity setting while SW blinking 2025-05-14 09:24:45 +01:00
led-class.c leds: triggers: Constify 'struct bin_attribute' 2025-01-09 11:09:09 +00:00
led-core.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
led-test.c leds: led-test: Provide tests for the lookup and get infrastructure 2025-05-14 09:25:07 +01:00
led-triggers.c leds: led-triggers: Improvements for default trigger 2025-04-15 17:57:54 +01:00
leds-88pm860x.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-acer-a500.c
leds-adp5520.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-an30259a.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-apu.c leds: apu: Remove duplicate DMI lookup data 2024-04-12 09:47:15 +01:00
leds-ariel.c
leds-aw200xx.c leds: aw200xx: don't use return with gpiod_set_value() variants 2025-02-26 11:17:39 +01:00
leds-aw2013.c leds: aw2013: Simplify with scoped for each OF child loop 2024-08-22 14:23:03 +01:00
leds-bcm6328.c leds: bcm6328: Replace divide condition with comparison for shift value 2024-10-31 16:22:23 +00:00
leds-bcm6358.c leds: bcm6358: Simplify with scoped for each OF child loop 2024-08-22 14:23:05 +01:00
leds-bd2606mvv.c leds: bd2606mvv: Fix device child node usage in bd2606mvv_probe() 2024-08-01 13:40:07 +01:00
leds-bd2802.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-blinkm.c leds: Add multicolor support to BlinkM LED driver 2024-08-01 13:40:02 +01:00
leds-cht-wcove.c leds: cht-wcove: Use devm_led_classdev_register() to avoid memory leak 2025-01-09 10:57:16 +00:00
leds-clevo-mail.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-cobalt-qube.c
leds-cobalt-raq.c
leds-cpcap.c
leds-cr0014114.c leds: cr0014114: Switch to device_for_each_child_node_scoped() 2024-10-09 15:16:59 +01:00
leds-cros_ec.c leds: leds-cros_ec: Avoid -Wflex-array-member-not-at-end warning 2025-04-15 17:57:57 +01:00
leds-da903x.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-da9052.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-dac124s085.c
leds-el15203000.c leds: el15203000: Switch to device_for_each_child_node_scoped() 2024-10-09 15:17:06 +01:00
leds-expresswire.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
leds-gpio-register.c leds: leds-gpio-register: Reorganize kerneldoc parameter names 2024-10-10 14:42:33 +01:00
leds-gpio.c - Removed unused local header files from various drivers. 2024-11-22 16:25:20 -08:00
leds-hp6xx.c
leds-ip30.c
leds-ipaq-micro.c
leds-is31fl32xx.c leds: is31fl32xx: Simplify with scoped for each OF child loop 2024-08-22 14:23:06 +01:00
leds-is31fl319x.c leds: is31fl319x: Use device_for_each_child_node_scoped() to access child nodes 2024-08-01 13:40:08 +01:00
leds-lm355x.c
leds-lm3530.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-lm3532.c leds: lm3532: Switch to device_for_each_child_node_scoped() 2024-10-09 15:17:20 +01:00
leds-lm3533.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-lm3642.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-lm3692x.c
leds-lm3697.c leds: lm3697: Switch to device_for_each_child_node_scoped() 2024-10-09 15:17:27 +01:00
leds-lm36274.c
leds-locomo.c
leds-lp50xx.c leds: leds-lp50xx: Handle reg to get correct multi_index 2025-08-20 18:41:25 +02:00
leds-lp55xx-common.c leds: lp55xx: Remove redundant test for invalid channel number 2024-10-31 15:01:01 +00:00
leds-lp55xx-common.h leds: lp55xx: Use devm_clk_get_enabled() helpers 2024-08-22 14:48:24 +01:00
leds-lp3944.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-lp3952.c leds: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-06-21 11:57:11 +01:00
leds-lp5521.c leds: leds-lp55xx: Convert mutex lock/unlock to guard API 2024-07-11 12:46:25 +01:00
leds-lp5523.c leds: leds-lp55xx: Convert mutex lock/unlock to guard API 2024-07-11 12:46:25 +01:00
leds-lp5562.c leds: lp5562: Add multicolor brightness control 2024-10-15 12:58:41 +01:00
leds-lp5569.c leds: leds-lp5569: Enable chip after chip configuration 2024-07-12 08:32:37 +01:00
leds-lp8501.c leds: leds-lp55xx: Drop deprecated defines 2024-06-26 17:08:31 +01:00
leds-lp8788.c
leds-lp8860.c leds: lp8860: Check return value of devm_mutex_init() 2025-08-15 16:38:46 +02:00
leds-lp8864.c leds: lp8864: Add support for Texas Instruments LP8864, LP8864S, LP8866 LED-backlights 2025-01-09 10:43:34 +00:00
leds-lt3593.c
leds-max5970.c leds: max5970: Fix unreleased fwnode_handle in probe function 2024-11-06 08:13:14 +00:00
leds-max8997.c
leds-max77650.c leds: max77650: Switch to device_for_each_child_node_scoped() 2024-10-09 15:18:29 +01:00
leds-max77705.c leds: max77705: Add LEDs support 2025-02-20 16:38:37 +00:00
leds-mc13783.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-menf21bmc.c
leds-mlxcpld.c leds: mlxcpld: Remove unused ACPI header inclusion 2025-03-21 09:48:11 +00:00
leds-mlxreg.c leds: mlxreg: Use devm_mutex_init() for mutex initialization 2024-04-11 17:35:18 +01:00
leds-mt6323.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-net48xx.c
leds-netxbig.c leds: netxbig: Fix an OF node reference leak in netxbig_leds_get_of_pdata() 2024-12-17 15:01:11 +00:00
leds-nic78bx.c leds: nic78bx: Tidy up ACPI ID table 2025-03-21 09:49:37 +00:00
leds-ns2.c leds: ns2: Switch to device_for_each_child_node_scoped() 2024-10-09 15:18:37 +01:00
leds-ot200.c
leds-pca955x.c leds: pca955x: Avoid potential overflow when filling default_label (take 2) 2025-08-15 16:39:03 +02:00
leds-pca963x.c leds: pca963x: Switch to device_for_each_child_node_scoped() 2024-10-09 15:18:44 +01:00
leds-pca995x.c leds: pca995x: Fix typo in pca995x_of_match's of_device_id entry 2025-05-14 09:25:04 +01:00
leds-pca9532.c leds: pca9532: Use new GPIO line value setter callbacks 2025-05-14 09:25:00 +01:00
leds-pm8058.c
leds-powernv.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-pwm.c leds: pwm: Add optional DT property default-brightness 2024-11-12 12:14:00 +00:00
leds-qnap-mcu.c leds: Add driver for LEDs from qnap-mcu devices 2024-12-17 13:14:38 +00:00
leds-rb532.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-regulator.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-sc27xx-bltc.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-spi-byte.c leds: spi-byte: Move OF ID table closer to their user 2024-06-26 16:56:07 +01:00
leds-ss4200.c leds: ss4200: Fix the wrong format specifier for 'blinking' 2024-11-12 14:39:26 +00:00
leds-st1202.c * pca955x: Add HW blink support, utilizing PWM0. It supports one frequency 2025-03-29 14:42:59 -07:00
leds-sun50i-a100.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-sunfire.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-syscon.c
leds-tca6507.c leds: tca6507: Use new GPIO line value setter callbacks 2025-05-14 09:25:01 +01:00
leds-ti-lmu-common.c
leds-tlc591xx.c leds: tlc591xx: Replace of_node_put to __free 2024-06-26 16:56:09 +01:00
leds-tps6105x.c
leds-turris-omnia.c leds: turris-omnia: Drop commas in the terminator entries 2025-05-14 09:24:57 +01:00
leds-upboard.c leds: Add AAEON UP board LED driver 2024-12-17 13:17:55 +00:00
leds-wm831x-status.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-wm8350.c leds: Switch back to struct platform_driver::remove() 2024-10-15 09:58:10 +01:00
leds-wrap.c
leds.h leds: triggers: Constify 'struct bin_attribute' 2025-01-09 11:09:09 +00:00
Makefile leds: Provide skeleton KUnit testing for the LEDs framework 2025-05-14 09:25:02 +01:00
TODO
uleds.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00