linux-yocto/arch
Gabor Juhos 8a7c47053f arm64: dts: marvell: uDPU: define pinctrl state for alarm LEDs
[ Upstream commit b04f0d89e8 ]

The two alarm LEDs of on the uDPU board are stopped working since
commit 78efa53e71 ("leds: Init leds class earlier").

The LEDs are driven by the GPIO{15,16} pins of the North Bridge
GPIO controller. These pins are part of the 'spi_quad' pin group
for which the 'spi' function is selected via the default pinctrl
state of the 'spi' node. This is wrong however, since in order to
allow controlling the LEDs, the pins should use the 'gpio' function.

Before the commit mentined above, the 'spi' function is selected
first by the pinctrl core before probing the spi driver, but then
it gets overridden to 'gpio' implicitly via the
devm_gpiod_get_index_optional() call from the 'leds-gpio' driver.

After the commit, the LED subsystem gets initialized before the
SPI subsystem, so the function of the pin group remains 'spi'
which in turn prevents controlling of the LEDs.

Despite the change of the initialization order, the root cause is
that the pinctrl state definition is wrong since its initial commit
0d45062cfc ("arm64: dts: marvell: Add device tree for uDPU board"),

To fix the problem, override the function in the 'spi_quad_pins'
node to 'gpio' and move the pinctrl state definition from the
'spi' node into the 'leds' node.

Cc: stable@vger.kernel.org # needs adjustment for < 6.1
Fixes: 0d45062cfc ("arm64: dts: marvell: Add device tree for uDPU board")
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
[ Applied to .dts instead of .dtsi ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-09-09 18:45:23 +02:00
..
alpha alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support 2025-04-10 14:30:49 +02:00
arc ARC: build: Try to guess GCC variant of cross compiler 2025-01-09 13:25:05 +01:00
arm ARM: 9448/1: Use an absolute path to unified.h in KBUILD_AFLAGS 2025-08-28 16:22:54 +02:00
arm64 arm64: dts: marvell: uDPU: define pinctrl state for alarm LEDs 2025-09-09 18:45:23 +02:00
c6x
csky csky, hexagon: fix broken sys_sync_file_range 2024-07-05 09:12:54 +02:00
h8300
hexagon hexagon: Fix unbalanced spinlock in die() 2025-03-13 12:46:59 +01:00
ia64 efi: ia64: move IA64-only declarations to new asm/efi.h header 2024-07-18 13:05:50 +02:00
m68k m68k: Fix lost column on framebuffer debug console 2025-08-28 16:22:48 +02:00
microblaze microblaze: don't treat zero reserved memory regions as error 2024-10-17 15:07:35 +02:00
mips lib/crypto: mips/chacha: Fix clang build and remove unneeded byteswap 2025-08-28 16:22:49 +02:00
nds32
nios2 nios2: force update_mmu_cache on spurious tlb-permission--related pagefaults 2025-06-27 11:04:17 +01:00
openrisc openrisc: Call setup_memory() earlier in the init sequence 2024-09-04 13:17:38 +02:00
parisc parisc: Makefile: fix a typo in palo.conf 2025-08-28 16:22:48 +02:00
powerpc powerpc/kvm: Fix ifdef to remove build warning 2025-09-04 14:41:42 +02:00
riscv riscv: Avoid fortify warning in syscall_get_arguments() 2025-05-02 07:41:02 +02:00
s390 s390/hypfs: Enable limited access during lockdown 2025-08-28 16:22:59 +02:00
sh sh: Do not use hyphen in exported variable name 2025-08-28 16:22:35 +02:00
sparc sparc/mm: disable preemption in lazy mmu mode 2025-05-02 07:40:56 +02:00
um um: vector: Reduce stack usage in vector_eth_configure() 2025-07-17 18:27:59 +02:00
x86 KVM: x86: Take irqfds.lock when adding/deleting IRQ bypass producer 2025-09-09 18:45:22 +02:00
xtensa xtensa: boot/lib: fix function prototypes 2023-10-10 21:53:31 +02:00
.gitignore
Kconfig cpu: Re-enable CPU mitigations by default for !X86 architectures 2024-05-02 16:23:44 +02:00