Re: [PATCH v3 1/3] soc: renesas: rz-sysc: Register auxiliary device for PWRRDY power sequencer

Geert Uytterhoeven <[email protected]>
Newsgroups org.kernel.vger.linux-renesas-soc,org.kernel.vger.linux-kernel
Message-ID <CAMuHMdWMiwiDXCDxbZpn1=3w04Jj2NpGjMKoong3wQjAdCfh0A@mail.gmail.com>
On Wed, 12 Aug 2026 at 13:50, Biju <[email protected]> wrote:
> From: Biju Das <[email protected]>
>
> Some RZ SoCs (e.g. RZ/G3L) have a PWRRDY register that is controlled
> through a power sequencer rather than directly by the SYSC driver.
>
> Add a pwrrdy_pwrseq flag to struct rz_sysc_soc_id_init_data to mark
> SoCs with this property, and set it for RZ/G3L. When set,
> rz_sysc_probe() registers a "pwrseq-pwrrdy" auxiliary device so a
> dedicated driver can handle the PWRRDY sequencing.
>
> Signed-off-by: Biju Das <[email protected]>

> --- a/drivers/soc/renesas/rz-sysc.c
> +++ b/drivers/soc/renesas/rz-sysc.c
> @@ -5,6 +5,7 @@
>   * Copyright (C) 2024 Renesas Electronics Corp.
>   */
>
> +#include <linux/auxiliary_bus.h>
>  #include <linux/bitfield.h>
>  #include <linux/cleanup.h>
>  #include <linux/io.h>
> @@ -84,6 +85,22 @@ static int rz_sysc_soc_init(struct rz_sysc *sysc, const struct of_device_id *mat
>         return 0;
>  }
>
> +static int rz_sysc_pwrrdy_pwrseq_init(struct device *dev, struct regmap *regmap,
> +                                     const struct rz_sysc_init_data *data)
> +{
> +       const struct rz_sysc_soc_id_init_data *soc_data = data->soc_id_init_data;
> +       struct auxiliary_device *adev;
> +
> +       if (!soc_data->pwrrdy_pwrseq)
> +               return 0;
> +
> +       adev = devm_auxiliary_device_create(dev, "pwrseq-pwrrdy", regmap);
> +       if (!adev)
> +               return -ENODEV;
> +
> +       return 0;
> +}
> +
>  static const struct of_device_id rz_sysc_match[] = {
>  #ifdef CONFIG_SYSC_R9A08G045
>         { .compatible = "renesas,r9a08g045-sysc", .data = &rzg3s_sysc_init_data },
> @@ -149,6 +166,10 @@ static int rz_sysc_probe(struct platform_device *pdev)
>         if (IS_ERR(regmap))
>                 return PTR_ERR(regmap);
>
> +       ret = rz_sysc_pwrrdy_pwrseq_init(dev, regmap, match->data);
> +       if (ret)
> +               return ret;

I agree with Bartosz.

> +
>         return of_syscon_register_regmap(dev->of_node, regmap);
>  }

The rest LGTM, so
Reviewed-by: Geert Uytterhoeven <[email protected]>

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.