[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6a65f608-7ca4-44f1-865c-6a1b9891b275@oss.nxp.com>
Date: Fri, 6 Sep 2024 11:43:31 +0300
From: Andrei Stefanescu <andrei.stefanescu@....nxp.com>
To: Krzysztof Kozlowski <krzk@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>, Bartosz Golaszewski
<brgl@...ev.pl>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley
<conor+dt@...nel.org>, Chester Lin <chester62515@...il.com>,
Matthias Brugger <mbrugger@...e.com>,
Ghennadi Procopciuc <Ghennadi.Procopciuc@....com>,
Larisa Grigore <larisa.grigore@....com>
Cc: linux-gpio@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
NXP S32 Linux Team <s32@....com>
Subject: Re: [PATCH 2/3] drivers: gpio: siul2-s32g2: add NXP S32G2/S32G3 SoCs
support
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
Powered by blists - more mailing lists