Hi Krzysztof, >> +static struct regmap *common_regmap_init(struct platform_device *pdev, >> + struct regmap_config *conf, >> + const char *name) >> +{ >> + struct device *dev = &pdev->dev; >> + struct resource *res; >> + resource_size_t size; >> + void __iomem *base; >> + >> + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, name); >> + if (!res) { >> + dev_err(&pdev->dev, "Failed to get MEM resource: %s\n", name); >> + return ERR_PTR(-EINVAL); >> + } >> + >> + base = devm_ioremap_resource(dev, res); > > There is a wrapper for both calls above, so use it. I am not sure I can change this because I also use the `resource_size` call below in order to initialize the regmap_config. Unfortunately, `devm_platform_ioremap_resource_byname` doesn't also retrieve the resource via a pointer. I saw the `devm_platform_get_and_ioremap_resource` function but that one retrieves the resource based on the index. I would like to keep identifying the resource by its name instead of its index. Would you agree to keep the existing implementation in this case? > >> + if (IS_ERR(base)) >> + return ERR_PTR(-ENOMEM); >> + >> + size = resource_size(res); >> + conf->val_bits = conf->reg_stride * 8; >> + conf->max_register = size - conf->reg_stride; >> + conf->name = name; >> + conf->use_raw_spinlock = true; >> + >> + if (conf->cache_type != REGCACHE_NONE) >> + conf->num_reg_defaults_raw = size / conf->reg_stride; >> + >> + return devm_regmap_init_mmio(dev, base, conf); Best regards, Andrei