Re: [PATCH 2/3] drivers: gpio: siul2-s32g2: add NXP S32G2/S32G3 SoCs support

From: Andrei Stefanescu
Date: Fri Sep 06 2024 - 04:43:54 EST


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