Re: [PATCH v6 2/7] reset: mchp: sparx5: Use the second reg item when cpu-syscon is not present
From: Steen Hegelund
Date: Mon Sep 30 2024 - 09:04:26 EST
Hi Herve,
On Mon, 2024-09-30 at 14:15 +0200, Herve Codina wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you
> know the content is safe
>
> In the LAN966x PCI device use case, syscon cannot be used as syscon
> devices do not support removal [1]. A syscon device is a core
> "system"
> device and not a device available in some addon boards and so, it is
> not
> supposed to be removed.
>
> In order to remove the syscon usage, use a local mapping of a reg
> address range when cpu-syscon is not present.
>
> Link:
> https://lore.kernel.org/all/20240923100741.11277439@xxxxxxxxxxx/ [1]
> Signed-off-by: Herve Codina <herve.codina@xxxxxxxxxxx>
> ---
> drivers/reset/reset-microchip-sparx5.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/reset/reset-microchip-sparx5.c
> b/drivers/reset/reset-microchip-sparx5.c
> index 636e85c388b0..1c095fa41d69 100644
> --- a/drivers/reset/reset-microchip-sparx5.c
> +++ b/drivers/reset/reset-microchip-sparx5.c
> @@ -114,8 +114,22 @@ static int mchp_sparx5_reset_probe(struct
> platform_device *pdev)
> return -ENOMEM;
>
> err = mchp_sparx5_map_syscon(pdev, "cpu-syscon", &ctx-
> >cpu_ctrl);
> - if (err)
> + switch (err) {
> + case 0:
> + break;
> + case -ENODEV:
> + /*
> + * The cpu-syscon device is not available.
> + * Fall back with IO mapping (i.e. mapping from reg
> property).
> + */
> + err = mchp_sparx5_map_io(pdev, 1, &ctx->cpu_ctrl);
> + if (err)
> + return err;
> + break;
> + default:
> return err;
> + }
> +
> err = mchp_sparx5_map_io(pdev, 0, &ctx->gcb_ctrl);
> if (err)
> return err;
> --
> 2.46.1
>
LGTM
Reviewed-by: Steen Hegelund <Steen.Hegelund@xxxxxxxxxxxxx>
BR
Steen