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.
25 tristate "i.MX IC Identification Module support"
26 depends on ARCH_MXC || COMPILE_TEST
28 This is a driver for the IC Identification Module (IIM) available on
29 i.MX SoCs, providing access to 4 Kbits of programmable
32 This driver can also be built as a module. If so, the module
33 will be called nvmem-imx-iim.
35 config NVMEM_IMX_OCOTP
36 tristate "i.MX 6/7/8 On-Chip OTP Controller support"
37 depends on ARCH_MXC || COMPILE_TEST
40 This is a driver for the On-Chip OTP Controller (OCOTP) available on
41 i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
44 This driver can also be built as a module. If so, the module
45 will be called nvmem-imx-ocotp.
47 config NVMEM_IMX_OCOTP_SCU
48 tristate "i.MX8 SCU On-Chip OTP Controller support"
50 depends on HAVE_ARM_SMCCC
52 This is a driver for the SCU On-Chip OTP Controller (OCOTP)
53 available on i.MX8 SoCs.
56 tristate "JZ4780 EFUSE Memory Support"
57 depends on MACH_INGENIC || COMPILE_TEST
62 Say Y here to include support for JZ4780 efuse memory found on
63 all JZ4780 SoC based devices.
64 To compile this driver as a module, choose M here: the module
65 will be called nvmem_jz4780_efuse.
67 config NVMEM_LPC18XX_EEPROM
68 tristate "NXP LPC18XX EEPROM Memory Support"
69 depends on ARCH_LPC18XX || COMPILE_TEST
72 Say Y here to include support for NXP LPC18xx EEPROM memory found in
73 NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
74 To compile this driver as a module, choose M here: the module
75 will be called nvmem_lpc18xx_eeprom.
77 config NVMEM_LPC18XX_OTP
78 tristate "NXP LPC18XX OTP Memory Support"
79 depends on ARCH_LPC18XX || COMPILE_TEST
82 Say Y here to include support for NXP LPC18xx OTP memory found on
83 all LPC18xx and LPC43xx devices.
84 To compile this driver as a module, choose M here: the module
85 will be called nvmem_lpc18xx_otp.
87 config NVMEM_MXS_OCOTP
88 tristate "Freescale MXS On-Chip OTP Memory Support"
89 depends on ARCH_MXS || COMPILE_TEST
92 If you say Y here, you will get readonly access to the
93 One Time Programmable memory pages that are stored
94 on the Freescale i.MX23/i.MX28 processor.
96 This driver can also be built as a module. If so, the module
97 will be called nvmem-mxs-ocotp.
100 tristate "Mediatek SoCs EFUSE support"
101 depends on ARCH_MEDIATEK || COMPILE_TEST
104 This is a driver to access hardware related data like sensor
105 calibration, HDMI impedance etc.
107 This driver can also be built as a module. If so, the module
108 will be called efuse-mtk.
110 config NVMEM_NINTENDO_OTP
111 tristate "Nintendo Wii and Wii U OTP Support"
112 depends on WII || COMPILE_TEST
114 This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
116 This memory contains common and per-console keys, signatures and
117 related data required to access peripherals.
119 This driver can also be built as a module. If so, the module
120 will be called nvmem-nintendo-otp.
123 tristate "QCOM QFPROM Support"
124 depends on ARCH_QCOM || COMPILE_TEST
127 Say y here to enable QFPROM support. The QFPROM provides access
128 functions for QFPROM data to rest of the drivers via nvmem interface.
130 This driver can also be built as a module. If so, the module
131 will be called nvmem_qfprom.
133 config NVMEM_SPMI_SDAM
134 tristate "SPMI SDAM Support"
137 This driver supports the Shared Direct Access Memory Module on
138 Qualcomm Technologies, Inc. PMICs. It provides the clients
139 an interface to read/write to the SDAM module's shared memory.
141 config ROCKCHIP_EFUSE
142 tristate "Rockchip eFuse Support"
143 depends on ARCH_ROCKCHIP || COMPILE_TEST
146 This is a simple drive to dump specified values of Rockchip SoC
147 from eFuse, such as cpu-leakage.
149 This driver can also be built as a module. If so, the module
150 will be called nvmem_rockchip_efuse.
153 tristate "Rockchip OTP controller support"
154 depends on ARCH_ROCKCHIP || COMPILE_TEST
157 This is a simple drive to dump specified values of Rockchip SoC
158 from otp, such as cpu-leakage.
160 This driver can also be built as a module. If so, the module
161 will be called nvmem_rockchip_otp.
163 config NVMEM_BCM_OCOTP
164 tristate "Broadcom On-Chip OTP Controller support"
165 depends on ARCH_BCM_IPROC || COMPILE_TEST
167 default ARCH_BCM_IPROC
169 Say y here to enable read/write access to the Broadcom OTP
172 This driver can also be built as a module. If so, the module
173 will be called nvmem-bcm-ocotp.
175 config NVMEM_STM32_ROMEM
176 tristate "STMicroelectronics STM32 factory-programmed memory support"
177 depends on ARCH_STM32 || COMPILE_TEST
179 Say y here to enable read-only access for STMicroelectronics STM32
180 factory-programmed memory area.
182 This driver can also be built as a module. If so, the module
183 will be called nvmem-stm32-romem.
185 config NVMEM_SUNXI_SID
186 tristate "Allwinner SoCs SID support"
187 depends on ARCH_SUNXI
189 This is a driver for the 'security ID' available on various Allwinner
192 This driver can also be built as a module. If so, the module
193 will be called nvmem_sunxi_sid.
195 config UNIPHIER_EFUSE
196 tristate "UniPhier SoCs eFuse support"
197 depends on ARCH_UNIPHIER || COMPILE_TEST
200 This is a simple driver to dump specified values of UniPhier SoC
203 This driver can also be built as a module. If so, the module
204 will be called nvmem-uniphier-efuse.
206 config NVMEM_VF610_OCOTP
207 tristate "VF610 SoC OCOTP support"
208 depends on SOC_VF610 || COMPILE_TEST
211 This is a driver for the 'OCOTP' peripheral available on Vybrid
212 devices like VF5xx and VF6xx.
214 This driver can also be build as a module. If so, the module will
215 be called nvmem-vf610-ocotp.
218 tristate "Amlogic Meson GX eFuse Support"
219 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
221 This is a driver to retrieve specific values from the eFuse found on
222 the Amlogic Meson GX SoCs.
224 This driver can also be built as a module. If so, the module
225 will be called nvmem_meson_efuse.
227 config MESON_MX_EFUSE
228 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
229 depends on ARCH_MESON || COMPILE_TEST
231 This is a driver to retrieve specific values from the eFuse found on
232 the Amlogic Meson6, Meson8 and Meson8b SoCs.
234 This driver can also be built as a module. If so, the module
235 will be called nvmem_meson_mx_efuse.
237 config NVMEM_SNVS_LPGPR
238 tristate "Support for Low Power General Purpose Register"
239 depends on ARCH_MXC || COMPILE_TEST
241 This is a driver for Low Power General Purpose Register (LPGPR) available on
242 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
244 This driver can also be built as a module. If so, the module
245 will be called nvmem-snvs-lpgpr.
247 config RAVE_SP_EEPROM
248 tristate "Rave SP EEPROM Support"
249 depends on RAVE_SP_CORE
251 Say y here to enable Rave SP EEPROM support.
254 tristate "Spreadtrum SC27XX eFuse Support"
255 depends on MFD_SC27XX_PMIC || COMPILE_TEST
258 This is a simple driver to dump specified values of Spreadtrum
259 SC27XX PMICs from eFuse.
261 This driver can also be built as a module. If so, the module
262 will be called nvmem-sc27xx-efuse.
265 bool "Xilinx ZYNQMP SoC nvmem firmware support"
266 depends on ARCH_ZYNQMP
268 This is a driver to access hardware related data like
269 soc revision, IDCODE... etc by using the firmware
272 If sure, say yes. If unsure, say no.
275 tristate "Spreadtrum SoC eFuse Support"
276 depends on ARCH_SPRD || COMPILE_TEST
279 This is a simple driver to dump specified values of Spreadtrum
282 This driver can also be built as a module. If so, the module
283 will be called nvmem-sprd-efuse.
286 tristate "Reserved Memory Based Driver Support"
289 This driver maps reserved memory into an nvmem device. It might be
290 useful to expose information left by firmware in memory.
292 This driver can also be built as a module. If so, the module
293 will be called nvmem-rmem.
295 config NVMEM_BRCM_NVRAM
296 tristate "Broadcom's NVRAM support"
297 depends on ARCH_BCM_5301X || COMPILE_TEST
300 This driver provides support for Broadcom's NVRAM that can be accessed
303 config NVMEM_LAYERSCAPE_SFP
304 tristate "Layerscape SFP (Security Fuse Processor) support"
305 depends on ARCH_LAYERSCAPE || COMPILE_TEST
309 This driver provides support to read the eFuses on Freescale
310 Layerscape SoC's. For example, the vendor provides a per part
313 This driver can also be built as a module. If so, the module
314 will be called layerscape-sfp.
316 config NVMEM_SUNPLUS_OCOTP
317 tristate "Sunplus SoC OTP support"
318 depends on SOC_SP7021 || COMPILE_TEST
321 This is a driver for the On-chip OTP controller (OCOTP) available
322 on Sunplus SoCs. It provides access to 128 bytes of one-time
325 This driver can also be built as a module. If so, the module
326 will be called nvmem-sunplus-ocotp.
328 config NVMEM_APPLE_EFUSES
329 tristate "Apple eFuse support"
330 depends on ARCH_APPLE || COMPILE_TEST
333 Say y here to enable support for reading eFuses on Apple SoCs
334 such as the M1. These are e.g. used to store factory programmed
335 calibration data required for the PCIe or the USB-C PHY.
337 This driver can also be built as a module. If so, the module will
338 be called nvmem-apple-efuses.