1 # SPDX-License-Identifier: GPL-2.0-only
5 Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
7 This framework is designed to provide a generic interface to NVMEM
8 from both the Linux Kernel and the userspace.
15 bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
19 Say Y here to add a sysfs interface for NVMEM.
21 This interface is mostly used by userspace applications to
22 read/write directly into nvmem.
26 source "drivers/nvmem/layouts/Kconfig"
30 config NVMEM_APPLE_EFUSES
31 tristate "Apple eFuse support"
32 depends on ARCH_APPLE || COMPILE_TEST
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.
39 This driver can also be built as a module. If so, the module will
40 be called nvmem-apple-efuses.
42 config NVMEM_BCM_OCOTP
43 tristate "Broadcom On-Chip OTP Controller support"
44 depends on ARCH_BCM_IPROC || COMPILE_TEST
46 default ARCH_BCM_IPROC
48 Say y here to enable read/write access to the Broadcom OTP
51 This driver can also be built as a module. If so, the module
52 will be called nvmem-bcm-ocotp.
54 config NVMEM_BRCM_NVRAM
55 tristate "Broadcom's NVRAM support"
56 depends on ARCH_BCM_5301X || COMPILE_TEST
58 select GENERIC_NET_UTILS
60 This driver provides support for Broadcom's NVRAM that can be accessed
64 tristate "i.MX IC Identification Module support"
65 depends on ARCH_MXC || COMPILE_TEST
67 This is a driver for the IC Identification Module (IIM) available on
68 i.MX SoCs, providing access to 4 Kbits of programmable
71 This driver can also be built as a module. If so, the module
72 will be called nvmem-imx-iim.
74 config NVMEM_IMX_OCOTP
75 tristate "i.MX 6/7/8 On-Chip OTP Controller support"
76 depends on ARCH_MXC || COMPILE_TEST
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
83 This driver can also be built as a module. If so, the module
84 will be called nvmem-imx-ocotp.
86 config NVMEM_IMX_OCOTP_ELE
87 tristate "i.MX On-Chip OTP Controller support"
88 depends on ARCH_MXC || COMPILE_TEST
92 This is a driver for the On-Chip OTP Controller (OCOTP)
93 available on i.MX SoCs which has ELE.
95 config NVMEM_IMX_OCOTP_SCU
96 tristate "i.MX8 SCU On-Chip OTP Controller support"
98 depends on HAVE_ARM_SMCCC
100 This is a driver for the SCU On-Chip OTP Controller (OCOTP)
101 available on i.MX8 SoCs.
103 config NVMEM_JZ4780_EFUSE
104 tristate "JZ4780 EFUSE Memory Support"
105 depends on MACH_INGENIC || COMPILE_TEST
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.
115 config NVMEM_LAN9662_OTPC
116 tristate "Microchip LAN9662 OTP controller support"
117 depends on SOC_LAN966 || COMPILE_TEST
120 This driver enables the OTP controller available on Microchip LAN9662
121 SoCs. It controls the access to the OTP memory connected to it.
123 config NVMEM_LAYERSCAPE_SFP
124 tristate "Layerscape SFP (Security Fuse Processor) support"
125 depends on ARCH_LAYERSCAPE || COMPILE_TEST
129 This driver provides support to read the eFuses on Freescale
130 Layerscape SoC's. For example, the vendor provides a per part
133 This driver can also be built as a module. If so, the module
134 will be called layerscape-sfp.
136 config NVMEM_LPC18XX_EEPROM
137 tristate "NXP LPC18XX EEPROM Memory Support"
138 depends on ARCH_LPC18XX || COMPILE_TEST
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.
146 config NVMEM_LPC18XX_OTP
147 tristate "NXP LPC18XX OTP Memory Support"
148 depends on ARCH_LPC18XX || COMPILE_TEST
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.
156 config NVMEM_MESON_EFUSE
157 tristate "Amlogic Meson GX eFuse Support"
158 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
160 This is a driver to retrieve specific values from the eFuse found on
161 the Amlogic Meson GX SoCs.
163 This driver can also be built as a module. If so, the module
164 will be called nvmem_meson_efuse.
166 config NVMEM_MESON_MX_EFUSE
167 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
168 depends on ARCH_MESON || COMPILE_TEST
170 This is a driver to retrieve specific values from the eFuse found on
171 the Amlogic Meson6, Meson8 and Meson8b SoCs.
173 This driver can also be built as a module. If so, the module
174 will be called nvmem_meson_mx_efuse.
176 config NVMEM_MICROCHIP_OTPC
177 tristate "Microchip OTPC support"
178 depends on ARCH_AT91 || COMPILE_TEST
180 This driver enable the OTP controller available on Microchip SAMA7G5
181 SoCs. It controls the access to the OTP memory connected to it.
183 config NVMEM_MTK_EFUSE
184 tristate "Mediatek SoCs EFUSE support"
185 depends on ARCH_MEDIATEK || COMPILE_TEST
188 This is a driver to access hardware related data like sensor
189 calibration, HDMI impedance etc.
191 This driver can also be built as a module. If so, the module
192 will be called efuse-mtk.
194 config NVMEM_MXS_OCOTP
195 tristate "Freescale MXS On-Chip OTP Memory Support"
196 depends on ARCH_MXS || COMPILE_TEST
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.
203 This driver can also be built as a module. If so, the module
204 will be called nvmem-mxs-ocotp.
206 config NVMEM_NINTENDO_OTP
207 tristate "Nintendo Wii and Wii U OTP Support"
208 depends on WII || COMPILE_TEST
210 This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
212 This memory contains common and per-console keys, signatures and
213 related data required to access peripherals.
215 This driver can also be built as a module. If so, the module
216 will be called nvmem-nintendo-otp.
218 config NVMEM_QCOM_QFPROM
219 tristate "QCOM QFPROM Support"
220 depends on ARCH_QCOM || COMPILE_TEST
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.
226 This driver can also be built as a module. If so, the module
227 will be called nvmem_qfprom.
229 config NVMEM_QCOM_SEC_QFPROM
230 tristate "QCOM SECURE QFPROM Support"
231 depends on ARCH_QCOM || COMPILE_TEST
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.
239 This driver can also be built as a module. If so, the module will be called
242 config NVMEM_RAVE_SP_EEPROM
243 tristate "Rave SP EEPROM Support"
244 depends on RAVE_SP_CORE
246 Say y here to enable Rave SP EEPROM support.
249 tristate "Reserved Memory Based Driver Support"
252 This driver maps reserved memory into an nvmem device. It might be
253 useful to expose information left by firmware in memory.
255 This driver can also be built as a module. If so, the module
256 will be called nvmem-rmem.
258 config NVMEM_ROCKCHIP_EFUSE
259 tristate "Rockchip eFuse Support"
260 depends on ARCH_ROCKCHIP || COMPILE_TEST
263 This is a simple driver to dump specified values of Rockchip SoC
264 from eFuse, such as cpu-leakage.
266 This driver can also be built as a module. If so, the module
267 will be called nvmem_rockchip_efuse.
269 config NVMEM_ROCKCHIP_OTP
270 tristate "Rockchip OTP controller support"
271 depends on ARCH_ROCKCHIP || COMPILE_TEST
274 This is a simple driver to dump specified values of Rockchip SoC
275 from OTP, such as cpu-leakage.
277 This driver can also be built as a module. If so, the module
278 will be called nvmem_rockchip_otp.
280 config NVMEM_SC27XX_EFUSE
281 tristate "Spreadtrum SC27XX eFuse Support"
282 depends on MFD_SC27XX_PMIC || COMPILE_TEST
285 This is a simple driver to dump specified values of Spreadtrum
286 SC27XX PMICs from eFuse.
288 This driver can also be built as a module. If so, the module
289 will be called nvmem-sc27xx-efuse.
291 config NVMEM_SNVS_LPGPR
292 tristate "Support for Low Power General Purpose Register"
293 depends on ARCH_MXC || COMPILE_TEST
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.
298 This driver can also be built as a module. If so, the module
299 will be called nvmem-snvs-lpgpr.
301 config NVMEM_SPMI_SDAM
302 tristate "SPMI SDAM Support"
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.
309 config NVMEM_SPRD_EFUSE
310 tristate "Spreadtrum SoC eFuse Support"
311 depends on ARCH_SPRD || COMPILE_TEST
314 This is a simple driver to dump specified values of Spreadtrum
317 This driver can also be built as a module. If so, the module
318 will be called nvmem-sprd-efuse.
320 config NVMEM_STM32_BSEC_OPTEE_TA
321 def_bool NVMEM_STM32_ROMEM && OPTEE
323 Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE
324 trusted application STM32MP BSEC.
326 This library is a used by stm32-romem driver or included in the module
327 called nvmem-stm32-romem.
329 config NVMEM_STM32_ROMEM
330 tristate "STMicroelectronics STM32 factory-programmed memory support"
331 depends on ARCH_STM32 || COMPILE_TEST
332 depends on OPTEE || !OPTEE
334 Say y here to enable read-only access for STMicroelectronics STM32
335 factory-programmed memory area.
337 This driver can also be built as a module. If so, the module
338 will be called nvmem-stm32-romem.
340 config NVMEM_SUNPLUS_OCOTP
341 tristate "Sunplus SoC OTP support"
342 depends on SOC_SP7021 || COMPILE_TEST
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
349 This driver can also be built as a module. If so, the module
350 will be called nvmem-sunplus-ocotp.
352 config NVMEM_SUNXI_SID
353 tristate "Allwinner SoCs SID support"
354 depends on ARCH_SUNXI
356 This is a driver for the 'security ID' available on various Allwinner
359 This driver can also be built as a module. If so, the module
360 will be called nvmem_sunxi_sid.
362 config NVMEM_U_BOOT_ENV
363 tristate "U-Boot environment variables support"
366 select GENERIC_NET_UTILS
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.
372 Currently this drivers works only with env variables on top of MTD.
374 If compiled as module it will be called nvmem_u-boot-env.
376 config NVMEM_UNIPHIER_EFUSE
377 tristate "UniPhier SoCs eFuse support"
378 depends on ARCH_UNIPHIER || COMPILE_TEST
381 This is a simple driver to dump specified values of UniPhier SoC
384 This driver can also be built as a module. If so, the module
385 will be called nvmem-uniphier-efuse.
387 config NVMEM_VF610_OCOTP
388 tristate "VF610 SoC OCOTP support"
389 depends on SOC_VF610 || COMPILE_TEST
392 This is a driver for the 'OCOTP' peripheral available on Vybrid
393 devices like VF5xx and VF6xx.
395 This driver can also be build as a module. If so, the module will
396 be called nvmem-vf610-ocotp.
399 tristate "Xilinx ZYNQMP SoC nvmem firmware support"
400 depends on ARCH_ZYNQMP
402 This is a driver to access hardware related data like
403 soc revision, IDCODE... etc by using the firmware
406 If sure, say yes. If unsure, say no.
408 config NVMEM_QORIQ_EFUSE
409 tristate "NXP QorIQ eFuse support"
410 depends on PPC_85xx || COMPILE_TEST
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'.
417 This driver can also be built as a module. If so, the module
418 will be called nvmem_qoriq_efuse.