From: Conor Dooley <conor@kernel.org>
To: Khristine Andreea Barbulescu <khristineandreea.barbulescu@oss.nxp.com>
Cc: Linus Walleij <linusw@kernel.org>,
Bartosz Golaszewski <brgl@bgdev.pl>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Chester Lin <chester62515@gmail.com>,
Matthias Brugger <mbrugger@suse.com>,
Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>,
Larisa Grigore <larisa.grigore@nxp.com>,
Lee Jones <lee@kernel.org>, Shawn Guo <shawnguo@kernel.org>,
Sascha Hauer <s.hauer@pengutronix.de>,
Fabio Estevam <festevam@gmail.com>,
Dong Aisheng <aisheng.dong@nxp.com>, Jacky Bai <ping.bai@nxp.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Srinivas Kandagatla <srini@kernel.org>,
Alberto Ruiz <aruizrui@redhat.com>,
Christophe Lizzi <clizzi@redhat.com>,
devicetree@vger.kernel.org, Enric Balletbo <eballetb@redhat.com>,
Eric Chanudet <echanude@redhat.com>,
imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
NXP S32 Linux Team <s32@nxp.com>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Vincent Guittot <vincent.guittot@linaro.org>
Subject: Re: [PATCH v10 4/6] dt-bindings: pinctrl: s32g2-siul2: describe GPIO and EIRQ resources
Date: Tue, 2 Jun 2026 17:28:50 +0100 [thread overview]
Message-ID: <20260602-casualty-overstuff-b46f9c7d7d12@spud> (raw)
In-Reply-To: <20260602080132.3256239-5-khristineandreea.barbulescu@oss.nxp.com>
[-- Attachment #1: Type: text/plain, Size: 7744 bytes --]
On Tue, Jun 02, 2026 at 10:01:30AM +0200, Khristine Andreea Barbulescu wrote:
> Extend the S32G2 SIUL2 pinctrl binding to describe the GPIO data and
> external interrupt resources present in the same SIUL2 hardware block.
>
> Besides the MSCR and IMCR registers used for pin multiplexing and pad
> configuration, SIUL2 also contains PGPDO and PGPDI registers
> for GPIO data and EIRQ registers for external interrupt control.
>
> Add GPIO controller properties because the SIUL2 block also provides
> GPIO functionality, and gpio-ranges are needed to describe the
> mapping between GPIO lines and pin controller pins.
>
> Document the interrupt controller properties. The SIUL2 block
> contains EIRQ hardware as part of the same register space. IRQ support
> itself will be added in a follow-up patch series.
>
> Update the example accordingly to show the complete SIUL2 register
> layout, including the GPIO data and EIRQ register windows.
>
> Signed-off-by: Khristine Andreea Barbulescu <khristineandreea.barbulescu@oss.nxp.com>
> ---
> .../pinctrl/nxp,s32g2-siul2-pinctrl.yaml | 83 +++++++++++++++++--
> 1 file changed, 78 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml
> index a24286e4def6..e4cc1a3a795c 100644
> --- a/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml
> +++ b/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml
> @@ -1,5 +1,5 @@
> # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> -# Copyright 2022 NXP
> +# Copyright 2022, 2026 NXP
> %YAML 1.2
> ---
> $id: http://devicetree.org/schemas/pinctrl/nxp,s32g2-siul2-pinctrl.yaml#
> @@ -17,8 +17,10 @@ description: |
> SIUL2_0 @ 0x4009c000
> SIUL2_1 @ 0x44010000
>
> - Every SIUL2 region has multiple register types, and here only MSCR and
> - IMCR registers need to be revealed for kernel to configure pinmux.
> + Every SIUL2 region has multiple register types. MSCR and IMCR registers
> + need to be revealed for kernel to configure pinmux. PGPDO and PGPDI
> + registers are used for GPIO output/input operations. EIRQ registers
> + are used for external interrupt configuration.
>
> Please note that some register indexes are reserved in S32G2, such as
> MSCR102-MSCR111, MSCR123-MSCR143, IMCR84-IMCR118 and IMCR398-IMCR429.
> @@ -29,14 +31,22 @@ properties:
> - nxp,s32g2-siul2-pinctrl
>
> reg:
> + minItems: 6
> description: |
> - A list of MSCR/IMCR register regions to be reserved.
> + A list of MSCR/IMCR/PGPDO/PGPDI/EIRQ register regions to be reserved.
> - MSCR (Multiplexed Signal Configuration Register)
> An MSCR register can configure the associated pin as either a GPIO pin
> or a function output pin depends on the selected signal source.
> - IMCR (Input Multiplexed Signal Configuration Register)
> An IMCR register can configure the associated pin as function input
> pin depends on the selected signal source.
> + - PGPDO (Parallel GPIO Pad Data Out Register)
> + A PGPDO register is used to set the output value of a GPIO pin.
> + - PGPDI (Parallel GPIO Pad Data In Register)
> + A PGPDI register is used to read the input value of a GPIO pin.
> + - EIRQ (External Interrupt Request)
> + EIRQ registers are used to configure and manage external interrupts.
> +
> items:
> - description: MSCR registers group 0 in SIUL2_0
> - description: MSCR registers group 1 in SIUL2_1
> @@ -44,6 +54,28 @@ properties:
> - description: IMCR registers group 0 in SIUL2_0
> - description: IMCR registers group 1 in SIUL2_1
> - description: IMCR registers group 2 in SIUL2_1
> + - description: PGPDO registers in SIUL2_0
> + - description: PGPDI registers in SIUL2_0
> + - description: PGPDO registers in SIUL2_1
> + - description: PGPDI registers in SIUL2_1
> + - description: EIRQ registers in SIUL2_1
> +
> + gpio-controller: true
> +
> + "#gpio-cells":
> + const: 2
> +
> + gpio-ranges:
> + minItems: 1
> + maxItems: 4
> +
> + interrupt-controller: true
> +
> + "#interrupt-cells":
> + const: 2
> +
> + interrupts:
> + maxItems: 1
>
> patternProperties:
> '-pins$':
> @@ -86,10 +118,32 @@ required:
> - compatible
> - reg
>
> +oneOf:
> + - description: Legacy pinctrl-only node
> + properties:
> + reg:
> + minItems: 6
drop minItems here, since it matches the outer minItems.
> + maxItems: 6
You're missing having
properties:
gpio-controller: false
etc here, the condition you have doesn't prevent having them without the
reg properties to support them. E.g. with a diff like this applied:
diff --git a/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml
index e4cc1a3a795c..f0fc6a771f32 100644
--- a/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml
@@ -158,17 +158,7 @@ examples:
/* IMCR119-IMCR397 registers on siul2_1 */
<0x44010c1c 0x45c>,
/* IMCR430-IMCR495 registers on siul2_1 */
- <0x440110f8 0x108>,
- /* PGPDO registers on siul2_0 */
- <0x4009d700 0x10>,
- /* PGPDI registers on siul2_0 */
- <0x4009d740 0x10>,
- /* PGPDO registers on siul2_1 */
- <0x44011700 0x18>,
- /* PGPDI registers on siul2_1 */
- <0x44011740 0x18>,
- /* EIRQ registers on siul2_1 */
- <0x44010010 0x34>;
+ <0x440110f8 0x108>;
> +
> + - description: Pinctrl node with GPIO and external interrupt support
> + required:
> + - gpio-controller
> + - "#gpio-cells"
> + - gpio-ranges
> + - interrupt-controller
> + - "#interrupt-cells"
> + - interrupts
> + properties:
> + reg:
> + minItems: 11
> + maxItems: 11
And the same here for maxItems.
Cheers,
Conor.
> +
> additionalProperties: false
>
> examples:
> - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> pinctrl@4009c240 {
> compatible = "nxp,s32g2-siul2-pinctrl";
>
> @@ -104,7 +158,26 @@ examples:
> /* IMCR119-IMCR397 registers on siul2_1 */
> <0x44010c1c 0x45c>,
> /* IMCR430-IMCR495 registers on siul2_1 */
> - <0x440110f8 0x108>;
> + <0x440110f8 0x108>,
> + /* PGPDO registers on siul2_0 */
> + <0x4009d700 0x10>,
> + /* PGPDI registers on siul2_0 */
> + <0x4009d740 0x10>,
> + /* PGPDO registers on siul2_1 */
> + <0x44011700 0x18>,
> + /* PGPDI registers on siul2_1 */
> + <0x44011740 0x18>,
> + /* EIRQ registers on siul2_1 */
> + <0x44010010 0x34>;
> +
> + gpio-controller;
> + #gpio-cells = <2>;
> + gpio-ranges = <&pinctrl 0 0 102>,
> + <&pinctrl 112 112 79>;
> +
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>;
>
> llce-can0-pins {
> llce-can0-grp0 {
> --
> 2.34.1
>
--
pw-bot: changes-requested
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
next prev parent reply other threads:[~2026-06-02 16:29 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-02 8:01 [PATCH v10 0/6] gpio: siul2-s32g2: add initial GPIO driver Khristine Andreea Barbulescu
2026-06-02 8:01 ` [PATCH v10 1/6] pinctrl: s32cc: add/fix some comments Khristine Andreea Barbulescu
2026-06-08 14:12 ` Bartosz Golaszewski
2026-06-02 8:01 ` [PATCH v10 2/6] pinctrl: s32cc: remove inline specifiers Khristine Andreea Barbulescu
2026-06-02 8:01 ` [PATCH v10 3/6] pinctrl: s32cc: change to "devm_pinctrl_register_and_init" Khristine Andreea Barbulescu
2026-06-02 8:01 ` [PATCH v10 4/6] dt-bindings: pinctrl: s32g2-siul2: describe GPIO and EIRQ resources Khristine Andreea Barbulescu
2026-06-02 16:28 ` Conor Dooley [this message]
2026-06-02 8:01 ` [PATCH v10 5/6] pinctrl: s32cc: implement GPIO functionality Khristine Andreea Barbulescu
2026-06-02 9:26 ` Enric Balletbo i Serra
2026-06-10 13:58 ` Khristine Andreea Barbulescu
2026-06-02 8:01 ` [PATCH v10 6/6] arm64: dts: s32g: describe GPIO and EIRQ resources in SIUL2 pinctrl node Khristine Andreea Barbulescu
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=20260602-casualty-overstuff-b46f9c7d7d12@spud \
--to=conor@kernel.org \
--cc=aisheng.dong@nxp.com \
--cc=aruizrui@redhat.com \
--cc=brgl@bgdev.pl \
--cc=chester62515@gmail.com \
--cc=clizzi@redhat.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=eballetb@redhat.com \
--cc=echanude@redhat.com \
--cc=festevam@gmail.com \
--cc=ghennadi.procopciuc@nxp.com \
--cc=gregkh@linuxfoundation.org \
--cc=imx@lists.linux.dev \
--cc=kernel@pengutronix.de \
--cc=khristineandreea.barbulescu@oss.nxp.com \
--cc=krzk+dt@kernel.org \
--cc=larisa.grigore@nxp.com \
--cc=lee@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mbrugger@suse.com \
--cc=ping.bai@nxp.com \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=s32@nxp.com \
--cc=shawnguo@kernel.org \
--cc=srini@kernel.org \
--cc=vincent.guittot@linaro.org \
/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