Linux GPIO subsystem development
 help / color / mirror / Atom feed
From: claudiu beznea <claudiu.beznea@tuxon.dev>
To: Biju Das <biju.das.jz@bp.renesas.com>,
	Claudiu Beznea <claudiu.beznea+renesas@tuxon.dev>,
	"geert+renesas@glider.be" <geert+renesas@glider.be>,
	"linusw@kernel.org" <linusw@kernel.org>,
	"robh@kernel.org" <robh@kernel.org>,
	"krzk+dt@kernel.org" <krzk+dt@kernel.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"magnus.damm" <magnus.damm@gmail.com>
Cc: "linux-renesas-soc@vger.kernel.org"
	<linux-renesas-soc@vger.kernel.org>,
	"linux-gpio@vger.kernel.org" <linux-gpio@vger.kernel.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>,
	wsa+renesas <wsa+renesas@sang-engineering.com>
Subject: Re: [PATCH v4 4/5] pinctrl: renesas: rzg2l: Add RZ/G3S support for selecting the I3C power source
Date: Mon, 13 Jul 2026 17:56:56 +0300	[thread overview]
Message-ID: <7cd113ad-3673-4f2b-97f3-aa1df4259a53@tuxon.dev> (raw)
In-Reply-To: <TY3PR01MB113468890DC8B12E1E43A54A986FA2@TY3PR01MB11346.jpnprd01.prod.outlook.com>



