]>
Commit | Line | Data |
---|---|---|
7519b981 SL |
1 | From b8f5e8cbf65b50f337ca6e496dfa1321eed5cd97 Mon Sep 17 00:00:00 2001 |
2 | From: Sasha Levin <sashal@kernel.org> | |
3 | Date: Fri, 20 Oct 2023 11:55:41 +0100 | |
4 | Subject: nvmem: add explicit config option to read old syntax fixed OF cells | |
5 | MIME-Version: 1.0 | |
6 | Content-Type: text/plain; charset=UTF-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ||
9 | From: Rafał Miłecki <rafal@milecki.pl> | |
10 | ||
11 | [ Upstream commit 2cc3b37f5b6df8189d55d0e812d9658ce256dfec ] | |
12 | ||
13 | Binding for fixed NVMEM cells defined directly as NVMEM device subnodes | |
14 | has been deprecated. It has been replaced by the "fixed-layout" NVMEM | |
15 | layout binding. | |
16 | ||
17 | New syntax is meant to be clearer and should help avoiding imprecise | |
18 | bindings. | |
19 | ||
20 | NVMEM subsystem already supports the new binding. It should be a good | |
21 | idea to limit support for old syntax to existing drivers that actually | |
22 | support & use it (we can't break backward compatibility!). That way we | |
23 | additionally encourage new bindings & drivers to ignore deprecated | |
24 | binding. | |
25 | ||
26 | It wasn't clear (to me) if rtc and w1 code actually uses old syntax | |
27 | fixed cells. I enabled them to don't risk any breakage. | |
28 | ||
29 | Signed-off-by: Rafał Miłecki <rafal@milecki.pl> | |
30 | [for meson-{efuse,mx-efuse}.c] | |
31 | Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> | |
32 | [for mtk-efuse.c, nvmem/core.c, nvmem-provider.h] | |
33 | Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> | |
34 | [MT8192, MT8195 Chromebooks] | |
35 | Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> | |
36 | [for microchip-otpc.c] | |
37 | Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com> | |
38 | [SAMA7G5-EK] | |
39 | Tested-by: Claudiu Beznea <claudiu.beznea@microchip.com> | |
40 | Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com> | |
41 | Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | |
42 | Link: https://lore.kernel.org/r/20231020105545.216052-3-srinivas.kandagatla@linaro.org | |
43 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
44 | Stable-dep-of: d2d73a6dd173 ("mtd: limit OTP NVMEM cell parse to non-NAND devices") | |
45 | Signed-off-by: Sasha Levin <sashal@kernel.org> | |
46 | --- | |
47 | drivers/mtd/mtdcore.c | 2 ++ | |
48 | drivers/nvmem/apple-efuses.c | 1 + | |
49 | drivers/nvmem/core.c | 8 +++++--- | |
50 | drivers/nvmem/imx-ocotp-scu.c | 1 + | |
51 | drivers/nvmem/imx-ocotp.c | 1 + | |
52 | drivers/nvmem/meson-efuse.c | 1 + | |
53 | drivers/nvmem/meson-mx-efuse.c | 1 + | |
54 | drivers/nvmem/microchip-otpc.c | 1 + | |
55 | drivers/nvmem/mtk-efuse.c | 1 + | |
56 | drivers/nvmem/qcom-spmi-sdam.c | 1 + | |
57 | drivers/nvmem/qfprom.c | 1 + | |
58 | drivers/nvmem/rave-sp-eeprom.c | 1 + | |
59 | drivers/nvmem/rockchip-efuse.c | 1 + | |
60 | drivers/nvmem/sc27xx-efuse.c | 1 + | |
61 | drivers/nvmem/sec-qfprom.c | 1 + | |
62 | drivers/nvmem/sprd-efuse.c | 1 + | |
63 | drivers/nvmem/stm32-romem.c | 1 + | |
64 | drivers/nvmem/sunplus-ocotp.c | 1 + | |
65 | drivers/nvmem/sunxi_sid.c | 1 + | |
66 | drivers/nvmem/uniphier-efuse.c | 1 + | |
67 | drivers/nvmem/zynqmp_nvmem.c | 1 + | |
68 | drivers/rtc/nvmem.c | 1 + | |
69 | drivers/w1/slaves/w1_ds250x.c | 1 + | |
70 | include/linux/nvmem-provider.h | 2 ++ | |
71 | 24 files changed, 30 insertions(+), 3 deletions(-) | |
72 | ||
73 | diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c | |
74 | index 9bd661be3ae93..fbf60d1364f0d 100644 | |
75 | --- a/drivers/mtd/mtdcore.c | |
76 | +++ b/drivers/mtd/mtdcore.c | |
77 | @@ -552,6 +552,7 @@ static int mtd_nvmem_add(struct mtd_info *mtd) | |
78 | config.dev = &mtd->dev; | |
79 | config.name = dev_name(&mtd->dev); | |
80 | config.owner = THIS_MODULE; | |
81 | + config.add_legacy_fixed_of_cells = of_device_is_compatible(node, "nvmem-cells"); | |
82 | config.reg_read = mtd_nvmem_reg_read; | |
83 | config.size = mtd->size; | |
84 | config.word_size = 1; | |
85 | @@ -898,6 +899,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd, | |
86 | config.name = compatible; | |
87 | config.id = NVMEM_DEVID_AUTO; | |
88 | config.owner = THIS_MODULE; | |
89 | + config.add_legacy_fixed_of_cells = true; | |
90 | config.type = NVMEM_TYPE_OTP; | |
91 | config.root_only = true; | |
92 | config.ignore_wp = true; | |
93 | diff --git a/drivers/nvmem/apple-efuses.c b/drivers/nvmem/apple-efuses.c | |
94 | index 9b7c871021043..d3d49d22338b3 100644 | |
95 | --- a/drivers/nvmem/apple-efuses.c | |
96 | +++ b/drivers/nvmem/apple-efuses.c | |
97 | @@ -36,6 +36,7 @@ static int apple_efuses_probe(struct platform_device *pdev) | |
98 | struct resource *res; | |
99 | struct nvmem_config config = { | |
100 | .dev = &pdev->dev, | |
101 | + .add_legacy_fixed_of_cells = true, | |
102 | .read_only = true, | |
103 | .reg_read = apple_efuses_read, | |
104 | .stride = sizeof(u32), | |
105 | diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c | |
106 | index 5b3955ad40534..e26f79a132bb5 100644 | |
107 | --- a/drivers/nvmem/core.c | |
108 | +++ b/drivers/nvmem/core.c | |
109 | @@ -1003,9 +1003,11 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config) | |
110 | if (rval) | |
111 | goto err_remove_cells; | |
112 | ||
113 | - rval = nvmem_add_cells_from_legacy_of(nvmem); | |
114 | - if (rval) | |
115 | - goto err_remove_cells; | |
116 | + if (config->add_legacy_fixed_of_cells) { | |
117 | + rval = nvmem_add_cells_from_legacy_of(nvmem); | |
118 | + if (rval) | |
119 | + goto err_remove_cells; | |
120 | + } | |
121 | ||
122 | rval = nvmem_add_cells_from_fixed_layout(nvmem); | |
123 | if (rval) | |
124 | diff --git a/drivers/nvmem/imx-ocotp-scu.c b/drivers/nvmem/imx-ocotp-scu.c | |
125 | index c38d9c1c3f486..517d83e11af2c 100644 | |
126 | --- a/drivers/nvmem/imx-ocotp-scu.c | |
127 | +++ b/drivers/nvmem/imx-ocotp-scu.c | |
128 | @@ -220,6 +220,7 @@ static int imx_scu_ocotp_write(void *context, unsigned int offset, | |
129 | ||
130 | static struct nvmem_config imx_scu_ocotp_nvmem_config = { | |
131 | .name = "imx-scu-ocotp", | |
132 | + .add_legacy_fixed_of_cells = true, | |
133 | .read_only = false, | |
134 | .word_size = 4, | |
135 | .stride = 1, | |
136 | diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c | |
137 | index e8b6f194925df..f1e202efaa497 100644 | |
138 | --- a/drivers/nvmem/imx-ocotp.c | |
139 | +++ b/drivers/nvmem/imx-ocotp.c | |
140 | @@ -615,6 +615,7 @@ static int imx_ocotp_probe(struct platform_device *pdev) | |
141 | return PTR_ERR(priv->clk); | |
142 | ||
143 | priv->params = of_device_get_match_data(&pdev->dev); | |
144 | + imx_ocotp_nvmem_config.add_legacy_fixed_of_cells = true; | |
145 | imx_ocotp_nvmem_config.size = 4 * priv->params->nregs; | |
146 | imx_ocotp_nvmem_config.dev = dev; | |
147 | imx_ocotp_nvmem_config.priv = priv; | |
148 | diff --git a/drivers/nvmem/meson-efuse.c b/drivers/nvmem/meson-efuse.c | |
149 | index ba2714bef8d0e..33678d0af2c24 100644 | |
150 | --- a/drivers/nvmem/meson-efuse.c | |
151 | +++ b/drivers/nvmem/meson-efuse.c | |
152 | @@ -74,6 +74,7 @@ static int meson_efuse_probe(struct platform_device *pdev) | |
153 | ||
154 | econfig->dev = dev; | |
155 | econfig->name = dev_name(dev); | |
156 | + econfig->add_legacy_fixed_of_cells = true; | |
157 | econfig->stride = 1; | |
158 | econfig->word_size = 1; | |
159 | econfig->reg_read = meson_efuse_read; | |
160 | diff --git a/drivers/nvmem/meson-mx-efuse.c b/drivers/nvmem/meson-mx-efuse.c | |
161 | index d6d7aeda31f92..3ff04d5ca8f85 100644 | |
162 | --- a/drivers/nvmem/meson-mx-efuse.c | |
163 | +++ b/drivers/nvmem/meson-mx-efuse.c | |
164 | @@ -210,6 +210,7 @@ static int meson_mx_efuse_probe(struct platform_device *pdev) | |
165 | efuse->config.owner = THIS_MODULE; | |
166 | efuse->config.dev = &pdev->dev; | |
167 | efuse->config.priv = efuse; | |
168 | + efuse->config.add_legacy_fixed_of_cells = true; | |
169 | efuse->config.stride = drvdata->word_size; | |
170 | efuse->config.word_size = drvdata->word_size; | |
171 | efuse->config.size = SZ_512; | |
172 | diff --git a/drivers/nvmem/microchip-otpc.c b/drivers/nvmem/microchip-otpc.c | |
173 | index 436e0dc4f3375..7cf81738a3e0a 100644 | |
174 | --- a/drivers/nvmem/microchip-otpc.c | |
175 | +++ b/drivers/nvmem/microchip-otpc.c | |
176 | @@ -261,6 +261,7 @@ static int mchp_otpc_probe(struct platform_device *pdev) | |
177 | return ret; | |
178 | ||
179 | mchp_nvmem_config.dev = otpc->dev; | |
180 | + mchp_nvmem_config.add_legacy_fixed_of_cells = true; | |
181 | mchp_nvmem_config.size = size; | |
182 | mchp_nvmem_config.priv = otpc; | |
183 | nvmem = devm_nvmem_register(&pdev->dev, &mchp_nvmem_config); | |
184 | diff --git a/drivers/nvmem/mtk-efuse.c b/drivers/nvmem/mtk-efuse.c | |
185 | index b36cd0dcc8c7f..87c94686cfd21 100644 | |
186 | --- a/drivers/nvmem/mtk-efuse.c | |
187 | +++ b/drivers/nvmem/mtk-efuse.c | |
188 | @@ -83,6 +83,7 @@ static int mtk_efuse_probe(struct platform_device *pdev) | |
189 | return PTR_ERR(priv->base); | |
190 | ||
191 | pdata = device_get_match_data(dev); | |
192 | + econfig.add_legacy_fixed_of_cells = true; | |
193 | econfig.stride = 1; | |
194 | econfig.word_size = 1; | |
195 | econfig.reg_read = mtk_reg_read; | |
196 | diff --git a/drivers/nvmem/qcom-spmi-sdam.c b/drivers/nvmem/qcom-spmi-sdam.c | |
197 | index 70f2d4f2efbf1..9aa8f42faa4c9 100644 | |
198 | --- a/drivers/nvmem/qcom-spmi-sdam.c | |
199 | +++ b/drivers/nvmem/qcom-spmi-sdam.c | |
200 | @@ -142,6 +142,7 @@ static int sdam_probe(struct platform_device *pdev) | |
201 | sdam->sdam_config.name = "spmi_sdam"; | |
202 | sdam->sdam_config.id = NVMEM_DEVID_AUTO; | |
203 | sdam->sdam_config.owner = THIS_MODULE; | |
204 | + sdam->sdam_config.add_legacy_fixed_of_cells = true; | |
205 | sdam->sdam_config.stride = 1; | |
206 | sdam->sdam_config.word_size = 1; | |
207 | sdam->sdam_config.reg_read = sdam_read; | |
208 | diff --git a/drivers/nvmem/qfprom.c b/drivers/nvmem/qfprom.c | |
209 | index 14814cba2dd65..6c554040c6e67 100644 | |
210 | --- a/drivers/nvmem/qfprom.c | |
211 | +++ b/drivers/nvmem/qfprom.c | |
212 | @@ -357,6 +357,7 @@ static int qfprom_probe(struct platform_device *pdev) | |
213 | { | |
214 | struct nvmem_config econfig = { | |
215 | .name = "qfprom", | |
216 | + .add_legacy_fixed_of_cells = true, | |
217 | .stride = 1, | |
218 | .word_size = 1, | |
219 | .id = NVMEM_DEVID_AUTO, | |
220 | diff --git a/drivers/nvmem/rave-sp-eeprom.c b/drivers/nvmem/rave-sp-eeprom.c | |
221 | index df6a1c594b781..9ecf3873cbb76 100644 | |
222 | --- a/drivers/nvmem/rave-sp-eeprom.c | |
223 | +++ b/drivers/nvmem/rave-sp-eeprom.c | |
224 | @@ -328,6 +328,7 @@ static int rave_sp_eeprom_probe(struct platform_device *pdev) | |
225 | of_property_read_string(np, "zii,eeprom-name", &config.name); | |
226 | config.priv = eeprom; | |
227 | config.dev = dev; | |
228 | + config.add_legacy_fixed_of_cells = true; | |
229 | config.size = size; | |
230 | config.reg_read = rave_sp_eeprom_reg_read; | |
231 | config.reg_write = rave_sp_eeprom_reg_write; | |
232 | diff --git a/drivers/nvmem/rockchip-efuse.c b/drivers/nvmem/rockchip-efuse.c | |
233 | index 4004c5bece423..2b40978ddb18c 100644 | |
234 | --- a/drivers/nvmem/rockchip-efuse.c | |
235 | +++ b/drivers/nvmem/rockchip-efuse.c | |
236 | @@ -205,6 +205,7 @@ static int rockchip_rk3399_efuse_read(void *context, unsigned int offset, | |
237 | ||
238 | static struct nvmem_config econfig = { | |
239 | .name = "rockchip-efuse", | |
240 | + .add_legacy_fixed_of_cells = true, | |
241 | .stride = 1, | |
242 | .word_size = 1, | |
243 | .read_only = true, | |
244 | diff --git a/drivers/nvmem/sc27xx-efuse.c b/drivers/nvmem/sc27xx-efuse.c | |
245 | index 2210da40dfbd7..bff27011f4ff2 100644 | |
246 | --- a/drivers/nvmem/sc27xx-efuse.c | |
247 | +++ b/drivers/nvmem/sc27xx-efuse.c | |
248 | @@ -247,6 +247,7 @@ static int sc27xx_efuse_probe(struct platform_device *pdev) | |
249 | econfig.reg_read = sc27xx_efuse_read; | |
250 | econfig.priv = efuse; | |
251 | econfig.dev = &pdev->dev; | |
252 | + econfig.add_legacy_fixed_of_cells = true; | |
253 | nvmem = devm_nvmem_register(&pdev->dev, &econfig); | |
254 | if (IS_ERR(nvmem)) { | |
255 | dev_err(&pdev->dev, "failed to register nvmem config\n"); | |
256 | diff --git a/drivers/nvmem/sec-qfprom.c b/drivers/nvmem/sec-qfprom.c | |
257 | index e48c2dc0c44b3..19799b3fe00aa 100644 | |
258 | --- a/drivers/nvmem/sec-qfprom.c | |
259 | +++ b/drivers/nvmem/sec-qfprom.c | |
260 | @@ -47,6 +47,7 @@ static int sec_qfprom_probe(struct platform_device *pdev) | |
261 | { | |
262 | struct nvmem_config econfig = { | |
263 | .name = "sec-qfprom", | |
264 | + .add_legacy_fixed_of_cells = true, | |
265 | .stride = 1, | |
266 | .word_size = 1, | |
267 | .id = NVMEM_DEVID_AUTO, | |
268 | diff --git a/drivers/nvmem/sprd-efuse.c b/drivers/nvmem/sprd-efuse.c | |
269 | index 7e6e31db4baae..bb3105f3291fc 100644 | |
270 | --- a/drivers/nvmem/sprd-efuse.c | |
271 | +++ b/drivers/nvmem/sprd-efuse.c | |
272 | @@ -408,6 +408,7 @@ static int sprd_efuse_probe(struct platform_device *pdev) | |
273 | econfig.read_only = false; | |
274 | econfig.name = "sprd-efuse"; | |
275 | econfig.size = efuse->data->blk_nums * SPRD_EFUSE_BLOCK_WIDTH; | |
276 | + econfig.add_legacy_fixed_of_cells = true; | |
277 | econfig.reg_read = sprd_efuse_read; | |
278 | econfig.reg_write = sprd_efuse_write; | |
279 | econfig.priv = efuse; | |
280 | diff --git a/drivers/nvmem/stm32-romem.c b/drivers/nvmem/stm32-romem.c | |
281 | index 0f84044bd1ade..1541c20709d25 100644 | |
282 | --- a/drivers/nvmem/stm32-romem.c | |
283 | +++ b/drivers/nvmem/stm32-romem.c | |
284 | @@ -207,6 +207,7 @@ static int stm32_romem_probe(struct platform_device *pdev) | |
285 | priv->cfg.priv = priv; | |
286 | priv->cfg.owner = THIS_MODULE; | |
287 | priv->cfg.type = NVMEM_TYPE_OTP; | |
288 | + priv->cfg.add_legacy_fixed_of_cells = true; | |
289 | ||
290 | priv->lower = 0; | |
291 | ||
292 | diff --git a/drivers/nvmem/sunplus-ocotp.c b/drivers/nvmem/sunplus-ocotp.c | |
293 | index f3a18aa0a6c73..38f5d9df39cd5 100644 | |
294 | --- a/drivers/nvmem/sunplus-ocotp.c | |
295 | +++ b/drivers/nvmem/sunplus-ocotp.c | |
296 | @@ -145,6 +145,7 @@ static int sp_ocotp_read(void *priv, unsigned int offset, void *value, size_t by | |
297 | ||
298 | static struct nvmem_config sp_ocotp_nvmem_config = { | |
299 | .name = "sp-ocotp", | |
300 | + .add_legacy_fixed_of_cells = true, | |
301 | .read_only = true, | |
302 | .word_size = 1, | |
303 | .size = QAC628_OTP_SIZE, | |
304 | diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c | |
305 | index 5d364d85347fc..ba14a76208ab6 100644 | |
306 | --- a/drivers/nvmem/sunxi_sid.c | |
307 | +++ b/drivers/nvmem/sunxi_sid.c | |
308 | @@ -153,6 +153,7 @@ static int sunxi_sid_probe(struct platform_device *pdev) | |
309 | nvmem_cfg->dev = dev; | |
310 | nvmem_cfg->name = "sunxi-sid"; | |
311 | nvmem_cfg->type = NVMEM_TYPE_OTP; | |
312 | + nvmem_cfg->add_legacy_fixed_of_cells = true; | |
313 | nvmem_cfg->read_only = true; | |
314 | nvmem_cfg->size = cfg->size; | |
315 | nvmem_cfg->word_size = 1; | |
316 | diff --git a/drivers/nvmem/uniphier-efuse.c b/drivers/nvmem/uniphier-efuse.c | |
317 | index 0a1dbb80537ec..6ad3295d31951 100644 | |
318 | --- a/drivers/nvmem/uniphier-efuse.c | |
319 | +++ b/drivers/nvmem/uniphier-efuse.c | |
320 | @@ -52,6 +52,7 @@ static int uniphier_efuse_probe(struct platform_device *pdev) | |
321 | econfig.size = resource_size(res); | |
322 | econfig.priv = priv; | |
323 | econfig.dev = dev; | |
324 | + econfig.add_legacy_fixed_of_cells = true; | |
325 | nvmem = devm_nvmem_register(dev, &econfig); | |
326 | ||
327 | return PTR_ERR_OR_ZERO(nvmem); | |
328 | diff --git a/drivers/nvmem/zynqmp_nvmem.c b/drivers/nvmem/zynqmp_nvmem.c | |
329 | index f49bb9a26d053..7f15aa89a9d09 100644 | |
330 | --- a/drivers/nvmem/zynqmp_nvmem.c | |
331 | +++ b/drivers/nvmem/zynqmp_nvmem.c | |
332 | @@ -58,6 +58,7 @@ static int zynqmp_nvmem_probe(struct platform_device *pdev) | |
333 | ||
334 | priv->dev = dev; | |
335 | econfig.dev = dev; | |
336 | + econfig.add_legacy_fixed_of_cells = true; | |
337 | econfig.reg_read = zynqmp_nvmem_read; | |
338 | econfig.priv = priv; | |
339 | ||
340 | diff --git a/drivers/rtc/nvmem.c b/drivers/rtc/nvmem.c | |
341 | index 07ede21cee347..37df7e80525b4 100644 | |
342 | --- a/drivers/rtc/nvmem.c | |
343 | +++ b/drivers/rtc/nvmem.c | |
344 | @@ -21,6 +21,7 @@ int devm_rtc_nvmem_register(struct rtc_device *rtc, | |
345 | ||
346 | nvmem_config->dev = dev; | |
347 | nvmem_config->owner = rtc->owner; | |
348 | + nvmem_config->add_legacy_fixed_of_cells = true; | |
349 | nvmem = devm_nvmem_register(dev, nvmem_config); | |
350 | if (IS_ERR(nvmem)) | |
351 | dev_err(dev, "failed to register nvmem device for RTC\n"); | |
352 | diff --git a/drivers/w1/slaves/w1_ds250x.c b/drivers/w1/slaves/w1_ds250x.c | |
353 | index 7592c7050d1d7..cb426f7dd23d4 100644 | |
354 | --- a/drivers/w1/slaves/w1_ds250x.c | |
355 | +++ b/drivers/w1/slaves/w1_ds250x.c | |
356 | @@ -168,6 +168,7 @@ static int w1_eprom_add_slave(struct w1_slave *sl) | |
357 | struct nvmem_device *nvmem; | |
358 | struct nvmem_config nvmem_cfg = { | |
359 | .dev = &sl->dev, | |
360 | + .add_legacy_fixed_of_cells = true, | |
361 | .reg_read = w1_nvmem_read, | |
362 | .type = NVMEM_TYPE_OTP, | |
363 | .read_only = true, | |
364 | diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h | |
365 | index dae26295e6bed..1b81adebdb8be 100644 | |
366 | --- a/include/linux/nvmem-provider.h | |
367 | +++ b/include/linux/nvmem-provider.h | |
368 | @@ -82,6 +82,7 @@ struct nvmem_cell_info { | |
369 | * @owner: Pointer to exporter module. Used for refcounting. | |
370 | * @cells: Optional array of pre-defined NVMEM cells. | |
371 | * @ncells: Number of elements in cells. | |
372 | + * @add_legacy_fixed_of_cells: Read fixed NVMEM cells from old OF syntax. | |
373 | * @keepout: Optional array of keepout ranges (sorted ascending by start). | |
374 | * @nkeepout: Number of elements in the keepout array. | |
375 | * @type: Type of the nvmem storage | |
376 | @@ -112,6 +113,7 @@ struct nvmem_config { | |
377 | struct module *owner; | |
378 | const struct nvmem_cell_info *cells; | |
379 | int ncells; | |
380 | + bool add_legacy_fixed_of_cells; | |
381 | const struct nvmem_keepout *keepout; | |
382 | unsigned int nkeepout; | |
383 | enum nvmem_type type; | |
384 | -- | |
385 | 2.43.0 | |
386 |