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 MICROCHIP_OTPC
111 tristate "Microchip OTPC support"
112 depends on ARCH_AT91 || COMPILE_TEST
114 This driver enable the OTP controller available on Microchip SAMA7G5
115 SoCs. It controlls the access to the OTP memory connected to it.
117 config NVMEM_NINTENDO_OTP
118 tristate "Nintendo Wii and Wii U OTP Support"
119 depends on WII || COMPILE_TEST
121 This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
123 This memory contains common and per-console keys, signatures and
124 related data required to access peripherals.
126 This driver can also be built as a module. If so, the module
127 will be called nvmem-nintendo-otp.
130 tristate "QCOM QFPROM Support"
131 depends on ARCH_QCOM || COMPILE_TEST
134 Say y here to enable QFPROM support. The QFPROM provides access
135 functions for QFPROM data to rest of the drivers via nvmem interface.
137 This driver can also be built as a module. If so, the module
138 will be called nvmem_qfprom.
140 config NVMEM_SPMI_SDAM
141 tristate "SPMI SDAM Support"
144 This driver supports the Shared Direct Access Memory Module on
145 Qualcomm Technologies, Inc. PMICs. It provides the clients
146 an interface to read/write to the SDAM module's shared memory.
148 config ROCKCHIP_EFUSE
149 tristate "Rockchip eFuse Support"
150 depends on ARCH_ROCKCHIP || COMPILE_TEST
153 This is a simple drive to dump specified values of Rockchip SoC
154 from eFuse, such as cpu-leakage.
156 This driver can also be built as a module. If so, the module
157 will be called nvmem_rockchip_efuse.
160 tristate "Rockchip OTP controller support"
161 depends on ARCH_ROCKCHIP || COMPILE_TEST
164 This is a simple drive to dump specified values of Rockchip SoC
165 from otp, such as cpu-leakage.
167 This driver can also be built as a module. If so, the module
168 will be called nvmem_rockchip_otp.
170 config NVMEM_BCM_OCOTP
171 tristate "Broadcom On-Chip OTP Controller support"
172 depends on ARCH_BCM_IPROC || COMPILE_TEST
174 default ARCH_BCM_IPROC
176 Say y here to enable read/write access to the Broadcom OTP
179 This driver can also be built as a module. If so, the module
180 will be called nvmem-bcm-ocotp.
182 config NVMEM_STM32_ROMEM
183 tristate "STMicroelectronics STM32 factory-programmed memory support"
184 depends on ARCH_STM32 || COMPILE_TEST
186 Say y here to enable read-only access for STMicroelectronics STM32
187 factory-programmed memory area.
189 This driver can also be built as a module. If so, the module
190 will be called nvmem-stm32-romem.
192 config NVMEM_SUNXI_SID
193 tristate "Allwinner SoCs SID support"
194 depends on ARCH_SUNXI
196 This is a driver for the 'security ID' available on various Allwinner
199 This driver can also be built as a module. If so, the module
200 will be called nvmem_sunxi_sid.
202 config UNIPHIER_EFUSE
203 tristate "UniPhier SoCs eFuse support"
204 depends on ARCH_UNIPHIER || COMPILE_TEST
207 This is a simple driver to dump specified values of UniPhier SoC
210 This driver can also be built as a module. If so, the module
211 will be called nvmem-uniphier-efuse.
213 config NVMEM_VF610_OCOTP
214 tristate "VF610 SoC OCOTP support"
215 depends on SOC_VF610 || COMPILE_TEST
218 This is a driver for the 'OCOTP' peripheral available on Vybrid
219 devices like VF5xx and VF6xx.
221 This driver can also be build as a module. If so, the module will
222 be called nvmem-vf610-ocotp.
225 tristate "Amlogic Meson GX eFuse Support"
226 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
228 This is a driver to retrieve specific values from the eFuse found on
229 the Amlogic Meson GX SoCs.
231 This driver can also be built as a module. If so, the module
232 will be called nvmem_meson_efuse.
234 config MESON_MX_EFUSE
235 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
236 depends on ARCH_MESON || COMPILE_TEST
238 This is a driver to retrieve specific values from the eFuse found on
239 the Amlogic Meson6, Meson8 and Meson8b SoCs.
241 This driver can also be built as a module. If so, the module
242 will be called nvmem_meson_mx_efuse.
244 config NVMEM_SNVS_LPGPR
245 tristate "Support for Low Power General Purpose Register"
246 depends on ARCH_MXC || COMPILE_TEST
248 This is a driver for Low Power General Purpose Register (LPGPR) available on
249 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
251 This driver can also be built as a module. If so, the module
252 will be called nvmem-snvs-lpgpr.
254 config RAVE_SP_EEPROM
255 tristate "Rave SP EEPROM Support"
256 depends on RAVE_SP_CORE
258 Say y here to enable Rave SP EEPROM support.
261 tristate "Spreadtrum SC27XX eFuse Support"
262 depends on MFD_SC27XX_PMIC || COMPILE_TEST
265 This is a simple driver to dump specified values of Spreadtrum
266 SC27XX PMICs from eFuse.
268 This driver can also be built as a module. If so, the module
269 will be called nvmem-sc27xx-efuse.
272 bool "Xilinx ZYNQMP SoC nvmem firmware support"
273 depends on ARCH_ZYNQMP
275 This is a driver to access hardware related data like
276 soc revision, IDCODE... etc by using the firmware
279 If sure, say yes. If unsure, say no.
282 tristate "Spreadtrum SoC eFuse Support"
283 depends on ARCH_SPRD || COMPILE_TEST
286 This is a simple driver to dump specified values of Spreadtrum
289 This driver can also be built as a module. If so, the module
290 will be called nvmem-sprd-efuse.
293 tristate "Reserved Memory Based Driver Support"
296 This driver maps reserved memory into an nvmem device. It might be
297 useful to expose information left by firmware in memory.
299 This driver can also be built as a module. If so, the module
300 will be called nvmem-rmem.
302 config NVMEM_BRCM_NVRAM
303 tristate "Broadcom's NVRAM support"
304 depends on ARCH_BCM_5301X || COMPILE_TEST
307 This driver provides support for Broadcom's NVRAM that can be accessed
310 config NVMEM_LAYERSCAPE_SFP
311 tristate "Layerscape SFP (Security Fuse Processor) support"
312 depends on ARCH_LAYERSCAPE || COMPILE_TEST
316 This driver provides support to read the eFuses on Freescale
317 Layerscape SoC's. For example, the vendor provides a per part
320 This driver can also be built as a module. If so, the module
321 will be called layerscape-sfp.
323 config NVMEM_SUNPLUS_OCOTP
324 tristate "Sunplus SoC OTP support"
325 depends on SOC_SP7021 || COMPILE_TEST
328 This is a driver for the On-chip OTP controller (OCOTP) available
329 on Sunplus SoCs. It provides access to 128 bytes of one-time
332 This driver can also be built as a module. If so, the module
333 will be called nvmem-sunplus-ocotp.
335 config NVMEM_APPLE_EFUSES
336 tristate "Apple eFuse support"
337 depends on ARCH_APPLE || COMPILE_TEST
340 Say y here to enable support for reading eFuses on Apple SoCs
341 such as the M1. These are e.g. used to store factory programmed
342 calibration data required for the PCIe or the USB-C PHY.
344 This driver can also be built as a module. If so, the module will
345 be called nvmem-apple-efuses.