On 7/13/26 16:56, Biju Das wrote:
> Hi Claudiu,
> 
>> -----Original Message-----
>> From: claudiu beznea <claudiu.beznea@tuxon.dev>
>> Sent: 13 July 2026 14:19
>> Subject: Re: [PATCH v4 4/5] pinctrl: renesas: rzg2l: Add RZ/G3S support for selecting the I3C power
>> source
>>
>> Hi, Biju,
>>
>> On 7/12/26 17:55, Biju Das wrote:
>>> Hi Claudiu,
>>>
>>> Thanks for the patch.
>>>
>>>> -----Original Message-----
>>>> From: Claudiu Beznea <claudiu.beznea+renesas@tuxon.dev>
>>>> Sent: 10 July 2026 12:37
>>>> Subject: [PATCH v4 4/5] pinctrl: renesas: rzg2l: Add RZ/G3S support
>>>> for selecting the I3C power source
>>>>
>>>> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>>>>
>>>> The Renesas RZ/G3S I3C pins can be powered at either 1.8V or 1.2V.
>>>> The pin controller provides a register to select between these two options.
>>>> Update the Renesas RZ/G2L pin controller driver to allow selecting the I3C power source on RZ/G3S SoC.
>>>>
>>>> Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
>>>> Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
>>>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>>>> ---
>>>>
>>>> Changes in v4:
>>>> - none
>>>>
>>>> Changes in v3:
>>>> - collected tags
>>>>
>>>> Changes in v2:
>>>> - none
>>>>
>>>>    drivers/pinctrl/renesas/pinctrl-rzg2l.c | 73 +++++++++++++++++++++++--
>>>>    1 file changed, 68 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/drivers/pinctrl/renesas/pinctrl-rzg2l.c
>>>> b/drivers/pinctrl/renesas/pinctrl-rzg2l.c
>>>> index b52a85066f63..9a0706fea220 100644
>>>> --- a/drivers/pinctrl/renesas/pinctrl-rzg2l.c
>>>> +++ b/drivers/pinctrl/renesas/pinctrl-rzg2l.c
>>>> @@ -69,6 +69,7 @@
>>>>    #define PIN_CFG_PVDD1833_OTH_AWO_POC	BIT(19) /* known on RZ/G3L only */
>>>>    #define PIN_CFG_PVDD1833_OTH_ISO_POC	BIT(20) /* known on RZ/G3L only */
>>>>    #define PIN_CFG_WDTOVF_N_POC		BIT(21) /* known on RZ/G3L only */
>>>> +#define PIN_CFG_IO_VMC_I3C		BIT(22)
>>>>
>>>>    #define RZG2L_SINGLE_PIN		BIT_ULL(63)	/* Dedicated pin */
>>>>    #define RZG2L_VARIABLE_CFG		BIT_ULL(62)	/* Variable cfg for port pins */
>>>> @@ -186,6 +187,9 @@
>>>>    #define PVDD_3300		0	/* I/O domain voltage >= 3.3V */
>>>>    #define PVDD_MASK		0x3
>>>>
>>>> +#define PVDD_I3C_1200		1	/* I3C I/O domain voltage 1.2V */
>>>> +#define PVDD_I3C_1800		0	/* I3C I/O domain voltage 1.8V */
>>>> +
>>>>    #define PWPR_B0WI		BIT(7)	/* Bit Write Disable */
>>>>    #define PWPR_PFCWE		BIT(6)	/* PFC Register Write Enable */
>>>>    #define PWPR_REGWE_A		BIT(6)	/* PFC and PMC Register Write Enable on RZ/V2H(P) */
>>>> @@ -257,6 +261,7 @@ static const struct pin_config_item renesas_rzv2h_conf_items[] = {
>>>>     * @oen: OEN register offset
>>>>     * @qspi: QSPI register offset
>>>>     * @other_poc: OTHER_POC register offset
>>>> + * @i3c_set: I3C_SET register offset
>>>>     */
>>>>    struct rzg2l_register_offsets {
>>>>    	u16 pwpr;
>>>> @@ -265,6 +270,7 @@ struct rzg2l_register_offsets {
>>>>    	u16 oen;
>>>>    	u16 qspi;
>>>>    	u16 other_poc;
>>>> +	u16 i3c_set;
>>>
>>>
>>>>    };
>>>>
>>>>    /**
>>>> @@ -272,6 +278,7 @@ struct rzg2l_register_offsets {
>>>>     * @other_poc_pvdd1833_oth_awo_poc: PVDD1833_OTH_AWO_POC mask
>>>>     * @other_poc_pvdd1833_oth_iso_poc: PVDD1833_OTH_ISO_POC mask
>>>>     * @other_poc_wdtovf_n_poc: WDTOVF_N_POC mask
>>>> + * @i3c_set_poc: I3C_SET_POC mask
>>>>     */
>>>>    struct rzg2l_register_masks {
>>>>    	union {
>>>> @@ -281,6 +288,11 @@ struct rzg2l_register_masks {
>>>>    			u8 other_poc_pvdd1833_oth_iso_poc;
>>>>    			u8 other_poc_wdtovf_n_poc;
>>>>    		};
>>>> +
>>>> +		/* RZ/G3S masks */
>>>> +		struct {
>>>> +			u8 i3c_set_poc;
>>>
>>> How this POC is different from Ethernet, SDHI and XSPI POC?
>>
>> Different bit mask and offset for I3C SET_POC compared with ETH, SDHI, XSPI.
> 
> RZ/G3L has i3c_set_poc, which has same bitmask as other_poc_wdtovf_n_poc.
> Maybe create register specific masks??
> 
> struct other_poc and struct i3c_set instead of union. So that both RZ/G3L and
> RZ/G3S can share the same struct for i3c.

When RZ/G3L I3C POC support will be added the i3c_set_poc member of struct 
rzg2l_register_masks could be moved as common member:

Current code base allows for this extension. You can have:

struct rzg2l_register_masks {
+       /* Common masks. */
+       u8 i3c_set_poc;
         union {
                 /* RZ/G3L masks */
                 struct {
                         u8 other_poc_pvdd1833_oth_awo_poc;
                         u8 other_poc_pvdd1833_oth_iso_poc;
                         u8 other_poc_wdtovf_n_poc;
                 };
-               /* RZ/G3S masks */
-               struct {
-                       u8 i3c_set_poc;
-               };
         };
};

// ...

const struct rzg2l_hwcfg rzg3l_hwcfg = {
         // ...

         .masks = {
                 .other_poc_pvdd1833_oth_awo_poc = BIT(0),
                 .other_poc_pvdd1833_oth_iso_poc = BIT(1),
                 .other_poc_wdtovf_n_poc = BIT(2),
+               .i3c_set_poc = BIT(x),
         },

         // ...
};

The rest of configuration and initialization code remains the same.

Thank you,
Claudiu

  reply	other threads:[~2026-07-13 14:57 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-10 11:36 [PATCH v4 0/5] pinctrl: renesas: rzg2l: Add support for RZ/G3S I3C Claudiu Beznea
2026-07-10 11:36 ` [PATCH v4 1/5] pinctrl: renesas: rzg2l: Generalize the power source code Claudiu Beznea
2026-07-10 11:36 ` [PATCH v4 2/5] pinctrl: renesas: rzg2l: Drop defines present in struct rzg2l_hwcfg Claudiu Beznea
2026-07-10 11:36 ` [PATCH v4 3/5] dt-bindings: pinctrl: renesas,rzg2l-pinctrl: Document the missing I3C power source option Claudiu Beznea
2026-07-10 11:36 ` [PATCH v4 4/5] pinctrl: renesas: rzg2l: Add RZ/G3S support for selecting the I3C power source Claudiu Beznea
2026-07-12 14:55   ` Biju Das
2026-07-13 13:19     ` claudiu beznea
2026-07-13 13:56       ` Biju Das
2026-07-13 14:56         ` claudiu beznea [this message]
2026-07-13 15:15           ` Biju Das
2026-07-10 11:36 ` [PATCH v4 5/5] arm64: dts: renesas: rzg3s-smarc-som: Enable I3C Claudiu Beznea
2026-07-12  9:18 ` [PATCH v4 0/5] pinctrl: renesas: rzg2l: Add support for RZ/G3S I3C Wolfram Sang

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=7cd113ad-3673-4f2b-97f3-aa1df4259a53@tuxon.dev \
    --to=claudiu.beznea@tuxon.dev \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=claudiu.beznea+renesas@tuxon.dev \
    --cc=claudiu.beznea.uj@bp.renesas.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=krzk+dt@kernel.org \
    --cc=linusw@kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=robh@kernel.org \
    --cc=wsa+renesas@sang-engineering.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