Hi Andy, On Mon, May 09, 2022 at 10:44:42AM +0200, Andy Shevchenko wrote: > On Sun, May 8, 2022 at 8:53 PM Colin Foster > <colin.foster@xxxxxxxxxxxxxxxx> wrote: > > > > There are a few Ocelot chips that can contain SGPIO logic, but can be > > controlled externally. Specifically the VSC7511, 7512, 7513, and 7514. In > > the externally controlled configurations these registers are not > > memory-mapped. > > > > Add support for these non-memory-mapped configurations. > > ... > > > - regs = devm_platform_ioremap_resource(pdev, 0); > > - if (IS_ERR(regs)) > > - return PTR_ERR(regs); > > + regs = devm_platform_get_and_ioremap_resource(pdev, 0, NULL); > > + if (IS_ERR(regs)) { > > + /* > > + * Fall back to using IORESOURCE_REG, which is possible in an > > + * MFD configuration > > + */ > > + res = platform_get_resource(pdev, IORESOURCE_REG, 0); > > + if (!res) { > > + dev_err(dev, "Failed to get resource\n"); > > + return -ENODEV; > > + } > > + > > + priv->regs = ocelot_init_regmap_from_resource(dev, res); > > + } else { > > + priv->regs = devm_regmap_init_mmio(dev, regs, ®map_config); > > + } > > > > - priv->regs = devm_regmap_init_mmio(dev, regs, ®map_config); > > if (IS_ERR(priv->regs)) > > return PTR_ERR(priv->regs); > > This looks like repetition of something you have done in a few > previous patches. Can you avoid code duplication by introducing a > corresponding helper function? That's a good idea. Thanks for the feedback! > > -- > With Best Regards, > Andy Shevchenko