RE: [PATCH v4 3/9] reset: rzg2l-usbphy-ctrl: Add RZ/G3L support
Biju Das <[email protected]> Thu, 6 Aug 2026 09:45:33 +0000
| Newsgroups | org.kernel.vger.linux-renesas-soc,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <TY3PR01MB1134699B7AD17B7EC0464FB8086D22@TY3PR01MB11346.jpnprd01.prod.outlook.com> |
Hi Philipp, > -----Original Message----- > From: Philipp Zabel <[email protected]> > Sent: 06 August 2026 08:56 > Subject: Re: [PATCH v4 3/9] reset: rzg2l-usbphy-ctrl: Add RZ/G3L support > > On Mi, 2026-08-05 at 10:26 +0000, Biju Das wrote: > > Hi Philipp Zabel, > > > > > -----Original Message----- > > > From: Biju <[email protected]> > > > Sent: 09 July 2026 09:31 > > > Subject: [PATCH v4 3/9] reset: rzg2l-usbphy-ctrl: Add RZ/G3L support > > > > > > From: Biju Das <[email protected]> > > > > > > Add the renesas,r9a08g046-usbphy-ctrl compatible string to the OF > > > match table for the RZ/G3L (r9a08g046) SoC, using a dedicated rzg3l_info struct with pwrrdy set, > similar to RZ/G3S. > > > > > > The RZ/G3L SoC has 2 OTG controllers compared to one on RZ/G3S, so > > > it uses a separate rzg3l-vbus- regulator driver to handle the > > > additional VBUSEN control for port 2. The regulator_driver_name > > > field is used as the platform device name passed to platform_device_alloc(), and must exactly match > the name the corresponding regulator driver registers via its id_table for platform bus matching to > succeed. > > > > > > Signed-off-by: Biju Das <[email protected]> > > > --- > > > v3->v4: > > > * Updated the commit description. > > > * Migrated to id_table match using driver_name and reduced the length > > > < 24. > > > v2->v3: > > > * No change. > > > v1->v2: > > > * No change. > > > --- > > > drivers/reset/reset-rzg2l-usbphy-ctrl.c | 14 ++++++++++++-- > > > 1 file changed, 12 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/reset/reset-rzg2l-usbphy-ctrl.c > > > b/drivers/reset/reset-rzg2l-usbphy-ctrl.c > > > index 84e745e49240..0803195080bd 100644 > > > --- a/drivers/reset/reset-rzg2l-usbphy-ctrl.c > > > +++ b/drivers/reset/reset-rzg2l-usbphy-ctrl.c > > > @@ -42,6 +42,7 @@ struct rzg2l_usbphy_ctrl_priv { }; > > > > > > struct rzg2l_usbphy_ctrl_info { > > > + const char *regulator_driver_name; > > > bool pwrrdy; > > > }; > > > > > > @@ -110,15 +111,24 @@ static void rzg2l_usbphy_ctrl_init(struct rzg2l_usbphy_ctrl_priv *priv) > > > spin_unlock_irqrestore(&priv->lock, flags); } > > > > > > -static const struct rzg2l_usbphy_ctrl_info rzg2l_info = {}; > > > +static const struct rzg2l_usbphy_ctrl_info rzg2l_info = { > > > + .regulator_driver_name = "rzg2l-vbus-regulator", }; > > > > > > static const struct rzg2l_usbphy_ctrl_info rzg3s_info = { > > > + .regulator_driver_name = "rzg2l-vbus-regulator", > > > + .pwrrdy = true, > > > +}; > > > + > > > +static const struct rzg2l_usbphy_ctrl_info rzg3l_info = { > > > + .regulator_driver_name = "rzg3l-vbus-regulator", > > > .pwrrdy = true, > > > }; > > > > > > static const struct of_device_id rzg2l_usbphy_ctrl_match_table[] = { > > > { .compatible = "renesas,rzg2l-usbphy-ctrl", .data = &rzg2l_info }, > > > { .compatible = "renesas,r9a08g045-usbphy-ctrl", .data = > > > &rzg3s_info }, > > > + { .compatible = "renesas,r9a08g046-usbphy-ctrl", .data = > > > +&rzg3l_info }, > > > { /* Sentinel */ } > > > }; > > > MODULE_DEVICE_TABLE(of, rzg2l_usbphy_ctrl_match_table); @@ -245,7 > > > +255,7 @@ static int rzg2l_usbphy_ctrl_probe(struct platform_device *pdev) > > > if (error) > > > goto err_pm_runtime_put; > > > > > > - vdev = platform_device_alloc("rzg2l-usb-vbus-regulator", pdev->id); > > > + vdev = platform_device_alloc(info->regulator_driver_name, > > > +pdev->id); > > > > Please let me know, should I send a patch to increase the length from > > 24->32 [1] So that there won't be any backward compatibility issues. > > > > [1] > > https://elixir.bootlin.com/linux/v7.1.2/source/include/linux/mod_devic > > etable.h#L604 > > I'm not sure. > > PLATFORM_NAME_SIZE was last extended in commit 655862865c97 > ("mod_devicetable: Enlarge the maximum platform_device_id name length"), but only very conservatively. > Whether it is relevant that platform_device_id fits into 32-byte cache line size of some architectures, I > can't say. The _NAME_SIZEs of other buses (aux, i2c, spi, ...) already vary between 20 and 40 chars. Thanks for the pointer. > > You could either try that, or you could prepend a single patch that does the "rzg2l-usb-vbus-regulator" - > > "rzg2l-vbus-regulator" rename in both regulator and reset drivers and that could be merged into both > trees. After reading commit message in 655862865c97 [1], the size is restricted to 32 bytes. So, I will prepare a single patch that does the "rzg2l-usb-vbus-regulator" ->"rzg2l-vbus-regulator" rename in both regulator and reset drivers. [1] struct platform_device_id { char name[20]; /* 0 20 */ /* XXX 4 bytes hole, try to pack */ kernel_ulong_t driver_data; /* 24 8 */ /* size: 32, cachelines: 1, members: 2 */ /* sum members: 28, holes: 1, sum holes: 4 */ /* last cacheline: 32 bytes */ }; Cheers, Biju