* [PATCH v2 0/3] pinctrl: s32: add missing pins and an S32G3 compatible @ 2024-10-02 13:59 Andrei Stefanescu 2024-10-02 13:59 ` [PATCH v2 1/3] pinctrl: s32: add missing pins definitions Andrei Stefanescu ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Andrei Stefanescu @ 2024-10-02 13:59 UTC (permalink / raw) To: Dong Aisheng, Fabio Estevam, Shawn Guo, Jacky Bai, Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ghennadi Procopciuc, Chester Lin, Matthias Brugger, Sascha Hauer Cc: Pengutronix Kernel Team, linux-gpio, devicetree, linux-kernel, linux-arm-kernel, imx, NXP S32 Linux Team, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Andrei Stefanescu This patch series adds some small fixes to the SIUL2 pinctrl driver: - Add some missing pin definitions. - Add another S32G3 compatible and use it in the s32g3.dtsi file. It will fall back to the S32G2 compatible. Andrei Stefanescu (3): pinctrl: s32: add missing pins definitions dt-bindings: pinctrl: add S32G3 compatible for the SIUL2 driver arm64: dts: S32G3: add S32G3 compatible for the pinctrl node .../pinctrl/nxp,s32g2-siul2-pinctrl.yaml | 8 ++- arch/arm64/boot/dts/freescale/s32g3.dtsi | 3 +- drivers/pinctrl/nxp/pinctrl-s32g2.c | 52 +++++++++++++++++++ 3 files changed, 60 insertions(+), 3 deletions(-) -- 2.45.2 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 1/3] pinctrl: s32: add missing pins definitions 2024-10-02 13:59 [PATCH v2 0/3] pinctrl: s32: add missing pins and an S32G3 compatible Andrei Stefanescu @ 2024-10-02 13:59 ` Andrei Stefanescu 2024-10-08 13:25 ` Andrei Stefanescu 2024-10-02 13:59 ` [PATCH v2 2/3] dt-bindings: pinctrl: add S32G3 compatible for the SIUL2 driver Andrei Stefanescu 2024-10-02 13:59 ` [PATCH v2 3/3] arm64: dts: S32G3: add S32G3 compatible for the pinctrl node Andrei Stefanescu 2 siblings, 1 reply; 8+ messages in thread From: Andrei Stefanescu @ 2024-10-02 13:59 UTC (permalink / raw) To: Dong Aisheng, Fabio Estevam, Shawn Guo, Jacky Bai, Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ghennadi Procopciuc, Chester Lin, Matthias Brugger, Sascha Hauer Cc: Pengutronix Kernel Team, linux-gpio, devicetree, linux-kernel, linux-arm-kernel, imx, NXP S32 Linux Team, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Andrei Stefanescu Added definitions for some pins which were missing from the S32G2 SIUL2 pinctrl driver. These pins are used by the JTAG, PFE and LLCE hardware modules. Reviewed-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Stefanescu <andrei.stefanescu@oss.nxp.com> --- drivers/pinctrl/nxp/pinctrl-s32g2.c | 52 +++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/drivers/pinctrl/nxp/pinctrl-s32g2.c b/drivers/pinctrl/nxp/pinctrl-s32g2.c index 440ff1879424..c49d28793b69 100644 --- a/drivers/pinctrl/nxp/pinctrl-s32g2.c +++ b/drivers/pinctrl/nxp/pinctrl-s32g2.c @@ -216,6 +216,12 @@ enum s32_pins { S32G_IMCR_CAN1_RXD = 631, S32G_IMCR_CAN2_RXD = 632, S32G_IMCR_CAN3_RXD = 633, + + /* JTAG IMCRs */ + S32G_IMCR_JTAG_TMS = 562, + S32G_IMCR_JTAG_TCK = 572, + S32G_IMCR_JTAG_TDI = 573, + /* GMAC0 */ S32G_IMCR_Ethernet_MDIO = 527, S32G_IMCR_Ethernet_CRS = 526, @@ -229,7 +235,21 @@ enum s32_pins { S32G_IMCR_Ethernet_RX_DV = 530, S32G_IMCR_Ethernet_TX_CLK = 538, S32G_IMCR_Ethernet_REF_CLK = 535, + /* PFE EMAC 0 MII */ + S32G_IMCR_PFE_EMAC_0_MDIO = 837, + S32G_IMCR_PFE_EMAC_0_CRS = 836, + S32G_IMCR_PFE_EMAC_0_COL = 835, + S32G_IMCR_PFE_EMAC_0_RX_D0 = 841, + S32G_IMCR_PFE_EMAC_0_RX_D1 = 842, + S32G_IMCR_PFE_EMAC_0_RX_D2 = 843, + S32G_IMCR_PFE_EMAC_0_RX_D3 = 844, + S32G_IMCR_PFE_EMAC_0_RX_ER = 840, + S32G_IMCR_PFE_EMAC_0_RX_CLK = 839, + S32G_IMCR_PFE_EMAC_0_RX_DV = 845, + S32G_IMCR_PFE_EMAC_0_TX_CLK = 846, + S32G_IMCR_PFE_EMAC_0_REF_CLK = 838, + /* PFE EMAC 1 MII */ S32G_IMCR_PFE_EMAC_1_MDIO = 857, S32G_IMCR_PFE_EMAC_1_CRS = 856, @@ -317,6 +337,13 @@ enum s32_pins { S32G_IMCR_LLCE_CAN13_RXD = 758, S32G_IMCR_LLCE_CAN14_RXD = 759, S32G_IMCR_LLCE_CAN15_RXD = 760, + S32G_IMCR_LLCE_UART0_RXD = 790, + S32G_IMCR_LLCE_UART1_RXD = 791, + S32G_IMCR_LLCE_UART2_RXD = 792, + S32G_IMCR_LLCE_UART3_RXD = 793, + S32G_IMCR_LLCE_LPSPI2_PCS0 = 811, + S32G_IMCR_LLCE_LPSPI2_SCK = 816, + S32G_IMCR_LLCE_LPSPI2_SIN = 817, S32G_IMCR_USB_CLK = 895, S32G_IMCR_USB_DATA0 = 896, S32G_IMCR_USB_DATA1 = 897, @@ -503,6 +530,12 @@ static const struct pinctrl_pin_desc s32_pinctrl_pads_siul2[] = { S32_PINCTRL_PIN(S32G_IMCR_USDHC_DAT7), S32_PINCTRL_PIN(S32G_IMCR_USDHC_DQS), S32_PINCTRL_PIN(S32G_IMCR_CAN0_RXD), + + /* JTAG IMCRs */ + S32_PINCTRL_PIN(S32G_IMCR_JTAG_TMS), + S32_PINCTRL_PIN(S32G_IMCR_JTAG_TCK), + S32_PINCTRL_PIN(S32G_IMCR_JTAG_TDI), + /* GMAC0 */ S32_PINCTRL_PIN(S32G_IMCR_Ethernet_MDIO), S32_PINCTRL_PIN(S32G_IMCR_Ethernet_CRS), @@ -638,6 +671,13 @@ static const struct pinctrl_pin_desc s32_pinctrl_pads_siul2[] = { S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN13_RXD), S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN14_RXD), S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN15_RXD), + S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART0_RXD), + S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART1_RXD), + S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART2_RXD), + S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART3_RXD), + S32_PINCTRL_PIN(S32G_IMCR_LLCE_LPSPI2_PCS0), + S32_PINCTRL_PIN(S32G_IMCR_LLCE_LPSPI2_SCK), + S32_PINCTRL_PIN(S32G_IMCR_LLCE_LPSPI2_SIN), S32_PINCTRL_PIN(S32G_IMCR_CAN1_RXD), S32_PINCTRL_PIN(S32G_IMCR_CAN2_RXD), S32_PINCTRL_PIN(S32G_IMCR_CAN3_RXD), @@ -652,6 +692,18 @@ static const struct pinctrl_pin_desc s32_pinctrl_pads_siul2[] = { S32_PINCTRL_PIN(S32G_IMCR_USB_DATA7), S32_PINCTRL_PIN(S32G_IMCR_USB_DIR), S32_PINCTRL_PIN(S32G_IMCR_USB_NXT), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_MDIO), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_CRS), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_COL), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D0), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D1), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D2), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D3), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_ER), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_CLK), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_DV), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_TX_CLK), + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_REF_CLK), S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_MDIO), S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_CRS), S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_COL), -- 2.45.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/3] pinctrl: s32: add missing pins definitions 2024-10-02 13:59 ` [PATCH v2 1/3] pinctrl: s32: add missing pins definitions Andrei Stefanescu @ 2024-10-08 13:25 ` Andrei Stefanescu 2024-10-09 16:17 ` Linus Walleij 0 siblings, 1 reply; 8+ messages in thread From: Andrei Stefanescu @ 2024-10-08 13:25 UTC (permalink / raw) To: Dong Aisheng, Fabio Estevam, Shawn Guo, Jacky Bai, Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ghennadi Procopciuc, Chester Lin, Matthias Brugger, Sascha Hauer Cc: Pengutronix Kernel Team, linux-gpio, devicetree, linux-kernel, linux-arm-kernel, imx, NXP S32 Linux Team, Christophe Lizzi, Alberto Ruiz, Enric Balletbo Hi, I would like to drop patches 2 and 3 from this patch series and keep only this first one. Should I send a v3 that only has this patch? Best regards, Andrei On 02/10/2024 16:59, Andrei Stefanescu wrote: > Added definitions for some pins which were missing from the > S32G2 SIUL2 pinctrl driver. These pins are used by the JTAG, > PFE and LLCE hardware modules. > > Reviewed-by: Matthias Brugger <mbrugger@suse.com> > Signed-off-by: Andrei Stefanescu <andrei.stefanescu@oss.nxp.com> > --- > drivers/pinctrl/nxp/pinctrl-s32g2.c | 52 +++++++++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > > diff --git a/drivers/pinctrl/nxp/pinctrl-s32g2.c b/drivers/pinctrl/nxp/pinctrl-s32g2.c > index 440ff1879424..c49d28793b69 100644 > --- a/drivers/pinctrl/nxp/pinctrl-s32g2.c > +++ b/drivers/pinctrl/nxp/pinctrl-s32g2.c > @@ -216,6 +216,12 @@ enum s32_pins { > S32G_IMCR_CAN1_RXD = 631, > S32G_IMCR_CAN2_RXD = 632, > S32G_IMCR_CAN3_RXD = 633, > + > + /* JTAG IMCRs */ > + S32G_IMCR_JTAG_TMS = 562, > + S32G_IMCR_JTAG_TCK = 572, > + S32G_IMCR_JTAG_TDI = 573, > + > /* GMAC0 */ > S32G_IMCR_Ethernet_MDIO = 527, > S32G_IMCR_Ethernet_CRS = 526, > @@ -229,7 +235,21 @@ enum s32_pins { > S32G_IMCR_Ethernet_RX_DV = 530, > S32G_IMCR_Ethernet_TX_CLK = 538, > S32G_IMCR_Ethernet_REF_CLK = 535, > + > /* PFE EMAC 0 MII */ > + S32G_IMCR_PFE_EMAC_0_MDIO = 837, > + S32G_IMCR_PFE_EMAC_0_CRS = 836, > + S32G_IMCR_PFE_EMAC_0_COL = 835, > + S32G_IMCR_PFE_EMAC_0_RX_D0 = 841, > + S32G_IMCR_PFE_EMAC_0_RX_D1 = 842, > + S32G_IMCR_PFE_EMAC_0_RX_D2 = 843, > + S32G_IMCR_PFE_EMAC_0_RX_D3 = 844, > + S32G_IMCR_PFE_EMAC_0_RX_ER = 840, > + S32G_IMCR_PFE_EMAC_0_RX_CLK = 839, > + S32G_IMCR_PFE_EMAC_0_RX_DV = 845, > + S32G_IMCR_PFE_EMAC_0_TX_CLK = 846, > + S32G_IMCR_PFE_EMAC_0_REF_CLK = 838, > + > /* PFE EMAC 1 MII */ > S32G_IMCR_PFE_EMAC_1_MDIO = 857, > S32G_IMCR_PFE_EMAC_1_CRS = 856, > @@ -317,6 +337,13 @@ enum s32_pins { > S32G_IMCR_LLCE_CAN13_RXD = 758, > S32G_IMCR_LLCE_CAN14_RXD = 759, > S32G_IMCR_LLCE_CAN15_RXD = 760, > + S32G_IMCR_LLCE_UART0_RXD = 790, > + S32G_IMCR_LLCE_UART1_RXD = 791, > + S32G_IMCR_LLCE_UART2_RXD = 792, > + S32G_IMCR_LLCE_UART3_RXD = 793, > + S32G_IMCR_LLCE_LPSPI2_PCS0 = 811, > + S32G_IMCR_LLCE_LPSPI2_SCK = 816, > + S32G_IMCR_LLCE_LPSPI2_SIN = 817, > S32G_IMCR_USB_CLK = 895, > S32G_IMCR_USB_DATA0 = 896, > S32G_IMCR_USB_DATA1 = 897, > @@ -503,6 +530,12 @@ static const struct pinctrl_pin_desc s32_pinctrl_pads_siul2[] = { > S32_PINCTRL_PIN(S32G_IMCR_USDHC_DAT7), > S32_PINCTRL_PIN(S32G_IMCR_USDHC_DQS), > S32_PINCTRL_PIN(S32G_IMCR_CAN0_RXD), > + > + /* JTAG IMCRs */ > + S32_PINCTRL_PIN(S32G_IMCR_JTAG_TMS), > + S32_PINCTRL_PIN(S32G_IMCR_JTAG_TCK), > + S32_PINCTRL_PIN(S32G_IMCR_JTAG_TDI), > + > /* GMAC0 */ > S32_PINCTRL_PIN(S32G_IMCR_Ethernet_MDIO), > S32_PINCTRL_PIN(S32G_IMCR_Ethernet_CRS), > @@ -638,6 +671,13 @@ static const struct pinctrl_pin_desc s32_pinctrl_pads_siul2[] = { > S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN13_RXD), > S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN14_RXD), > S32_PINCTRL_PIN(S32G_IMCR_LLCE_CAN15_RXD), > + S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART0_RXD), > + S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART1_RXD), > + S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART2_RXD), > + S32_PINCTRL_PIN(S32G_IMCR_LLCE_UART3_RXD), > + S32_PINCTRL_PIN(S32G_IMCR_LLCE_LPSPI2_PCS0), > + S32_PINCTRL_PIN(S32G_IMCR_LLCE_LPSPI2_SCK), > + S32_PINCTRL_PIN(S32G_IMCR_LLCE_LPSPI2_SIN), > S32_PINCTRL_PIN(S32G_IMCR_CAN1_RXD), > S32_PINCTRL_PIN(S32G_IMCR_CAN2_RXD), > S32_PINCTRL_PIN(S32G_IMCR_CAN3_RXD), > @@ -652,6 +692,18 @@ static const struct pinctrl_pin_desc s32_pinctrl_pads_siul2[] = { > S32_PINCTRL_PIN(S32G_IMCR_USB_DATA7), > S32_PINCTRL_PIN(S32G_IMCR_USB_DIR), > S32_PINCTRL_PIN(S32G_IMCR_USB_NXT), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_MDIO), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_CRS), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_COL), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D0), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D1), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D2), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_D3), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_ER), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_CLK), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_RX_DV), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_TX_CLK), > + S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_0_REF_CLK), > S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_MDIO), > S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_CRS), > S32_PINCTRL_PIN(S32G_IMCR_PFE_EMAC_1_COL), ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 1/3] pinctrl: s32: add missing pins definitions 2024-10-08 13:25 ` Andrei Stefanescu @ 2024-10-09 16:17 ` Linus Walleij 0 siblings, 0 replies; 8+ messages in thread From: Linus Walleij @ 2024-10-09 16:17 UTC (permalink / raw) To: Andrei Stefanescu Cc: Dong Aisheng, Fabio Estevam, Shawn Guo, Jacky Bai, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ghennadi Procopciuc, Chester Lin, Matthias Brugger, Sascha Hauer, Pengutronix Kernel Team, linux-gpio, devicetree, linux-kernel, linux-arm-kernel, imx, NXP S32 Linux Team, Christophe Lizzi, Alberto Ruiz, Enric Balletbo On Tue, Oct 8, 2024 at 3:25 PM Andrei Stefanescu <andrei.stefanescu@oss.nxp.com> wrote: > I would like to drop patches 2 and 3 from this patch series > and keep only this first one. Should I send a v3 that only > has this patch? No need for that, I just applied it :) Yours, Linus Walleij ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 2/3] dt-bindings: pinctrl: add S32G3 compatible for the SIUL2 driver 2024-10-02 13:59 [PATCH v2 0/3] pinctrl: s32: add missing pins and an S32G3 compatible Andrei Stefanescu 2024-10-02 13:59 ` [PATCH v2 1/3] pinctrl: s32: add missing pins definitions Andrei Stefanescu @ 2024-10-02 13:59 ` Andrei Stefanescu 2024-10-02 15:02 ` Conor Dooley 2024-10-02 13:59 ` [PATCH v2 3/3] arm64: dts: S32G3: add S32G3 compatible for the pinctrl node Andrei Stefanescu 2 siblings, 1 reply; 8+ messages in thread From: Andrei Stefanescu @ 2024-10-02 13:59 UTC (permalink / raw) To: Dong Aisheng, Fabio Estevam, Shawn Guo, Jacky Bai, Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ghennadi Procopciuc, Chester Lin, Matthias Brugger, Sascha Hauer Cc: Pengutronix Kernel Team, linux-gpio, devicetree, linux-kernel, linux-arm-kernel, imx, NXP S32 Linux Team, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Andrei Stefanescu The SIUL2 hardware module is also integrated into the S32G3 SoC. Add another compatible for it. Signed-off-by: Andrei Stefanescu <andrei.stefanescu@oss.nxp.com> --- .../bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 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..cff766c2f03b 100644 --- a/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml @@ -25,8 +25,12 @@ description: | properties: compatible: - enum: - - nxp,s32g2-siul2-pinctrl + oneOf: + - enum: + - nxp,s32g2-siul2-pinctrl + - items: + - const: nxp,s32g3-siul2-pinctrl + - const: nxp,s32g2-siul2-pinctrl reg: description: | -- 2.45.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/3] dt-bindings: pinctrl: add S32G3 compatible for the SIUL2 driver 2024-10-02 13:59 ` [PATCH v2 2/3] dt-bindings: pinctrl: add S32G3 compatible for the SIUL2 driver Andrei Stefanescu @ 2024-10-02 15:02 ` Conor Dooley 2024-10-02 15:25 ` Andrei Stefanescu 0 siblings, 1 reply; 8+ messages in thread From: Conor Dooley @ 2024-10-02 15:02 UTC (permalink / raw) To: Andrei Stefanescu Cc: Dong Aisheng, Fabio Estevam, Shawn Guo, Jacky Bai, Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ghennadi Procopciuc, Chester Lin, Matthias Brugger, Sascha Hauer, Pengutronix Kernel Team, linux-gpio, devicetree, linux-kernel, linux-arm-kernel, imx, NXP S32 Linux Team, Christophe Lizzi, Alberto Ruiz, Enric Balletbo [-- Attachment #1: Type: text/plain, Size: 1535 bytes --] On Wed, Oct 02, 2024 at 04:59:19PM +0300, Andrei Stefanescu wrote: > The SIUL2 hardware module is also integrated into the S32G3 SoC. Add > another compatible for it. > > Signed-off-by: Andrei Stefanescu <andrei.stefanescu@oss.nxp.com> I'm not convinced that the representation here is correct for the GPIO on these devices. See: https://lore.kernel.org/all/20240926143122.1385658-3-andrei.stefanescu@oss.nxp.com/ Since GPIO and pinctrl share the same regions, that lack of conviction extends to the pinctrl. I don't think adding another compatible here is right, when I am already of the opinion that the binding is wrong for the existing one. > --- > .../bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 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..cff766c2f03b 100644 > --- a/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml > +++ b/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml > @@ -25,8 +25,12 @@ description: | > > properties: > compatible: > - enum: > - - nxp,s32g2-siul2-pinctrl > + oneOf: > + - enum: > + - nxp,s32g2-siul2-pinctrl > + - items: > + - const: nxp,s32g3-siul2-pinctrl > + - const: nxp,s32g2-siul2-pinctrl > > reg: > description: | > -- > 2.45.2 > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 2/3] dt-bindings: pinctrl: add S32G3 compatible for the SIUL2 driver 2024-10-02 15:02 ` Conor Dooley @ 2024-10-02 15:25 ` Andrei Stefanescu 0 siblings, 0 replies; 8+ messages in thread From: Andrei Stefanescu @ 2024-10-02 15:25 UTC (permalink / raw) To: Conor Dooley Cc: Dong Aisheng, Fabio Estevam, Shawn Guo, Jacky Bai, Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ghennadi Procopciuc, Chester Lin, Matthias Brugger, Sascha Hauer, Pengutronix Kernel Team, linux-gpio, devicetree, linux-kernel, linux-arm-kernel, imx, NXP S32 Linux Team, Christophe Lizzi, Alberto Ruiz, Enric Balletbo Hi Conor, Thank you for reviewing this! On 02/10/2024 18:02, Conor Dooley wrote: > On Wed, Oct 02, 2024 at 04:59:19PM +0300, Andrei Stefanescu wrote: >> The SIUL2 hardware module is also integrated into the S32G3 SoC. Add >> another compatible for it. >> >> Signed-off-by: Andrei Stefanescu <andrei.stefanescu@oss.nxp.com> > > I'm not convinced that the representation here is correct for the > GPIO on these devices. See: > https://lore.kernel.org/all/20240926143122.1385658-3-andrei.stefanescu@oss.nxp.com/ > Since GPIO and pinctrl share the same regions, that lack of conviction > extends to the pinctrl. I don't think adding another compatible here is > right, when I am already of the opinion that the binding is wrong for > the existing one. I will convert the SIUL2 GPIO driver from my other patch series(the one you mentioned) and merge it with the existing SIUL2 pinctrl driver. Therefore, the unified pinctrl&GPIO will use the existing pinctrl compatible. I also considered the syscon&simple-mfd approach but it is harder to implement because: - the memory regions for the two SIUL2 modules are not next to each other and cannot be grouped together - some registers in SIUL2 are 32bit wide and some are 16bit wide The combined GPIO&pinctrl driver will have 4 memory resources: - SIUL2_0 32 bit registers (used for pinmux&pinconf) - SIUL2_0 16 bit registers (used for setting/getting the GPIO output/input value) - SIUL2_1 32 bit registers (same as SIUL2_0 + interrupt related registers) - SIUL2_1 16 bit registers (same as SIUL2_0) Would that be ok? Best regards, Andrei > >> --- >> .../bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml | 8 ++++++-- >> 1 file changed, 6 insertions(+), 2 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..cff766c2f03b 100644 >> --- a/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml >> +++ b/Documentation/devicetree/bindings/pinctrl/nxp,s32g2-siul2-pinctrl.yaml >> @@ -25,8 +25,12 @@ description: | >> >> properties: >> compatible: >> - enum: >> - - nxp,s32g2-siul2-pinctrl >> + oneOf: >> + - enum: >> + - nxp,s32g2-siul2-pinctrl >> + - items: >> + - const: nxp,s32g3-siul2-pinctrl >> + - const: nxp,s32g2-siul2-pinctrl >> >> reg: >> description: | >> -- >> 2.45.2 >> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2 3/3] arm64: dts: S32G3: add S32G3 compatible for the pinctrl node 2024-10-02 13:59 [PATCH v2 0/3] pinctrl: s32: add missing pins and an S32G3 compatible Andrei Stefanescu 2024-10-02 13:59 ` [PATCH v2 1/3] pinctrl: s32: add missing pins definitions Andrei Stefanescu 2024-10-02 13:59 ` [PATCH v2 2/3] dt-bindings: pinctrl: add S32G3 compatible for the SIUL2 driver Andrei Stefanescu @ 2024-10-02 13:59 ` Andrei Stefanescu 2 siblings, 0 replies; 8+ messages in thread From: Andrei Stefanescu @ 2024-10-02 13:59 UTC (permalink / raw) To: Dong Aisheng, Fabio Estevam, Shawn Guo, Jacky Bai, Linus Walleij, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Ghennadi Procopciuc, Chester Lin, Matthias Brugger, Sascha Hauer Cc: Pengutronix Kernel Team, linux-gpio, devicetree, linux-kernel, linux-arm-kernel, imx, NXP S32 Linux Team, Christophe Lizzi, Alberto Ruiz, Enric Balletbo, Andrei Stefanescu Add the newly introduced S32G3 compatible for the pinctrl node. Currently, it will fall back to the S32G2 compatible. Reviewed-by: Matthias Brugger <mbrugger@suse.com> Signed-off-by: Andrei Stefanescu <andrei.stefanescu@oss.nxp.com> --- arch/arm64/boot/dts/freescale/s32g3.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/freescale/s32g3.dtsi b/arch/arm64/boot/dts/freescale/s32g3.dtsi index b4226a9143c8..f6aafe44c9d7 100644 --- a/arch/arm64/boot/dts/freescale/s32g3.dtsi +++ b/arch/arm64/boot/dts/freescale/s32g3.dtsi @@ -172,7 +172,8 @@ soc@0 { ranges = <0 0 0 0x80000000>; pinctrl: pinctrl@4009c240 { - compatible = "nxp,s32g2-siul2-pinctrl"; + compatible = "nxp,s32g3-siul2-pinctrl", + "nxp,s32g2-siul2-pinctrl"; /* MSCR0-MSCR101 registers on siul2_0 */ reg = <0x4009c240 0x198>, /* MSCR112-MSCR122 registers on siul2_1 */ -- 2.45.2 ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-10-09 16:17 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-10-02 13:59 [PATCH v2 0/3] pinctrl: s32: add missing pins and an S32G3 compatible Andrei Stefanescu 2024-10-02 13:59 ` [PATCH v2 1/3] pinctrl: s32: add missing pins definitions Andrei Stefanescu 2024-10-08 13:25 ` Andrei Stefanescu 2024-10-09 16:17 ` Linus Walleij 2024-10-02 13:59 ` [PATCH v2 2/3] dt-bindings: pinctrl: add S32G3 compatible for the SIUL2 driver Andrei Stefanescu 2024-10-02 15:02 ` Conor Dooley 2024-10-02 15:25 ` Andrei Stefanescu 2024-10-02 13:59 ` [PATCH v2 3/3] arm64: dts: S32G3: add S32G3 compatible for the pinctrl node Andrei Stefanescu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).