mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
leds: trigger: gpio: Use GPIOD_FLAGS_BIT_NONEXCLUSIVE
When a GPIO is shared between the LED trigger driver and another driver, the LED trigger driver needs to request the GPIO with GPIOD_FLAGS_BIT_NONEXCLUSIVE to allow both drivers to monitor the same GPIO pin. Without this flag, if another driver has already claimed the GPIO, the LED trigger driver's gpiod_get_optional() call fails silently, and the LED trigger doesn't work. This is needed for scenarios like: - SFP module presence/status LED triggered by SFP Mod_ABS/Rx_LOS Both GPIOs are also monitored by the SFP driver for module state management, so they need to be shared. Signed-off-by: Piotr Kubik <piotr@kubik.pl> Link: https://patch.msgid.link/20260408115106.379834-1-piotr@kubik.pl Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
7c150c17c0
commit
26e15f2558
|
|
@ -86,7 +86,8 @@ static int gpio_trig_activate(struct led_classdev *led)
|
|||
* The generic property "trigger-sources" is followed,
|
||||
* and we hope that this is a GPIO.
|
||||
*/
|
||||
gpio_data->gpiod = gpiod_get_optional(dev, "trigger-sources", GPIOD_IN);
|
||||
gpio_data->gpiod = gpiod_get_optional(dev, "trigger-sources",
|
||||
GPIOD_IN | GPIOD_FLAGS_BIT_NONEXCLUSIVE);
|
||||
if (IS_ERR(gpio_data->gpiod)) {
|
||||
ret = PTR_ERR(gpio_data->gpiod);
|
||||
kfree(gpio_data);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user