1 # SPDX-License-Identifier: GPL-2.0-only
6 Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
8 This framework is designed to provide a generic interface to NVMEM
9 from both the Linux Kernel and the userspace.
16 bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
20 Say Y here to add a sysfs interface for NVMEM.
22 This interface is mostly used by userspace applications to
23 read/write directly into nvmem.
27 source "drivers/nvmem/layouts/Kconfig"
31 config NVMEM_APPLE_EFUSES
32 tristate "Apple eFuse support"
33 depends on ARCH_APPLE || COMPILE_TEST
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.
40 This driver can also be built as a module. If so, the module will
41 be called nvmem-apple-efuses.
43 config NVMEM_BCM_OCOTP
44 tristate "Broadcom On-Chip OTP Controller support"
45 depends on ARCH_BCM_IPROC || COMPILE_TEST
47 default ARCH_BCM_IPROC
49 Say y here to enable read/write access to the Broadcom OTP
52 This driver can also be built as a module. If so, the module
53 will be called nvmem-bcm-ocotp.
55 config NVMEM_BRCM_NVRAM
56 tristate "Broadcom's NVRAM support"
57 depends on ARCH_BCM_5301X || COMPILE_TEST
59 select GENERIC_NET_UTILS
61 This driver provides support for Broadcom's NVRAM that can be accessed
65 tristate "i.MX IC Identification Module support"
66 depends on ARCH_MXC || COMPILE_TEST
68 This is a driver for the IC Identification Module (IIM) available on
69 i.MX SoCs, providing access to 4 Kbits of programmable
72 This driver can also be built as a module. If so, the module
73 will be called nvmem-imx-iim.
75 config NVMEM_IMX_OCOTP
76 tristate "i.MX 6/7/8 On-Chip OTP Controller support"
77 depends on ARCH_MXC || COMPILE_TEST
80 This is a driver for the On-Chip OTP Controller (OCOTP) available on
81 i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
84 This driver can also be built as a module. If so, the module
85 will be called nvmem-imx-ocotp.
87 config NVMEM_IMX_OCOTP_ELE
88 tristate "i.MX On-Chip OTP Controller support"
89 depends on ARCH_MXC || COMPILE_TEST
93 This is a driver for the On-Chip OTP Controller (OCOTP)
94 available on i.MX SoCs which has ELE.
96 config NVMEM_IMX_OCOTP_SCU
97 tristate "i.MX8 SCU On-Chip OTP Controller support"
99 depends on HAVE_ARM_SMCCC
101 This is a driver for the SCU On-Chip OTP Controller (OCOTP)
102 available on i.MX8 SoCs.
104 config NVMEM_JZ4780_EFUSE
105 tristate "JZ4780 EFUSE Memory Support"
106 depends on MACH_INGENIC || COMPILE_TEST
111 Say Y here to include support for JZ4780 efuse memory found on
112 all JZ4780 SoC based devices.
113 To compile this driver as a module, choose M here: the module
114 will be called nvmem_jz4780_efuse.
116 config NVMEM_LAN9662_OTPC
117 tristate "Microchip LAN9662 OTP controller support"
118 depends on SOC_LAN966 || COMPILE_TEST
121 This driver enables the OTP controller available on Microchip LAN9662
122 SoCs. It controls the access to the OTP memory connected to it.
124 config NVMEM_LAYERSCAPE_SFP
125 tristate "Layerscape SFP (Security Fuse Processor) support"
126 depends on ARCH_LAYERSCAPE || COMPILE_TEST
130 This driver provides support to read the eFuses on Freescale
131 Layerscape SoC's. For example, the vendor provides a per part
134 This driver can also be built as a module. If so, the module
135 will be called layerscape-sfp.
137 config NVMEM_LPC18XX_EEPROM
138 tristate "NXP LPC18XX EEPROM Memory Support"
139 depends on ARCH_LPC18XX || COMPILE_TEST
142 Say Y here to include support for NXP LPC18xx EEPROM memory found in
143 NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
144 To compile this driver as a module, choose M here: the module
145 will be called nvmem_lpc18xx_eeprom.
147 config NVMEM_LPC18XX_OTP
148 tristate "NXP LPC18XX OTP Memory Support"
149 depends on ARCH_LPC18XX || COMPILE_TEST
152 Say Y here to include support for NXP LPC18xx OTP memory found on
153 all LPC18xx and LPC43xx devices.
154 To compile this driver as a module, choose M here: the module
155 will be called nvmem_lpc18xx_otp.
157 config NVMEM_MESON_EFUSE
158 tristate "Amlogic Meson GX eFuse Support"
159 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
161 This is a driver to retrieve specific values from the eFuse found on
162 the Amlogic Meson GX SoCs.
164 This driver can also be built as a module. If so, the module
165 will be called nvmem_meson_efuse.
167 config NVMEM_MESON_MX_EFUSE
168 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
169 depends on ARCH_MESON || COMPILE_TEST
171 This is a driver to retrieve specific values from the eFuse found on
172 the Amlogic Meson6, Meson8 and Meson8b SoCs.
174 This driver can also be built as a module. If so, the module
175 will be called nvmem_meson_mx_efuse.
177 config NVMEM_MICROCHIP_OTPC
178 tristate "Microchip OTPC support"
179 depends on ARCH_AT91 || COMPILE_TEST
181 This driver enable the OTP controller available on Microchip SAMA7G5
182 SoCs. It controls the access to the OTP memory connected to it.
184 config NVMEM_MTK_EFUSE
185 tristate "Mediatek SoCs EFUSE support"
186 depends on ARCH_MEDIATEK || COMPILE_TEST
189 This is a driver to access hardware related data like sensor
190 calibration, HDMI impedance etc.
192 This driver can also be built as a module. If so, the module
193 will be called efuse-mtk.
195 config NVMEM_MXS_OCOTP
196 tristate "Freescale MXS On-Chip OTP Memory Support"
197 depends on ARCH_MXS || COMPILE_TEST
200 If you say Y here, you will get readonly access to the
201 One Time Programmable memory pages that are stored
202 on the Freescale i.MX23/i.MX28 processor.
204 This driver can also be built as a module. If so, the module
205 will be called nvmem-mxs-ocotp.
207 config NVMEM_NINTENDO_OTP
208 tristate "Nintendo Wii and Wii U OTP Support"
209 depends on WII || COMPILE_TEST
211 This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
213 This memory contains common and per-console keys, signatures and
214 related data required to access peripherals.
216 This driver can also be built as a module. If so, the module
217 will be called nvmem-nintendo-otp.
219 config NVMEM_QCOM_QFPROM
220 tristate "QCOM QFPROM Support"
221 depends on ARCH_QCOM || COMPILE_TEST
224 Say y here to enable QFPROM support. The QFPROM provides access
225 functions for QFPROM data to rest of the drivers via nvmem interface.
227 This driver can also be built as a module. If so, the module
228 will be called nvmem_qfprom.
230 config NVMEM_QCOM_SEC_QFPROM
231 tristate "QCOM SECURE QFPROM Support"
232 depends on ARCH_QCOM || COMPILE_TEST
237 Say y here to enable secure QFPROM support. The secure QFPROM provides access
238 functions for QFPROM data to rest of the drivers via nvmem interface.
240 This driver can also be built as a module. If so, the module will be called
243 config NVMEM_RAVE_SP_EEPROM
244 tristate "Rave SP EEPROM Support"
245 depends on RAVE_SP_CORE
247 Say y here to enable Rave SP EEPROM support.
250 tristate "Reserved Memory Based Driver Support"
253 This driver maps reserved memory into an nvmem device. It might be
254 useful to expose information left by firmware in memory.
256 This driver can also be built as a module. If so, the module
257 will be called nvmem-rmem.
259 config NVMEM_ROCKCHIP_EFUSE
260 tristate "Rockchip eFuse Support"
261 depends on ARCH_ROCKCHIP || COMPILE_TEST
264 This is a simple driver to dump specified values of Rockchip SoC
265 from eFuse, such as cpu-leakage.
267 This driver can also be built as a module. If so, the module
268 will be called nvmem_rockchip_efuse.
270 config NVMEM_ROCKCHIP_OTP
271 tristate "Rockchip OTP controller support"
272 depends on ARCH_ROCKCHIP || COMPILE_TEST
275 This is a simple driver to dump specified values of Rockchip SoC
276 from OTP, such as cpu-leakage.
278 This driver can also be built as a module. If so, the module
279 will be called nvmem_rockchip_otp.
281 config NVMEM_SC27XX_EFUSE
282 tristate "Spreadtrum SC27XX eFuse Support"
283 depends on MFD_SC27XX_PMIC || COMPILE_TEST
286 This is a simple driver to dump specified values of Spreadtrum
287 SC27XX PMICs from eFuse.
289 This driver can also be built as a module. If so, the module
290 will be called nvmem-sc27xx-efuse.
292 config NVMEM_SNVS_LPGPR
293 tristate "Support for Low Power General Purpose Register"
294 depends on ARCH_MXC || COMPILE_TEST
296 This is a driver for Low Power General Purpose Register (LPGPR) available on
297 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
299 This driver can also be built as a module. If so, the module
300 will be called nvmem-snvs-lpgpr.
302 config NVMEM_SPMI_SDAM
303 tristate "SPMI SDAM Support"
306 This driver supports the Shared Direct Access Memory Module on
307 Qualcomm Technologies, Inc. PMICs. It provides the clients
308 an interface to read/write to the SDAM module's shared memory.
310 config NVMEM_SPRD_EFUSE
311 tristate "Spreadtrum SoC eFuse Support"
312 depends on ARCH_SPRD || COMPILE_TEST
315 This is a simple driver to dump specified values of Spreadtrum
318 This driver can also be built as a module. If so, the module
319 will be called nvmem-sprd-efuse.
321 config NVMEM_STM32_BSEC_OPTEE_TA
322 def_bool NVMEM_STM32_ROMEM && OPTEE
324 Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE
325 trusted application STM32MP BSEC.
327 This library is a used by stm32-romem driver or included in the module
328 called nvmem-stm32-romem.
330 config NVMEM_STM32_ROMEM
331 tristate "STMicroelectronics STM32 factory-programmed memory support"
332 depends on ARCH_STM32 || COMPILE_TEST
333 depends on OPTEE || !OPTEE
335 Say y here to enable read-only access for STMicroelectronics STM32
336 factory-programmed memory area.
338 This driver can also be built as a module. If so, the module
339 will be called nvmem-stm32-romem.
341 config NVMEM_SUNPLUS_OCOTP
342 tristate "Sunplus SoC OTP support"
343 depends on SOC_SP7021 || COMPILE_TEST
346 This is a driver for the On-chip OTP controller (OCOTP) available
347 on Sunplus SoCs. It provides access to 128 bytes of one-time
350 This driver can also be built as a module. If so, the module
351 will be called nvmem-sunplus-ocotp.
353 config NVMEM_SUNXI_SID
354 tristate "Allwinner SoCs SID support"
355 depends on ARCH_SUNXI
357 This is a driver for the 'security ID' available on various Allwinner
360 This driver can also be built as a module. If so, the module
361 will be called nvmem_sunxi_sid.
363 config NVMEM_U_BOOT_ENV
364 tristate "U-Boot environment variables support"
367 select GENERIC_NET_UTILS
369 U-Boot stores its setup as environment variables. This driver adds
370 support for verifying & exporting such data. It also exposes variables
371 as NVMEM cells so they can be referenced by other drivers.
373 Currently this drivers works only with env variables on top of MTD.
375 If compiled as module it will be called nvmem_u-boot-env.
377 config NVMEM_UNIPHIER_EFUSE
378 tristate "UniPhier SoCs eFuse support"
379 depends on ARCH_UNIPHIER || COMPILE_TEST
382 This is a simple driver to dump specified values of UniPhier SoC
385 This driver can also be built as a module. If so, the module
386 will be called nvmem-uniphier-efuse.
388 config NVMEM_VF610_OCOTP
389 tristate "VF610 SoC OCOTP support"
390 depends on SOC_VF610 || COMPILE_TEST
393 This is a driver for the 'OCOTP' peripheral available on Vybrid
394 devices like VF5xx and VF6xx.
396 This driver can also be build as a module. If so, the module will
397 be called nvmem-vf610-ocotp.
400 tristate "Xilinx ZYNQMP SoC nvmem firmware support"
401 depends on ARCH_ZYNQMP
403 This is a driver to access hardware related data like
404 soc revision, IDCODE... etc by using the firmware
407 If sure, say yes. If unsure, say no.
409 config NVMEM_QORIQ_EFUSE
410 tristate "NXP QorIQ eFuse support"
411 depends on PPC_85xx || COMPILE_TEST
414 This driver provides read support for the eFuses (SFP) on NXP QorIQ
415 series SoC's. This includes secure boot settings, the globally unique
416 NXP ID 'FUIDR' and the OEM unique ID 'OUIDR'.
418 This driver can also be built as a module. If so, the module
419 will be called nvmem_qoriq_efuse.