On Mon, Jul 27, 2020 at 06:20:34PM +0200, Paul Cercueil wrote: > The driver only uses the registers up to offset 0x54. Since the EFUSE > registers are in the middle of the NEMC registers, we only request > the registers we will use for now - that way the EFUSE driver can > probe too. > > Tested-by: H. Nikolaus Schaller <h...@goldelico.com> > Signed-off-by: Paul Cercueil <p...@crapouillou.net> > --- > drivers/memory/jz4780-nemc.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/drivers/memory/jz4780-nemc.c b/drivers/memory/jz4780-nemc.c > index b232ed279fc3..647267ea8c63 100644 > --- a/drivers/memory/jz4780-nemc.c > +++ b/drivers/memory/jz4780-nemc.c > @@ -8,6 +8,7 @@ > > #include <linux/clk.h> > #include <linux/init.h> > +#include <linux/io.h> > #include <linux/math64.h> > #include <linux/of.h> > #include <linux/of_address.h> > @@ -288,7 +289,19 @@ static int jz4780_nemc_probe(struct platform_device > *pdev) > nemc->dev = dev; > > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - nemc->base = devm_ioremap_resource(dev, res); > + > + /* > + * The driver only uses the registers up to offset 0x54. Since the EFUSE > + * registers are in the middle of the NEMC registers, we only request > + * the registers we will use for now - that way the EFUSE driver can > + * probe too. > + */ > + if (!devm_request_mem_region(dev, res->start, 0x54, dev_name(dev))) { > + dev_err(dev, "unable to request I/O memory region\n"); > + return -EBUSY; > + } > + > + nemc->base = devm_ioremap(dev, res->start, resource_size(res));
Shouldn't you map only 0x54 size as well? Best regards, Krzysztof