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