mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-11-10 20:48:12 +00:00
gpio: realtek: Add driver for Realtek DHC RTD1625 SoC
Add support for the GPIO controller found on Realtek DHC RTD1625 SoCs. Unlike the existing Realtek GPIO driver (drivers/gpio/gpio-rtd.c), which manages pins via shared bank registers, the RTD1625 introduces a per-pin register architecture. Each GPIO line now has its own dedicated 32-bit control register to manage configuration independently, including direction, output value, input value, interrupt enable, and debounce. Therefore, this distinct hardware design requires a separate driver. Additionally, the RTD1625 GPIO controller has a specific hardware quirk: it fires both 'assert' and 'de-assert' interrupts simultaneously on any edge toggle. To handle this, we utilize the polarity register to route the requested edge (rising/falling) to the 'assert' IRQ line. The driver then filters out the unwanted 'de-assert' interrupt in the IRQ handler and pre-clears edge interrupts to prevent interrupt storms caused by unhandled dropped interrupts. Interrupt support is optional for this device, matching the dt-bindings. If the interrupts property is not provided, the driver simply skips IRQ initialization and operates purely as a basic GPIO controller. Reviewed-by: Linus Walleij <linusw@kernel.org> Signed-off-by: Tzuyi Chang <tychang@realtek.com> Co-developed-by: Yu-Chun Lin <eleanor.lin@realtek.com> Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com> Link: https://patch.msgid.link/20260622092335.1166876-4-eleanor.lin@realtek.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
This commit is contained in:
parent
b5d23fcdb1
commit
a57e27c43b
3 changed files with 624 additions and 0 deletions
Loading…
Add table
Add a link
Reference in a new issue