mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Long Zhao via B4 Relay <devnull+longzhao.ambarella.com@kernel.org>
To: Bartosz Golaszewski <brgl@kernel.org>, linux-gpio@vger.kernel.org
Cc: Linus Walleij <linusw@kernel.org>,
	Michael Walle <mwalle@kernel.org>,
	 Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	 Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	 Krzysztof Kozlowski <krzk+dt@kernel.org>,
	 Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>,
	 Conor Dooley <conor+dt@kernel.org>,
	Mika Westerberg <westeri@kernel.org>,
	 devicetree@vger.kernel.org, Long Zhao <longzhao@ambarella.com>,
	 Long Zhao <zl020895@163.com>,
	linux-kernel@vger.kernel.org,
	 Conor Dooley <conor.dooley@microchip.com>,
	Chanho Min <chanho.min@lge.com>,
	 linux-acpi@vger.kernel.org, Kees Cook <kees@kernel.org>,
	 linux-hardening@vger.kernel.org
Subject: [PATCH v14 00/14] gpio: add Ambarella CV75 PL061 support
Date: Tue, 10 Nov 2026 12:32:25 +0800	[thread overview]
Message-ID: <20261110-cv75-gpio-v14-0-e586aad0467a@ambarella.com> (raw)

Please take this series through the GPIO tree. The quirk, the PL061
conversion and the Ambarella layout belong together.

These patches convert the ARM PL061 data path to regmap, then add
the CV75 layout. They also request ACPI GPIO events for an external
irq domain, and remove the gpiochip before tearing down its irqchip.

The data path uses gpio-regmap with two layouts, ARM PrimeCell and
Ambarella. ARM PL061 sets GPIO_REGMAP_QUIRK_SET_AFTER_DIR. IRQ stays
a custom PL061 irqchip, attached through gpio-regmap. regmap-irq is
not used.

Tested with lockdep enabled on the CV75 EVK. The board boots.
gpio-hammer toggles gpiochip0 line 26 ten times, and gpio-event-mon
on line 27 records alternating rising and falling edges. unbind and
bind work; the chip re-registers and both tools work again after
the rebind.

The registration error-path leak fix is already applied in the GPIO
tree as 80415a6ff295 ("gpio: regmap: free the irqchip if adding the
irq domain fails"). Apply this series on top of that commit.

Changes in v14:
- lib/string_choices: add str_rising_falling() and use it in pl061. (Andy)
- gpio: regmap: keep removing the gpiochip before the irqchip. (Sashiko)
- gpio: regmap: rename the SET_AFTER_DIR subject from gpiolib:. (Michael)
- gpiolib: collect Mika's Acked-by and move linux-acpi below ---. (Mika)
- gpio: pl061: collect Andy's Reviewed-by on the IRQ logging patch. (Andy)
- gpio: pl061: collect Linus's Reviewed-by on the parent local. (Linus)
- Link to v13: https://patch.msgid.link/20261102-cv75-gpio-v13-0-4f93114ea204@ambarella.com

To: Bartosz Golaszewski <brgl@kernel.org>
To: linux-gpio@vger.kernel.org
Cc: Linus Walleij <linusw@kernel.org>
Cc: Michael Walle <mwalle@kernel.org>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Mika Westerberg <westeri@kernel.org>
Cc: devicetree@vger.kernel.org
Cc: Long Zhao <longzhao@ambarella.com>
Cc: Long Zhao <zl020895@163.com>
Cc: linux-kernel@vger.kernel.org

Signed-off-by: Long Zhao <longzhao@ambarella.com>
---
Long Zhao (14):
      dt-bindings: gpio: pl061: add Ambarella CV75 variant
      gpio: regmap: add GPIO_REGMAP_QUIRK_SET_AFTER_DIR
      gpio: regmap: remove gpiochip before tearing down irqchip
      gpio: pl061: drop redundant pending check in the IRQ handler
      gpio: pl061: convert register access to regmap
      gpio: pl061: use IRQ_TYPE_LEVEL_MASK and IRQ_TYPE_EDGE_BOTH
      gpio: pl061: use cleanup helpers for locks
      gpio: pl061: keep the parent device in a local
      gpiolib: request ACPI GPIO events for external IRQ domains
      gpio: pl061: switch data path to gpio-regmap
      gpio: pl061: add Ambarella register-layout variant
      gpio: pl061: tidy up IRQ trigger logging
      lib/string_choices: add str_rising_falling()
      gpio: pl061: use string_choices helpers for IRQ trigger logging

 .../devicetree/bindings/gpio/pl061-gpio.yaml       |  25 +-
 drivers/gpio/Kconfig                               |   2 +
 drivers/gpio/gpio-pl061.c                          | 548 +++++++++++++--------
 drivers/gpio/gpio-regmap.c                         |  24 +-
 drivers/gpio/gpiolib.c                             |   9 +-
 include/linux/amba/bus.h                           |   1 +
 include/linux/gpio/regmap.h                        |  14 +
 include/linux/string_choices.h                     |   6 +
 8 files changed, 430 insertions(+), 199 deletions(-)
---
base-commit: 34cf6dafc47441dfb6b356a095b89c3585a93714
change-id: 20261007-cv75-gpio-333d7c1dfe11

Best regards,
--  
Long Zhao <longzhao@ambarella.com>



             reply	other threads:[~2026-11-10  4:32 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-10  4:32 Long Zhao via B4 Relay [this message]
2026-11-10  4:32 ` [PATCH v14 01/14] dt-bindings: gpio: pl061: add Ambarella CV75 variant Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 02/14] gpio: regmap: add GPIO_REGMAP_QUIRK_SET_AFTER_DIR Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 03/14] gpio: regmap: remove gpiochip before tearing down irqchip Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 04/14] gpio: pl061: drop redundant pending check in the IRQ handler Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 05/14] gpio: pl061: convert register access to regmap Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 06/14] gpio: pl061: use IRQ_TYPE_LEVEL_MASK and IRQ_TYPE_EDGE_BOTH Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 07/14] gpio: pl061: use cleanup helpers for locks Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 08/14] gpio: pl061: keep the parent device in a local Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 09/14] gpiolib: request ACPI GPIO events for external IRQ domains Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 10/14] gpio: pl061: switch data path to gpio-regmap Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 11/14] gpio: pl061: add Ambarella register-layout variant Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 12/14] gpio: pl061: tidy up IRQ trigger logging Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 13/14] lib/string_choices: add str_rising_falling() Long Zhao via B4 Relay
2026-11-10  4:32 ` [PATCH v14 14/14] gpio: pl061: use string_choices helpers for IRQ trigger logging Long Zhao via B4 Relay

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261110-cv75-gpio-v14-0-e586aad0467a@ambarella.com \
    --to=devnull+longzhao.ambarella.com@kernel.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=brgl@kernel.org \
    --cc=chanho.min@lge.com \
    --cc=conor+dt@kernel.org \
    --cc=conor.dooley@microchip.com \
    --cc=devicetree@vger.kernel.org \
    --cc=kees@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=krzysztof.kozlowski@oss.qualcomm.com \
    --cc=linusw@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-hardening@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=longzhao@ambarella.com \
    --cc=mwalle@kernel.org \
    --cc=robh@kernel.org \
    --cc=westeri@kernel.org \
    --cc=zl020895@163.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®