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
next prev parent 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