Skip to content

Commit 2cc3b37

Browse files
Rafał Miłeckigregkh
authored andcommitted
nvmem: add explicit config option to read old syntax fixed OF cells
Binding for fixed NVMEM cells defined directly as NVMEM device subnodes has been deprecated. It has been replaced by the "fixed-layout" NVMEM layout binding. New syntax is meant to be clearer and should help avoiding imprecise bindings. NVMEM subsystem already supports the new binding. It should be a good idea to limit support for old syntax to existing drivers that actually support & use it (we can't break backward compatibility!). That way we additionally encourage new bindings & drivers to ignore deprecated binding. It wasn't clear (to me) if rtc and w1 code actually uses old syntax fixed cells. I enabled them to don't risk any breakage. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> [for meson-{efuse,mx-efuse}.c] Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> [for mtk-efuse.c, nvmem/core.c, nvmem-provider.h] Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> [MT8192, MT8195 Chromebooks] Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> [for microchip-otpc.c] Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com> [SAMA7G5-EK] Tested-by: Claudiu Beznea <claudiu.beznea@microchip.com> Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20231020105545.216052-3-srinivas.kandagatla@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 16724d6 commit 2cc3b37

24 files changed

+30
-3
lines changed

drivers/mtd/mtdcore.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,7 @@ static int mtd_nvmem_add(struct mtd_info *mtd)
552552
config.dev = &mtd->dev;
553553
config.name = dev_name(&mtd->dev);
554554
config.owner = THIS_MODULE;
555+
config.add_legacy_fixed_of_cells = of_device_is_compatible(node, "nvmem-cells");
555556
config.reg_read = mtd_nvmem_reg_read;
556557
config.size = mtd->size;
557558
config.word_size = 1;
@@ -898,6 +899,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd,
898899
config.name = compatible;
899900
config.id = NVMEM_DEVID_AUTO;
900901
config.owner = THIS_MODULE;
902+
config.add_legacy_fixed_of_cells = true;
901903
config.type = NVMEM_TYPE_OTP;
902904
config.root_only = true;
903905
config.ignore_wp = true;

drivers/nvmem/apple-efuses.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ static int apple_efuses_probe(struct platform_device *pdev)
3636
struct resource *res;
3737
struct nvmem_config config = {
3838
.dev = &pdev->dev,
39+
.add_legacy_fixed_of_cells = true,
3940
.read_only = true,
4041
.reg_read = apple_efuses_read,
4142
.stride = sizeof(u32),

drivers/nvmem/core.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -997,9 +997,11 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
997997
if (rval)
998998
goto err_remove_cells;
999999

1000-
rval = nvmem_add_cells_from_legacy_of(nvmem);
1001-
if (rval)
1002-
goto err_remove_cells;
1000+
if (config->add_legacy_fixed_of_cells) {
1001+
rval = nvmem_add_cells_from_legacy_of(nvmem);
1002+
if (rval)
1003+
goto err_remove_cells;
1004+
}
10031005

10041006
rval = nvmem_add_cells_from_fixed_layout(nvmem);
10051007
if (rval)

drivers/nvmem/imx-ocotp-scu.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ static int imx_scu_ocotp_write(void *context, unsigned int offset,
220220

221221
static struct nvmem_config imx_scu_ocotp_nvmem_config = {
222222
.name = "imx-scu-ocotp",
223+
.add_legacy_fixed_of_cells = true,
223224
.read_only = false,
224225
.word_size = 4,
225226
.stride = 1,

drivers/nvmem/imx-ocotp.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -615,6 +615,7 @@ static int imx_ocotp_probe(struct platform_device *pdev)
615615
return PTR_ERR(priv->clk);
616616

617617
priv->params = of_device_get_match_data(&pdev->dev);
618+
imx_ocotp_nvmem_config.add_legacy_fixed_of_cells = true;
618619
imx_ocotp_nvmem_config.size = 4 * priv->params->nregs;
619620
imx_ocotp_nvmem_config.dev = dev;
620621
imx_ocotp_nvmem_config.priv = priv;

drivers/nvmem/meson-efuse.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ static int meson_efuse_probe(struct platform_device *pdev)
9393

9494
econfig->dev = dev;
9595
econfig->name = dev_name(dev);
96+
econfig->add_legacy_fixed_of_cells = true;
9697
econfig->stride = 1;
9798
econfig->word_size = 1;
9899
econfig->reg_read = meson_efuse_read;

drivers/nvmem/meson-mx-efuse.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ static int meson_mx_efuse_probe(struct platform_device *pdev)
210210
efuse->config.owner = THIS_MODULE;
211211
efuse->config.dev = &pdev->dev;
212212
efuse->config.priv = efuse;
213+
efuse->config.add_legacy_fixed_of_cells = true;
213214
efuse->config.stride = drvdata->word_size;
214215
efuse->config.word_size = drvdata->word_size;
215216
efuse->config.size = SZ_512;

drivers/nvmem/microchip-otpc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ static int mchp_otpc_probe(struct platform_device *pdev)
261261
return ret;
262262

263263
mchp_nvmem_config.dev = otpc->dev;
264+
mchp_nvmem_config.add_legacy_fixed_of_cells = true;
264265
mchp_nvmem_config.size = size;
265266
mchp_nvmem_config.priv = otpc;
266267
nvmem = devm_nvmem_register(&pdev->dev, &mchp_nvmem_config);

drivers/nvmem/mtk-efuse.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ static int mtk_efuse_probe(struct platform_device *pdev)
8383
return PTR_ERR(priv->base);
8484

8585
pdata = device_get_match_data(dev);
86+
econfig.add_legacy_fixed_of_cells = true;
8687
econfig.stride = 1;
8788
econfig.word_size = 1;
8889
econfig.reg_read = mtk_reg_read;

drivers/nvmem/qcom-spmi-sdam.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ static int sdam_probe(struct platform_device *pdev)
142142
sdam->sdam_config.name = "spmi_sdam";
143143
sdam->sdam_config.id = NVMEM_DEVID_AUTO;
144144
sdam->sdam_config.owner = THIS_MODULE;
145+
sdam->sdam_config.add_legacy_fixed_of_cells = true;
145146
sdam->sdam_config.stride = 1;
146147
sdam->sdam_config.word_size = 1;
147148
sdam->sdam_config.reg_read = sdam_read;

0 commit comments

Comments
 (0)