Message ID | 20240930121601.172216-1-herve.codina@bootlin.com (mailing list archive) |
---|---|
Headers | show |
Series | Add support for the LAN966x PCI device using a DT overlay | expand |
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@bootlin.com/ [1] > Signed-off-by: Herve Codina <herve.codina@bootlin.com> > --- > 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@microchip.com> BR Steen