Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig NVMEM
3 bool "NVMEM Support"
4 imply NVMEM_LAYOUTS
5 help
6 Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
7
8 This framework is designed to provide a generic interface to NVMEM
9 from both the Linux Kernel and the userspace.
10
11 If unsure, say no.
12
13if NVMEM
14
15config NVMEM_SYSFS
16 bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
17 depends on SYSFS
18 default y
19 help
20 Say Y here to add a sysfs interface for NVMEM.
21
22 This interface is mostly used by userspace applications to
23 read/write directly into nvmem.
24
25# Layouts
26
27source "drivers/nvmem/layouts/Kconfig"
28
29# Devices
30
31config NVMEM_APPLE_EFUSES
32 tristate "Apple eFuse support"
33 depends on ARCH_APPLE || COMPILE_TEST
34 default ARCH_APPLE
35 help
36 Say y here to enable support for reading eFuses on Apple SoCs
37 such as the M1. These are e.g. used to store factory programmed
38 calibration data required for the PCIe or the USB-C PHY.
39
40 This driver can also be built as a module. If so, the module will
41 be called nvmem-apple-efuses.
42
43config NVMEM_APPLE_SPMI
44 tristate "Apple SPMI NVMEM"
45 depends on ARCH_APPLE || COMPILE_TEST
46 depends on SPMI
47 select REGMAP_SPMI
48 help
49 Say y here to build a driver to expose NVMEM cells for a set of power
50 and RTC-related settings on a SPMI-attached PMIC present on Apple
51 devices, such as Apple Silicon Macs.
52
53 This driver can also be built as a module. If so, the module
54 will be called apple-nvmem-spmi.
55
56config NVMEM_BCM_OCOTP
57 tristate "Broadcom On-Chip OTP Controller support"
58 depends on ARCH_BCM_IPROC || COMPILE_TEST
59 depends on HAS_IOMEM
60 default ARCH_BCM_IPROC
61 help
62 Say y here to enable read/write access to the Broadcom OTP
63 controller.
64
65 This driver can also be built as a module. If so, the module
66 will be called nvmem-bcm-ocotp.
67
68config NVMEM_BRCM_NVRAM
69 tristate "Broadcom's NVRAM support"
70 depends on ARCH_BCM_5301X || COMPILE_TEST
71 depends on HAS_IOMEM
72 select GENERIC_NET_UTILS
73 help
74 This driver provides support for Broadcom's NVRAM that can be accessed
75 using I/O mapping.
76
77config NVMEM_IMX_IIM
78 tristate "i.MX IC Identification Module support"
79 depends on ARCH_MXC || COMPILE_TEST
80 help
81 This is a driver for the IC Identification Module (IIM) available on
82 i.MX SoCs, providing access to 4 Kbits of programmable
83 eFuses.
84
85 This driver can also be built as a module. If so, the module
86 will be called nvmem-imx-iim.
87
88config NVMEM_IMX_OCOTP
89 tristate "i.MX 6/7/8 On-Chip OTP Controller support"
90 depends on ARCH_MXC || COMPILE_TEST
91 depends on HAS_IOMEM
92 help
93 This is a driver for the On-Chip OTP Controller (OCOTP) available on
94 i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
95 eFuses.
96
97 This driver can also be built as a module. If so, the module
98 will be called nvmem-imx-ocotp.
99
100config NVMEM_IMX_OCOTP_ELE
101 tristate "i.MX On-Chip OTP Controller support"
102 depends on ARCH_MXC || COMPILE_TEST
103 depends on HAS_IOMEM
104 depends on OF
105 help
106 This is a driver for the On-Chip OTP Controller (OCOTP)
107 available on i.MX SoCs which has ELE.
108
109config NVMEM_IMX_OCOTP_SCU
110 tristate "i.MX8 SCU On-Chip OTP Controller support"
111 depends on IMX_SCU
112 depends on HAVE_ARM_SMCCC
113 help
114 This is a driver for the SCU On-Chip OTP Controller (OCOTP)
115 available on i.MX8 SoCs.
116
117config NVMEM_JZ4780_EFUSE
118 tristate "JZ4780 EFUSE Memory Support"
119 depends on MACH_INGENIC || COMPILE_TEST
120 depends on HAS_IOMEM
121 depends on OF
122 select REGMAP_MMIO
123 help
124 Say Y here to include support for JZ4780 efuse memory found on
125 all JZ4780 SoC based devices.
126 To compile this driver as a module, choose M here: the module
127 will be called nvmem_jz4780_efuse.
128
129config NVMEM_LAN9662_OTPC
130 tristate "Microchip LAN9662 OTP controller support"
131 depends on SOC_LAN966 || COMPILE_TEST
132 depends on HAS_IOMEM
133 help
134 This driver enables the OTP controller available on Microchip LAN9662
135 SoCs. It controls the access to the OTP memory connected to it.
136
137config NVMEM_LAYERSCAPE_SFP
138 tristate "Layerscape SFP (Security Fuse Processor) support"
139 depends on ARCH_LAYERSCAPE || COMPILE_TEST
140 depends on HAS_IOMEM
141 select REGMAP_MMIO
142 help
143 This driver provides support to read the eFuses on Freescale
144 Layerscape SoC's. For example, the vendor provides a per part
145 unique ID there.
146
147 This driver can also be built as a module. If so, the module
148 will be called layerscape-sfp.
149
150config NVMEM_LPC18XX_EEPROM
151 tristate "NXP LPC18XX EEPROM Memory Support"
152 depends on ARCH_LPC18XX || COMPILE_TEST
153 depends on HAS_IOMEM
154 help
155 Say Y here to include support for NXP LPC18xx EEPROM memory found in
156 NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
157 To compile this driver as a module, choose M here: the module
158 will be called nvmem_lpc18xx_eeprom.
159
160config NVMEM_LPC18XX_OTP
161 tristate "NXP LPC18XX OTP Memory Support"
162 depends on ARCH_LPC18XX || COMPILE_TEST
163 depends on HAS_IOMEM
164 help
165 Say Y here to include support for NXP LPC18xx OTP memory found on
166 all LPC18xx and LPC43xx devices.
167 To compile this driver as a module, choose M here: the module
168 will be called nvmem_lpc18xx_otp.
169
170config NVMEM_MAX77759
171 tristate "Maxim Integrated MAX77759 NVMEM Support"
172 depends on MFD_MAX77759
173 default MFD_MAX77759
174 help
175 Say Y here to include support for the user-accessible storage found
176 in Maxim Integrated MAX77759 PMICs. This IC provides space for 30
177 bytes of storage.
178
179 This driver can also be built as a module. If so, the module
180 will be called nvmem-max77759.
181
182config NVMEM_MESON_EFUSE
183 tristate "Amlogic Meson GX eFuse Support"
184 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
185 help
186 This is a driver to retrieve specific values from the eFuse found on
187 the Amlogic Meson GX SoCs.
188
189 This driver can also be built as a module. If so, the module
190 will be called nvmem_meson_efuse.
191
192config NVMEM_MESON_MX_EFUSE
193 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
194 depends on ARCH_MESON || COMPILE_TEST
195 help
196 This is a driver to retrieve specific values from the eFuse found on
197 the Amlogic Meson6, Meson8 and Meson8b SoCs.
198
199 This driver can also be built as a module. If so, the module
200 will be called nvmem_meson_mx_efuse.
201
202config NVMEM_MICROCHIP_OTPC
203 tristate "Microchip OTPC support"
204 depends on ARCH_AT91 || COMPILE_TEST
205 help
206 This driver enable the OTP controller available on Microchip SAMA7G5
207 SoCs. It controls the access to the OTP memory connected to it.
208
209config NVMEM_MTK_EFUSE
210 tristate "Mediatek SoCs EFUSE support"
211 depends on ARCH_MEDIATEK || COMPILE_TEST
212 depends on HAS_IOMEM
213 help
214 This is a driver to access hardware related data like sensor
215 calibration, HDMI impedance etc.
216
217 This driver can also be built as a module. If so, the module
218 will be called efuse-mtk.
219
220config NVMEM_MXS_OCOTP
221 tristate "Freescale MXS On-Chip OTP Memory Support"
222 depends on ARCH_MXS || COMPILE_TEST
223 depends on HAS_IOMEM
224 help
225 If you say Y here, you will get readonly access to the
226 One Time Programmable memory pages that are stored
227 on the Freescale i.MX23/i.MX28 processor.
228
229 This driver can also be built as a module. If so, the module
230 will be called nvmem-mxs-ocotp.
231
232config NVMEM_NINTENDO_OTP
233 tristate "Nintendo Wii and Wii U OTP Support"
234 depends on WII || COMPILE_TEST
235 help
236 This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
237
238 This memory contains common and per-console keys, signatures and
239 related data required to access peripherals.
240
241 This driver can also be built as a module. If so, the module
242 will be called nvmem-nintendo-otp.
243
244config NVMEM_QCOM_QFPROM
245 tristate "QCOM QFPROM Support"
246 depends on ARCH_QCOM || COMPILE_TEST
247 depends on HAS_IOMEM
248 help
249 Say y here to enable QFPROM support. The QFPROM provides access
250 functions for QFPROM data to rest of the drivers via nvmem interface.
251
252 This driver can also be built as a module. If so, the module
253 will be called nvmem_qfprom.
254
255config NVMEM_QCOM_SEC_QFPROM
256 tristate "QCOM SECURE QFPROM Support"
257 depends on ARCH_QCOM || COMPILE_TEST
258 depends on HAS_IOMEM
259 depends on OF
260 select QCOM_SCM
261 help
262 Say y here to enable secure QFPROM support. The secure QFPROM provides access
263 functions for QFPROM data to rest of the drivers via nvmem interface.
264
265 This driver can also be built as a module. If so, the module will be called
266 nvmem_sec_qfprom.
267
268config NVMEM_RAVE_SP_EEPROM
269 tristate "Rave SP EEPROM Support"
270 depends on RAVE_SP_CORE
271 help
272 Say y here to enable Rave SP EEPROM support.
273
274config NVMEM_RCAR_EFUSE
275 tristate "Renesas R-Car Gen4 E-FUSE support"
276 depends on (ARCH_RENESAS && ARM64) || COMPILE_TEST
277 depends on NVMEM
278 help
279 Enable support for reading the fuses in the E-FUSE or OTP
280 non-volatile memory block on Renesas R-Car Gen4 SoCs.
281
282 This driver can also be built as a module. If so, the module
283 will be called nvmem-rcar-efuse.
284
285config NVMEM_RMEM
286 tristate "Reserved Memory Based Driver Support"
287 depends on HAS_IOMEM
288 select CRC32
289 help
290 This driver maps reserved memory into an nvmem device. It might be
291 useful to expose information left by firmware in memory.
292
293 This driver can also be built as a module. If so, the module
294 will be called nvmem-rmem.
295
296config NVMEM_ROCKCHIP_EFUSE
297 tristate "Rockchip eFuse Support"
298 depends on ARCH_ROCKCHIP || COMPILE_TEST
299 depends on HAS_IOMEM
300 help
301 This is a simple driver to dump specified values of Rockchip SoC
302 from eFuse, such as cpu-leakage.
303
304 This driver can also be built as a module. If so, the module
305 will be called nvmem_rockchip_efuse.
306
307config NVMEM_ROCKCHIP_OTP
308 tristate "Rockchip OTP controller support"
309 depends on ARCH_ROCKCHIP || COMPILE_TEST
310 depends on HAS_IOMEM
311 help
312 This is a simple driver to dump specified values of Rockchip SoC
313 from OTP, such as cpu-leakage.
314
315 This driver can also be built as a module. If so, the module
316 will be called nvmem_rockchip_otp.
317
318config NVMEM_SC27XX_EFUSE
319 tristate "Spreadtrum SC27XX eFuse Support"
320 depends on MFD_SC27XX_PMIC || COMPILE_TEST
321 depends on HAS_IOMEM
322 help
323 This is a simple driver to dump specified values of Spreadtrum
324 SC27XX PMICs from eFuse.
325
326 This driver can also be built as a module. If so, the module
327 will be called nvmem-sc27xx-efuse.
328
329config NVMEM_SNVS_LPGPR
330 tristate "Support for Low Power General Purpose Register"
331 depends on ARCH_MXC || COMPILE_TEST
332 help
333 This is a driver for Low Power General Purpose Register (LPGPR) available on
334 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
335
336 This driver can also be built as a module. If so, the module
337 will be called nvmem-snvs-lpgpr.
338
339config NVMEM_SPMI_SDAM
340 tristate "SPMI SDAM Support"
341 depends on SPMI
342 help
343 This driver supports the Shared Direct Access Memory Module on
344 Qualcomm Technologies, Inc. PMICs. It provides the clients
345 an interface to read/write to the SDAM module's shared memory.
346
347config NVMEM_SPRD_EFUSE
348 tristate "Spreadtrum SoC eFuse Support"
349 depends on ARCH_SPRD || COMPILE_TEST
350 depends on HAS_IOMEM
351 help
352 This is a simple driver to dump specified values of Spreadtrum
353 SoCs from eFuse.
354
355 This driver can also be built as a module. If so, the module
356 will be called nvmem-sprd-efuse.
357
358config NVMEM_STM32_BSEC_OPTEE_TA
359 def_bool NVMEM_STM32_ROMEM && OPTEE
360 help
361 Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE
362 trusted application STM32MP BSEC.
363
364 This library is a used by stm32-romem driver or included in the module
365 called nvmem-stm32-romem.
366
367config NVMEM_STM32_ROMEM
368 tristate "STMicroelectronics STM32 factory-programmed memory support"
369 depends on ARCH_STM32 || COMPILE_TEST
370 depends on OPTEE || !OPTEE
371 help
372 Say y here to enable read-only access for STMicroelectronics STM32
373 factory-programmed memory area.
374
375 This driver can also be built as a module. If so, the module
376 will be called nvmem-stm32-romem.
377
378config NVMEM_SUNPLUS_OCOTP
379 tristate "Sunplus SoC OTP support"
380 depends on SOC_SP7021 || COMPILE_TEST
381 depends on HAS_IOMEM
382 help
383 This is a driver for the On-chip OTP controller (OCOTP) available
384 on Sunplus SoCs. It provides access to 128 bytes of one-time
385 programmable eFuse.
386
387 This driver can also be built as a module. If so, the module
388 will be called nvmem-sunplus-ocotp.
389
390config NVMEM_SUNXI_SID
391 tristate "Allwinner SoCs SID support"
392 depends on ARCH_SUNXI
393 help
394 This is a driver for the 'security ID' available on various Allwinner
395 devices.
396
397 This driver can also be built as a module. If so, the module
398 will be called nvmem_sunxi_sid.
399
400config NVMEM_U_BOOT_ENV
401 tristate "U-Boot environment variables support"
402 depends on OF && MTD
403 select NVMEM_LAYOUT_U_BOOT_ENV
404 help
405 U-Boot stores its setup as environment variables. This driver adds
406 support for verifying & exporting such data. It also exposes variables
407 as NVMEM cells so they can be referenced by other drivers.
408
409 Currently this drivers works only with env variables on top of MTD.
410
411 If compiled as module it will be called nvmem_u-boot-env.
412
413config NVMEM_UNIPHIER_EFUSE
414 tristate "UniPhier SoCs eFuse support"
415 depends on ARCH_UNIPHIER || COMPILE_TEST
416 depends on HAS_IOMEM
417 help
418 This is a simple driver to dump specified values of UniPhier SoC
419 from eFuse.
420
421 This driver can also be built as a module. If so, the module
422 will be called nvmem-uniphier-efuse.
423
424config NVMEM_VF610_OCOTP
425 tristate "VF610 SoC OCOTP support"
426 depends on SOC_VF610 || COMPILE_TEST
427 depends on HAS_IOMEM
428 help
429 This is a driver for the 'OCOTP' peripheral available on Vybrid
430 devices like VF5xx and VF6xx.
431
432 This driver can also be build as a module. If so, the module will
433 be called nvmem-vf610-ocotp.
434
435config NVMEM_ZYNQMP
436 tristate "Xilinx ZYNQMP SoC nvmem firmware support"
437 depends on ARCH_ZYNQMP
438 help
439 This is a driver to access hardware related data like
440 soc revision, IDCODE... etc by using the firmware
441 interface.
442
443 If sure, say yes. If unsure, say no.
444
445config NVMEM_QORIQ_EFUSE
446 tristate "NXP QorIQ eFuse support"
447 depends on PPC_85xx || COMPILE_TEST
448 depends on HAS_IOMEM
449 help
450 This driver provides read support for the eFuses (SFP) on NXP QorIQ
451 series SoC's. This includes secure boot settings, the globally unique
452 NXP ID 'FUIDR' and the OEM unique ID 'OUIDR'.
453
454 This driver can also be built as a module. If so, the module
455 will be called nvmem_qoriq_efuse.
456
457endif