From: sashiko-bot@kernel.org
To: "Aiden Isik" <aidenisik@member.fsf.org>
Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
robh@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH 3/3] pinctrl: samsung: Add Exynos5515 pinctrl configuration
Date: Mon, 19 Oct 2026 15:47:54 +0000 [thread overview]
Message-ID: <sashiko-outbox-177786@kernel.org> (raw)
In-Reply-To: <20261019-for-next-lucky7-pinctrl-v1-3-0f77e94c70bc@member.fsf.org>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] pinctrl: samsung: mismatched EINT config for Exynos5515 FSYS controller
- [High] pinctrl: samsung: invalid exynos_eint_gpio_init() on Exynos5515 ALIVE
--
commit 9b9aa666ae93755ccd47b8a80ec9f4fcc81c1eca
Author: Aiden Isik <aidenisik@member.fsf.org>
pinctrl: samsung: Add Exynos5515 pinctrl configuration
This commit adds the pinctrl configuration, pin bank definitions, and
compatible string match data for the Samsung Exynos5515 SoC.
> diff --git a/drivers/pinctrl/samsung/pinctrl-exynos-arm64.c b/drivers/pinctrl/samsung/pinctrl-exynos-arm64.c
> index 1aa977d2a1f80..def84f7f029ea 100644
> --- a/drivers/pinctrl/samsung/pinctrl-exynos-arm64.c
> +++ b/drivers/pinctrl/samsung/pinctrl-exynos-arm64.c
> @@ -488,6 +488,129 @@ const struct samsung_pinctrl_of_match_data exynos5433_of_data __initconst = {
> .num_ctrl = ARRAY_SIZE(exynos5433_pin_ctrl),
> };
>
> +/* pin banks of exynos5515 pin-controller 0 (ALIVE) */
> +static const struct samsung_pin_bank_data exynos5515_pin_banks0[] __initconst = {
> + GS101_PIN_BANK_EINTW(8, 0x000, "gpa0", 0x00, 0x00),
> + GS101_PIN_BANK_EINTW(7, 0x020, "gpa1", 0x04, 0x08),
> + EXYNOS850_PIN_BANK_EINTN(6, 0x040, "gpq0"),
> + EXYNOS850_PIN_BANK_EINTN(6, 0x060, "etc0"),
> +};
> +
[ ... ]
> +/* pin banks of exynos5515 pin-controller 3 (FSYS) */
> +static const struct samsung_pin_bank_data exynos5515_pin_banks3[] __initconst = {
> + EXYNOS5515_PIN_BANK_EINTN(4, 0x000, "gpf0"),
> + EXYNOS5515_PIN_BANK_EINTN(8, 0x020, "gpf1"),
> + EXYNOS5515_PIN_BANK_EINTN(6, 0x040, "gpf2"),
> +};
> +
[ ... ]
> +static const struct samsung_pin_ctrl exynos5515_pin_ctrl[] __initconst = {
> + {
> + /* pin-controller instance 0 ALIVE data */
> + .pin_banks = exynos5515_pin_banks0,
> + .nr_banks = ARRAY_SIZE(exynos5515_pin_banks0),
> + .eint_gpio_init = exynos_eint_gpio_init,
> + .eint_wkup_init = exynos_eint_wkup_init,
> + .suspend = gs101_pinctrl_suspend,
> + .resume = gs101_pinctrl_resume,
> + }, {
[Severity: High]
Should eint_gpio_init be set on the ALIVE controller entry in
exynos5515_pin_ctrl?
exynos5515_pin_banks0 only defines EINT_TYPE_WKUP banks (gpa0 and gpa1 via
GS101_PIN_BANK_EINTW) and EINT_TYPE_NONE banks (gpq0 and etc0 via
EXYNOS850_PIN_BANK_EINTN), with no EINT_TYPE_GPIO banks.
When samsung_pinctrl_probe() calls exynos_eint_gpio_init() for the ALIVE
controller:
drivers/pinctrl/samsung/pinctrl-exynos.c:exynos_eint_gpio_init() {
if (!d->irq) {
dev_err(dev, "irq number not available\n");
return -EINVAL;
}
}
Because ALIVE wakeup interrupts are described per-bank and handled by
exynos_eint_wkup_init() without a controller-level GPIO interrupt property,
won't d->irq be zero and cause probe of the ALIVE pin controller to fail
with -EINVAL?
[ ... ]
> + }, {
> + /* pin-controller instance 3 FSYS data */
> + .pin_banks = exynos5515_pin_banks3,
> + .nr_banks = ARRAY_SIZE(exynos5515_pin_banks3),
> + .eint_gpio_init = exynos_eint_gpio_init,
> + .suspend = gs101_pinctrl_suspend,
> + .resume = gs101_pinctrl_resume,
> + }, {
[Severity: High]
Is the EINT configuration for the FSYS controller in exynos5515_pin_ctrl
and exynos5515_pin_banks3 mismatched?
All three banks in exynos5515_pin_banks3 (gpf0, gpf1, and gpf2) are defined
with EXYNOS5515_PIN_BANK_EINTN, which sets eint_type to EINT_TYPE_NONE,
whereas the FSYS entry in exynos5515_pin_ctrl sets eint_gpio_init, suspend,
and resume:
drivers/pinctrl/samsung/pinctrl-exynos.c:exynos_eint_gpio_init() {
if (!d->irq) {
dev_err(dev, "irq number not available\n");
return -EINVAL;
}
ret = devm_request_irq(dev, d->irq, exynos_eint_gpio_irq,
0, dev_name(dev), d);
...
bank = d->pin_banks;
for (i = 0; i < d->nr_banks; ++i, ++bank) {
if (bank->eint_type != EINT_TYPE_GPIO)
continue;
If the FSYS controller has no GPIO interrupt in Device Tree,
exynos_eint_gpio_init() will fail probe with -EINVAL when checking d->irq.
Conversely, if FSYS does provide an interrupt, exynos_eint_gpio_init() will
register exynos_eint_gpio_irq() and then skip all three banks because their
eint_type is EINT_TYPE_NONE, leaving bank->irq_domain NULL if an interrupt
fires (and gs101_pinctrl_suspend() / gs101_pinctrl_resume() will also skip
every bank).
Should gpf0, gpf1, and gpf2 be defined as EINTG banks, or should
eint_gpio_init, suspend, and resume be omitted from the FSYS entry in
exynos5515_pin_ctrl?
[ ... ]
> +};
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261019-for-next-lucky7-pinctrl-v1-0-0f77e94c70bc@member.fsf.org?part=3
next prev parent reply other threads:[~2026-10-19 15:47 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-19 14:41 [PATCH 0/3] Introduce Exynos5515 pinctrl support Aiden Isik via B4 Relay
2026-10-19 14:41 ` Aiden Isik
2026-10-19 14:41 ` [PATCH 1/3] dt-bindings: pinctrl: samsung: Add compatible for Exynos5515 Aiden Isik via B4 Relay
2026-10-19 14:41 ` Aiden Isik
2026-10-19 14:41 ` [PATCH 2/3] dt-bindings: pinctrl: samsung: add exynos5515-wakeup-eint compatible Aiden Isik via B4 Relay
2026-10-19 14:41 ` Aiden Isik
2026-10-19 14:41 ` [PATCH 3/3] pinctrl: samsung: Add Exynos5515 pinctrl configuration Aiden Isik via B4 Relay
2026-10-19 14:41 ` Aiden Isik
2026-10-19 15:47 ` sashiko-bot [this message]
2026-10-19 23:41 ` Aiden Isik
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=sashiko-outbox-177786@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=aidenisik@member.fsf.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.