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
59 This driver provides support for Broadcom's NVRAM that can be accessed
63 tristate "i.MX IC Identification Module support"
64 depends on ARCH_MXC || COMPILE_TEST
66 This is a driver for the IC Identification Module (IIM) available on
67 i.MX SoCs, providing access to 4 Kbits of programmable
70 This driver can also be built as a module. If so, the module
71 will be called nvmem-imx-iim.
73 config NVMEM_IMX_OCOTP
74 tristate "i.MX 6/7/8 On-Chip OTP Controller support"
75 depends on ARCH_MXC || COMPILE_TEST
78 This is a driver for the On-Chip OTP Controller (OCOTP) available on
79 i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
82 This driver can also be built as a module. If so, the module
83 will be called nvmem-imx-ocotp.
85 config NVMEM_IMX_OCOTP_SCU
86 tristate "i.MX8 SCU On-Chip OTP Controller support"
88 depends on HAVE_ARM_SMCCC
90 This is a driver for the SCU On-Chip OTP Controller (OCOTP)
91 available on i.MX8 SoCs.
93 config NVMEM_JZ4780_EFUSE
94 tristate "JZ4780 EFUSE Memory Support"
95 depends on MACH_INGENIC || COMPILE_TEST
100 Say Y here to include support for JZ4780 efuse memory found on
101 all JZ4780 SoC based devices.
102 To compile this driver as a module, choose M here: the module
103 will be called nvmem_jz4780_efuse.
105 config NVMEM_LAN9662_OTPC
106 tristate "Microchip LAN9662 OTP controller support"
107 depends on SOC_LAN966 || COMPILE_TEST
110 This driver enables the OTP controller available on Microchip LAN9662
111 SoCs. It controls the access to the OTP memory connected to it.
113 config NVMEM_LAYERSCAPE_SFP
114 tristate "Layerscape SFP (Security Fuse Processor) support"
115 depends on ARCH_LAYERSCAPE || COMPILE_TEST
119 This driver provides support to read the eFuses on Freescale
120 Layerscape SoC's. For example, the vendor provides a per part
123 This driver can also be built as a module. If so, the module
124 will be called layerscape-sfp.
126 config NVMEM_LPC18XX_EEPROM
127 tristate "NXP LPC18XX EEPROM Memory Support"
128 depends on ARCH_LPC18XX || COMPILE_TEST
131 Say Y here to include support for NXP LPC18xx EEPROM memory found in
132 NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
133 To compile this driver as a module, choose M here: the module
134 will be called nvmem_lpc18xx_eeprom.
136 config NVMEM_LPC18XX_OTP
137 tristate "NXP LPC18XX OTP Memory Support"
138 depends on ARCH_LPC18XX || COMPILE_TEST
141 Say Y here to include support for NXP LPC18xx OTP memory found on
142 all LPC18xx and LPC43xx devices.
143 To compile this driver as a module, choose M here: the module
144 will be called nvmem_lpc18xx_otp.
146 config NVMEM_MESON_EFUSE
147 tristate "Amlogic Meson GX eFuse Support"
148 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
150 This is a driver to retrieve specific values from the eFuse found on
151 the Amlogic Meson GX SoCs.
153 This driver can also be built as a module. If so, the module
154 will be called nvmem_meson_efuse.
156 config NVMEM_MESON_MX_EFUSE
157 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
158 depends on ARCH_MESON || COMPILE_TEST
160 This is a driver to retrieve specific values from the eFuse found on
161 the Amlogic Meson6, Meson8 and Meson8b SoCs.
163 This driver can also be built as a module. If so, the module
164 will be called nvmem_meson_mx_efuse.
166 config NVMEM_MICROCHIP_OTPC
167 tristate "Microchip OTPC support"
168 depends on ARCH_AT91 || COMPILE_TEST
170 This driver enable the OTP controller available on Microchip SAMA7G5
171 SoCs. It controls the access to the OTP memory connected to it.
173 config NVMEM_MTK_EFUSE
174 tristate "Mediatek SoCs EFUSE support"
175 depends on ARCH_MEDIATEK || COMPILE_TEST
178 This is a driver to access hardware related data like sensor
179 calibration, HDMI impedance etc.
181 This driver can also be built as a module. If so, the module
182 will be called efuse-mtk.
184 config NVMEM_MXS_OCOTP
185 tristate "Freescale MXS On-Chip OTP Memory Support"
186 depends on ARCH_MXS || COMPILE_TEST
189 If you say Y here, you will get readonly access to the
190 One Time Programmable memory pages that are stored
191 on the Freescale i.MX23/i.MX28 processor.
193 This driver can also be built as a module. If so, the module
194 will be called nvmem-mxs-ocotp.
196 config NVMEM_NINTENDO_OTP
197 tristate "Nintendo Wii and Wii U OTP Support"
198 depends on WII || COMPILE_TEST
200 This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
202 This memory contains common and per-console keys, signatures and
203 related data required to access peripherals.
205 This driver can also be built as a module. If so, the module
206 will be called nvmem-nintendo-otp.
208 config NVMEM_QCOM_QFPROM
209 tristate "QCOM QFPROM Support"
210 depends on ARCH_QCOM || COMPILE_TEST
213 Say y here to enable QFPROM support. The QFPROM provides access
214 functions for QFPROM data to rest of the drivers via nvmem interface.
216 This driver can also be built as a module. If so, the module
217 will be called nvmem_qfprom.
219 config NVMEM_RAVE_SP_EEPROM
220 tristate "Rave SP EEPROM Support"
221 depends on RAVE_SP_CORE
223 Say y here to enable Rave SP EEPROM support.
226 tristate "Reserved Memory Based Driver Support"
229 This driver maps reserved memory into an nvmem device. It might be
230 useful to expose information left by firmware in memory.
232 This driver can also be built as a module. If so, the module
233 will be called nvmem-rmem.
235 config NVMEM_ROCKCHIP_EFUSE
236 tristate "Rockchip eFuse Support"
237 depends on ARCH_ROCKCHIP || COMPILE_TEST
240 This is a simple drive to dump specified values of Rockchip SoC
241 from eFuse, such as cpu-leakage.
243 This driver can also be built as a module. If so, the module
244 will be called nvmem_rockchip_efuse.
246 config NVMEM_ROCKCHIP_OTP
247 tristate "Rockchip OTP controller support"
248 depends on ARCH_ROCKCHIP || COMPILE_TEST
251 This is a simple drive to dump specified values of Rockchip SoC
252 from otp, such as cpu-leakage.
254 This driver can also be built as a module. If so, the module
255 will be called nvmem_rockchip_otp.
257 config NVMEM_SC27XX_EFUSE
258 tristate "Spreadtrum SC27XX eFuse Support"
259 depends on MFD_SC27XX_PMIC || COMPILE_TEST
262 This is a simple driver to dump specified values of Spreadtrum
263 SC27XX PMICs from eFuse.
265 This driver can also be built as a module. If so, the module
266 will be called nvmem-sc27xx-efuse.
268 config NVMEM_SNVS_LPGPR
269 tristate "Support for Low Power General Purpose Register"
270 depends on ARCH_MXC || COMPILE_TEST
272 This is a driver for Low Power General Purpose Register (LPGPR) available on
273 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
275 This driver can also be built as a module. If so, the module
276 will be called nvmem-snvs-lpgpr.
278 config NVMEM_SPMI_SDAM
279 tristate "SPMI SDAM Support"
282 This driver supports the Shared Direct Access Memory Module on
283 Qualcomm Technologies, Inc. PMICs. It provides the clients
284 an interface to read/write to the SDAM module's shared memory.
286 config NVMEM_SPRD_EFUSE
287 tristate "Spreadtrum SoC eFuse Support"
288 depends on ARCH_SPRD || COMPILE_TEST
291 This is a simple driver to dump specified values of Spreadtrum
294 This driver can also be built as a module. If so, the module
295 will be called nvmem-sprd-efuse.
297 config NVMEM_STM32_BSEC_OPTEE_TA
298 def_bool NVMEM_STM32_ROMEM && OPTEE
300 Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE
301 trusted application STM32MP BSEC.
303 This library is a used by stm32-romem driver or included in the module
304 called nvmem-stm32-romem.
306 config NVMEM_STM32_ROMEM
307 tristate "STMicroelectronics STM32 factory-programmed memory support"
308 depends on ARCH_STM32 || COMPILE_TEST
309 depends on OPTEE || !OPTEE
311 Say y here to enable read-only access for STMicroelectronics STM32
312 factory-programmed memory area.
314 This driver can also be built as a module. If so, the module
315 will be called nvmem-stm32-romem.
317 config NVMEM_SUNPLUS_OCOTP
318 tristate "Sunplus SoC OTP support"
319 depends on SOC_SP7021 || COMPILE_TEST
322 This is a driver for the On-chip OTP controller (OCOTP) available
323 on Sunplus SoCs. It provides access to 128 bytes of one-time
326 This driver can also be built as a module. If so, the module
327 will be called nvmem-sunplus-ocotp.
329 config NVMEM_SUNXI_SID
330 tristate "Allwinner SoCs SID support"
331 depends on ARCH_SUNXI
333 This is a driver for the 'security ID' available on various Allwinner
336 This driver can also be built as a module. If so, the module
337 will be called nvmem_sunxi_sid.
339 config NVMEM_U_BOOT_ENV
340 tristate "U-Boot environment variables support"
343 select GENERIC_NET_UTILS
345 U-Boot stores its setup as environment variables. This driver adds
346 support for verifying & exporting such data. It also exposes variables
347 as NVMEM cells so they can be referenced by other drivers.
349 Currently this drivers works only with env variables on top of MTD.
351 If compiled as module it will be called nvmem_u-boot-env.
353 config NVMEM_UNIPHIER_EFUSE
354 tristate "UniPhier SoCs eFuse support"
355 depends on ARCH_UNIPHIER || COMPILE_TEST
358 This is a simple driver to dump specified values of UniPhier SoC
361 This driver can also be built as a module. If so, the module
362 will be called nvmem-uniphier-efuse.
364 config NVMEM_VF610_OCOTP
365 tristate "VF610 SoC OCOTP support"
366 depends on SOC_VF610 || COMPILE_TEST
369 This is a driver for the 'OCOTP' peripheral available on Vybrid
370 devices like VF5xx and VF6xx.
372 This driver can also be build as a module. If so, the module will
373 be called nvmem-vf610-ocotp.
376 tristate "Xilinx ZYNQMP SoC nvmem firmware support"
377 depends on ARCH_ZYNQMP
379 This is a driver to access hardware related data like
380 soc revision, IDCODE... etc by using the firmware
383 If sure, say yes. If unsure, say no.