Devicetree
 help / color / mirror / Atom feed
* [PATCH v2 0/2] gpio: add support for Axiado SGPIO controller
@ 2026-07-29  7:02 Petar Stepanovic
  2026-07-29  7:02 ` [PATCH v2 1/2] dt-bindings: gpio: Add " Petar Stepanovic
  2026-07-29  7:02 ` [PATCH v2 2/2] gpio: axiado: add SGPIO controller support Petar Stepanovic
  0 siblings, 2 replies; 6+ messages in thread
From: Petar Stepanovic @ 2026-07-29  7:02 UTC (permalink / raw)
  To: Petar Stepanovic, Tzu-Hao Wei, Swark Yang, Prasad Bolisetty,
	Linus Walleij, Bartosz Golaszewski, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Harshit Shah, SriNavmani A,
	Karthikeyan Mitran
  Cc: linux-gpio, devicetree, linux-arm-kernel, linux-kernel

SGPIO position provides one input GPIO and one output GPIO with fixed
directions, along with interrupt support for input GPIOs.

This series adds support for the Axiado SGPIO controller.

The series includes:
- Device tree binding documentation
- GPIO driver implementation

The driver integrates with the Linux GPIO subsystem and
registers the controller as a gpio_chip.

Tested on Axiado platforms.

---
Patch 1: dt-bindings: gpio: add Axiado SGPIO controller
Patch 2: gpio: axiado: add SGPIO controller support

Signed-off-by: Petar Stepanovic <pstepanovic@axiado.com>

---
Changes in v2:
- Split the series into two patches: the binding and `MAINTAINERS`
  update, followed by the SGPIO driver.
- Added SoC-specific compatibles for AX3000 and AX3005 and selected
  hardware limits and register layouts through match data.
- Reworked clock handling to use one APB clock and calculate the SGPIO
  divider from `bus-frequency`.
- Removed the custom `design-variant`, `dout-init`, `apb-frequency`,
  and `bus-frequency` clock-source properties from the previous design.
- Added validation for the GPIO count, clock rates, and SGPIO divider
  calculation.
- Added correct GPIO direction handling: even offsets are inputs and odd
  offsets are outputs.
- Fixed child IRQ mapping for the interleaved input/output GPIO layout
  and
  restricted interrupts to input GPIOs.
- Reworked interrupt handling to support rising, falling, and both-edge
  detection through software filtering.
- Initialized the input cache before enabling interrupts to prevent
  false
  edge events during probe.
- Serialized output cache updates and register writes with a mutex to
  prevent lost concurrent updates.
- Updated GPIO IRQ handling to use GPIO IRQ resource helpers and
  threaded
  nested interrupts.
- Added managed hardware cleanup for probe failures and device removal.
- Updated the Kconfig regmap dependency for the MMIO-backed variant.
- Simplified resource management and error handling and performed
  general
  coding-style cleanup.
- Link to v1: https://lore.kernel.org/r/20260414-axiado-ax3000-sgpio-controller-v1-0-b5c7e4c2e69b@axiado.com

---
Petar Stepanovic (2):
      dt-bindings: gpio: Add Axiado SGPIO controller
      gpio: axiado: add SGPIO controller support

 .../devicetree/bindings/gpio/axiado,sgpio.yaml     | 118 +++
 MAINTAINERS                                        |   9 +
 drivers/gpio/Kconfig                               |  18 +
 drivers/gpio/Makefile                              |   1 +
 drivers/gpio/gpio-axiado-sgpio.c                   | 795 +++++++++++++++++++++
 5 files changed, 941 insertions(+)
---
base-commit: 1590cf0329716306e948a8fc29f1d3ee87d3989f
change-id: 20260320-axiado-ax3000-sgpio-controller-00f6e1db6ce9

Best regards,
-- 
Petar Stepanovic <pstepanovic@axiado.com>


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-07-29  8:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-29  7:02 [PATCH v2 0/2] gpio: add support for Axiado SGPIO controller Petar Stepanovic
2026-07-29  7:02 ` [PATCH v2 1/2] dt-bindings: gpio: Add " Petar Stepanovic
2026-07-29  7:10   ` sashiko-bot
2026-07-29  8:03   ` Krzysztof Kozlowski
2026-07-29  7:02 ` [PATCH v2 2/2] gpio: axiado: add SGPIO controller support Petar Stepanovic
2026-07-29  7:14   ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox