[PATCH v4 1/8] soc: renesas: rz-sysc: Add syscon/regmap support
Claudiu Beznea
claudiu.beznea at tuxon.dev
Fri Aug 8 05:11:01 PDT 2025
Hi, Geert,
On 08.08.2025 14:36, Geert Uytterhoeven wrote:
> Hi Claudiu,
>
> On Fri, 8 Aug 2025 at 12:32, Claudiu Beznea <claudiu.beznea at tuxon.dev> wrote:
>> On 08.08.2025 12:29, Geert Uytterhoeven wrote:
>>> On Fri, 8 Aug 2025 at 08:18, Claudiu <claudiu.beznea at tuxon.dev> wrote:
>>>> From: John Madieu <john.madieu.xa at bp.renesas.com>
>>>>
>>>> The RZ/G3E system controller has various registers that control or report
>>>> some properties specific to individual IPs. The regmap is registered as a
>>>> syscon device to allow these IP drivers to access the registers through the
>>>> regmap API.
>>>>
>>>> As other RZ SoCs might have custom read/write callbacks or max-offsets,
>>>> register a custom regmap configuration.
>>>>
>>>> Signed-off-by: John Madieu <john.madieu.xa at bp.renesas.com>
>>>> [claudiu.beznea:
>>>> - do not check the match->data validity in rz_sysc_probe() as it is
>>>> always valid
>>>> - dinamically allocate regmap_cfg]
>>>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj at bp.renesas.com>
>>>> ---
>>>>
>>>> Changes in v4:
>>>> - adjusted the patch description by dropping "add" from
>>>> "add register a custom regmap configuration"
>>>> - updated the list of changes from Claudiu Beznea
>>>> - dynamically allocate the regmap_config as proposed at [2]
>>>> - this patch is needed for proper function of USB (as proposed in this
>>>> series) that being the reason it is introduced here, as well
>>>>
>>>> [2] https://lore.kernel.org/all/CAMuHMdVyf3Xtpw=LWHrnD2CVQX4xYm=FBHvY_dx9OesHDz5zNg@mail.gmail.com/
>>>
>>>> --- a/drivers/soc/renesas/rz-sysc.c
>>>> +++ b/drivers/soc/renesas/rz-sysc.c
>>> =
>>>> @@ -117,7 +125,26 @@ static int rz_sysc_probe(struct platform_device *pdev)
>>>> return PTR_ERR(sysc->base);
>>>>
>>>> sysc->dev = dev;
>>>> - return rz_sysc_soc_init(sysc, match);
>>>> + ret = rz_sysc_soc_init(sysc, match);
>>>> + if (ret)
>>>> + return ret;
>>>> +
>>>> + regmap_cfg = devm_kzalloc(dev, sizeof(*regmap_cfg), GFP_KERNEL);
>>>> + if (!regmap_cfg)
>>>> + return -ENOMEM;
>>>
>>> Is there any specific reason you decided to allocate regmap_cfg
>>> separately, instead of embedding it into struct rz_sysc?
>>
>> Sorry, I missed to mention.
>>
>> I chose to have it like this as the regmap_cfg is not used anywhere else
>> (through rz_sysc) except in probe.
>
> OK. Upon closer look, devm_regmap_init_mmio() does not save the
> regmap_cfg pointer for later use, so it can be allocated using kzalloc()
> instead, and freed immediately after calling devm_regmap_init_mmio().
You're right, I forgot this. I'll update it this way.
Thank you,
Claudiu
>
> Gr{oetje,eeting}s,
>
> Geert
>
More information about the linux-phy
mailing list