]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
gpio: kempld: Implement the interrupt controller
authorAlban Bedel <alban.bedel@lht.dlh.de>
Wed, 11 Mar 2026 14:31:20 +0000 (15:31 +0100)
committerBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Mon, 16 Mar 2026 09:05:33 +0000 (10:05 +0100)
commita25f48fd920b557e6ad02f692f690520c82f5914
treee9c3f0e5a0f6a61bd76ffb8d7332e2409cc7a749
parent2443c2e1223bda4dcef5563d0154df6a72969922
gpio: kempld: Implement the interrupt controller

Add a GPIO IRQ chip implementation for the kempld GPIO controller. Of
note is only how the parent IRQ is obtained.

The IRQ for the GPIO controller can be configured in the BIOS, along
with the IRQ for the I2C controller. These IRQ are returned by ACPI
but this information is only usable if both IRQ are configured. When
only one is configured, only one is returned making it impossible to
know which one it is.

Luckily the BIOS will set the configured IRQ in the PLD registers, so
it can be read from there instead, and that also work on platforms
without ACPI.

The vendor driver allowed to override the IRQ using a module
parameters, so there are boards in field which used this parameter
instead of properly configuring the BIOS. This implementation provides
this as well for compatibility.

Signed-off-by: Alban Bedel <alban.bedel@lht.dlh.de>
Link: https://patch.msgid.link/20260311143120.2179347-5-alban.bedel@lht.dlh.de
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
drivers/gpio/Kconfig
drivers/gpio/gpio-kempld.c
include/linux/mfd/kempld.h