linux-yocto/drivers/leds
Johan Adolfsson 06f6a0b1ba 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-28 16:26:00 +02:00
..
blink leds: leds-bcm63138: get rid of LED_OFF 2022-07-17 14:55:40 +02:00
flash leds: flash: mt6360: Fix device_for_each_child_node() refcounting in error paths 2024-12-14 19:54:29 +01:00
rgb leds: pwm-multicolor: Add check for fwnode_property_read_u32 2025-06-04 14:40:11 +02:00
simple leds: simatic-ipc-leds-gpio: Make sure we have the GPIO providing driver 2023-03-10 09:33:26 +01:00
trigger leds: triggers: Flush pending brightness before activating trigger 2024-08-11 12:35:53 +02:00
Kconfig leds: aw2013: Select missing dependency REGMAP_I2C 2024-01-25 15:27:45 -08:00
led-class-flash.c led-class-flash: fix -Wrestrict warning 2021-09-27 16:09:42 +02:00
led-class-multicolor.c leds: multicolor: Fix intensity setting while SW blinking 2025-07-06 10:57:54 +02:00
led-class.c leds: class: Protect brightness_show() with led_cdev->led_access mutex 2024-12-14 19:54:46 +01:00
led-core.c leds: Drop BUG_ON check for LED_COLOR_ID_MULTI 2023-10-10 22:00:40 +02:00
led-triggers.c leds: triggers: Flush pending brightness before activating trigger 2024-08-11 12:35:53 +02:00
leds-88pm860x.c
leds-acer-a500.c
leds-adp5520.c
leds-an30259a.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-apu.c
leds-ariel.c
leds-asic3.c
leds-aw2013.c leds: aw2013: Unlock mutex before destroying it 2024-03-26 18:20:52 -04:00
leds-bcm6328.c leds: leds-bcm6328: Demote kernel-doc abuse 2021-05-28 11:38:55 +02:00
leds-bcm6358.c
leds-bd2802.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-blinkm.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-clevo-mail.c
leds-cobalt-qube.c
leds-cobalt-raq.c
leds-cpcap.c
leds-cr0014114.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
leds-da903x.c
leds-da9052.c
leds-dac124s085.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
leds-el15203000.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
leds-gpio-register.c leds: leds-gpio-register: Supply description for param 'id' 2021-05-28 11:38:54 +02:00
leds-gpio.c leds: move default_state read from fwnode to core 2021-08-18 08:27:30 +02:00
leds-hp6xx.c
leds-ip30.c
leds-ipaq-micro.c
leds-is31fl32xx.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-is31fl319x.c leds: is31fl319x: Wrap mutex_destroy() for devm_add_action_or_rest() 2023-03-10 09:33:26 +01:00
leds-lm355x.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lm3530.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lm3532.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lm3533.c
leds-lm3642.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lm3692x.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lm3697.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lm36274.c leds: lm36274: Add missed property.h 2021-05-30 23:03:48 +02:00
leds-locomo.c ARM: pxa: split up mach/hardware.h 2022-04-19 16:27:05 +02:00
leds-lp50xx.c leds: leds-lp50xx: Handle reg to get correct multi_index 2025-08-28 16:26:00 +02:00
leds-lp55xx-common.c leds: lp55xx: Remove redundant test for invalid channel number 2024-12-14 19:54:13 +01:00
leds-lp55xx-common.h
leds-lp3944.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lp3952.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lp5521.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lp5523.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lp5562.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lp8501.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-lp8788.c
leds-lp8860.c leds: lp8860: Write full EEPROM, not only half of it 2025-02-21 13:49:38 +01:00
leds-lt3593.c leds: lt3593: Put fwnode in any case during ->probe() 2021-08-03 23:49:31 +02:00
leds-max8997.c
leds-max77650.c
leds-mc13783.c
leds-menf21bmc.c
leds-mlxcpld.c leds: leds-mlxcpld: Fix a bunch of kernel-doc formatting issues 2021-05-28 11:39:00 +02:00
leds-mlxreg.c leds: mlxreg: Use devm_mutex_init() for mutex initialization 2025-03-28 21:58:57 +01:00
leds-mt6323.c
leds-net48xx.c
leds-netxbig.c leds: netxbig: Fix an OF node reference leak in netxbig_leds_get_of_pdata() 2025-02-21 13:49:00 +01:00
leds-nic78bx.c
leds-ns2.c
leds-ot200.c
leds-pca955x.c leds: pca955x: Allow zero LEDs to be specified 2022-03-02 09:51:40 +01:00
leds-pca963x.c leds: pca963: fix misleading indentation 2022-09-26 23:16:37 +02:00
leds-pca9532.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
leds-pm8058.c
leds-powernv.c
leds-pwm.c leds: pwm: Don't disable the PWM when the LED should be off 2023-11-20 11:52:08 +01:00
leds-rb532.c
leds-regulator.c leds: regulator: Make probeable from device tree 2022-05-05 10:04:52 +02:00
leds-s3c24xx.c
leds-sc27xx-bltc.c
leds-spi-byte.c leds: spi-byte: Call of_node_put() on error path 2024-09-12 11:10:19 +02:00
leds-ss4200.c leds: ss4200: Convert PCIBIOS_* return codes to errnos 2024-08-03 08:49:35 +02:00
leds-sunfire.c
leds-syscon.c
leds-tca6507.c leds: tca6507: Fix error handling of using fwnode_property_read_string 2023-05-11 23:03:36 +09:00
leds-ti-lmu-common.c
leds-tlc591xx.c leds: tlc591xx: fix return value check in tlc591xx_probe() 2021-05-10 11:58:54 +02:00
leds-tps6105x.c
leds-turris-omnia.c leds: turris-omnia: Do not use SMBUS calls 2023-11-20 11:52:08 +01:00
leds-wm831x-status.c
leds-wm8350.c
leds-wrap.c
leds.h leds: move default_state read from fwnode to core 2021-08-18 08:27:30 +02:00
Makefile leds: Move pwm-multicolor driver into rgb directory 2022-05-07 23:09:31 +02:00
TODO
uleds.c