Merge tag 'ipsec-next-2023-04-19' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-block.git] / drivers / nvmem / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
eace75cf 2menuconfig NVMEM
2a37ce25 3 bool "NVMEM Support"
eace75cf
SK
4 help
5 Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
6
7 This framework is designed to provide a generic interface to NVMEM
8 from both the Linux Kernel and the userspace.
9
eace75cf 10 If unsure, say no.
4ab11996
SK
11
12if NVMEM
13
ae0c2d72
SK
14config NVMEM_SYSFS
15 bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
16 depends on SYSFS
17 default y
18 help
19 Say Y here to add a sysfs interface for NVMEM.
20
21 This interface is mostly used by userspace applications to
22 read/write directly into nvmem.
23
a06d9e5a
RM
24# Devices
25
26config NVMEM_APPLE_EFUSES
27 tristate "Apple eFuse support"
28 depends on ARCH_APPLE || COMPILE_TEST
29 default ARCH_APPLE
30 help
31 Say y here to enable support for reading eFuses on Apple SoCs
32 such as the M1. These are e.g. used to store factory programmed
33 calibration data required for the PCIe or the USB-C PHY.
34
35 This driver can also be built as a module. If so, the module will
36 be called nvmem-apple-efuses.
37
38config NVMEM_BCM_OCOTP
39 tristate "Broadcom On-Chip OTP Controller support"
40 depends on ARCH_BCM_IPROC || COMPILE_TEST
41 depends on HAS_IOMEM
42 default ARCH_BCM_IPROC
43 help
44 Say y here to enable read/write access to the Broadcom OTP
45 controller.
46
47 This driver can also be built as a module. If so, the module
48 will be called nvmem-bcm-ocotp.
49
50config NVMEM_BRCM_NVRAM
51 tristate "Broadcom's NVRAM support"
52 depends on ARCH_BCM_5301X || COMPILE_TEST
53 depends on HAS_IOMEM
54 help
55 This driver provides support for Broadcom's NVRAM that can be accessed
56 using I/O mapping.
57
c066c1c0
MG
58config NVMEM_IMX_IIM
59 tristate "i.MX IC Identification Module support"
60 depends on ARCH_MXC || COMPILE_TEST
61 help
62 This is a driver for the IC Identification Module (IIM) available on
63 i.MX SoCs, providing access to 4 Kbits of programmable
64 eFuses.
65
66 This driver can also be built as a module. If so, the module
67 will be called nvmem-imx-iim.
68
3edba6b4 69config NVMEM_IMX_OCOTP
dd4c1047
LS
70 tristate "i.MX 6/7/8 On-Chip OTP Controller support"
71 depends on ARCH_MXC || COMPILE_TEST
63c0c076 72 depends on HAS_IOMEM
3edba6b4
PZ
73 help
74 This is a driver for the On-Chip OTP Controller (OCOTP) available on
75 i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
76 eFuses.
77
78 This driver can also be built as a module. If so, the module
79 will be called nvmem-imx-ocotp.
80
67ff708b
PF
81config NVMEM_IMX_OCOTP_SCU
82 tristate "i.MX8 SCU On-Chip OTP Controller support"
83 depends on IMX_SCU
b210fac7 84 depends on HAVE_ARM_SMCCC
67ff708b
PF
85 help
86 This is a driver for the SCU On-Chip OTP Controller (OCOTP)
87 available on i.MX8 SoCs.
88
28fc7c98 89config NVMEM_JZ4780_EFUSE
4a2addc2
PM
90 tristate "JZ4780 EFUSE Memory Support"
91 depends on MACH_INGENIC || COMPILE_TEST
92 depends on HAS_IOMEM
93 depends on OF
94 select REGMAP_MMIO
95 help
96 Say Y here to include support for JZ4780 efuse memory found on
97 all JZ4780 SoC based devices.
98 To compile this driver as a module, choose M here: the module
99 will be called nvmem_jz4780_efuse.
100
9e8f208a
HV
101config NVMEM_LAN9662_OTPC
102 tristate "Microchip LAN9662 OTP controller support"
103 depends on SOC_LAN966 || COMPILE_TEST
104 depends on HAS_IOMEM
105 help
106 This driver enables the OTP controller available on Microchip LAN9662
107 SoCs. It controls the access to the OTP memory connected to it.
108
a06d9e5a
RM
109config NVMEM_LAYERSCAPE_SFP
110 tristate "Layerscape SFP (Security Fuse Processor) support"
111 depends on ARCH_LAYERSCAPE || COMPILE_TEST
112 depends on HAS_IOMEM
113 select REGMAP_MMIO
114 help
115 This driver provides support to read the eFuses on Freescale
116 Layerscape SoC's. For example, the vendor provides a per part
117 unique ID there.
118
119 This driver can also be built as a module. If so, the module
120 will be called layerscape-sfp.
121
f02f8aee
AA
122config NVMEM_LPC18XX_EEPROM
123 tristate "NXP LPC18XX EEPROM Memory Support"
124 depends on ARCH_LPC18XX || COMPILE_TEST
2ce7aed6 125 depends on HAS_IOMEM
f02f8aee
AA
126 help
127 Say Y here to include support for NXP LPC18xx EEPROM memory found in
128 NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
129 To compile this driver as a module, choose M here: the module
130 will be called nvmem_lpc18xx_eeprom.
131
88806daf
JE
132config NVMEM_LPC18XX_OTP
133 tristate "NXP LPC18XX OTP Memory Support"
134 depends on ARCH_LPC18XX || COMPILE_TEST
135 depends on HAS_IOMEM
136 help
137 Say Y here to include support for NXP LPC18xx OTP memory found on
138 all LPC18xx and LPC43xx devices.
139 To compile this driver as a module, choose M here: the module
140 will be called nvmem_lpc18xx_otp.
141
a06d9e5a
RM
142config NVMEM_MESON_EFUSE
143 tristate "Amlogic Meson GX eFuse Support"
144 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
c01e9a11 145 help
a06d9e5a
RM
146 This is a driver to retrieve specific values from the eFuse found on
147 the Amlogic Meson GX SoCs.
c01e9a11
SW
148
149 This driver can also be built as a module. If so, the module
a06d9e5a
RM
150 will be called nvmem_meson_efuse.
151
152config NVMEM_MESON_MX_EFUSE
153 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
154 depends on ARCH_MESON || COMPILE_TEST
155 help
156 This is a driver to retrieve specific values from the eFuse found on
157 the Amlogic Meson6, Meson8 and Meson8b SoCs.
158
159 This driver can also be built as a module. If so, the module
160 will be called nvmem_meson_mx_efuse.
161
162config NVMEM_MICROCHIP_OTPC
163 tristate "Microchip OTPC support"
164 depends on ARCH_AT91 || COMPILE_TEST
165 help
166 This driver enable the OTP controller available on Microchip SAMA7G5
fb817c4e 167 SoCs. It controls the access to the OTP memory connected to it.
c01e9a11 168
28fc7c98 169config NVMEM_MTK_EFUSE
4c7e4fe3
ACC
170 tristate "Mediatek SoCs EFUSE support"
171 depends on ARCH_MEDIATEK || COMPILE_TEST
2ce7aed6 172 depends on HAS_IOMEM
4c7e4fe3
ACC
173 help
174 This is a driver to access hardware related data like sensor
175 calibration, HDMI impedance etc.
176
177 This driver can also be built as a module. If so, the module
178 will be called efuse-mtk.
179
a06d9e5a
RM
180config NVMEM_MXS_OCOTP
181 tristate "Freescale MXS On-Chip OTP Memory Support"
182 depends on ARCH_MXS || COMPILE_TEST
183 depends on HAS_IOMEM
98830350 184 help
a06d9e5a
RM
185 If you say Y here, you will get readonly access to the
186 One Time Programmable memory pages that are stored
187 on the Freescale i.MX23/i.MX28 processor.
188
189 This driver can also be built as a module. If so, the module
190 will be called nvmem-mxs-ocotp.
98830350 191
3683b761
EGP
192config NVMEM_NINTENDO_OTP
193 tristate "Nintendo Wii and Wii U OTP Support"
7af526c7 194 depends on WII || COMPILE_TEST
3683b761
EGP
195 help
196 This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
197
198 This memory contains common and per-console keys, signatures and
199 related data required to access peripherals.
200
201 This driver can also be built as a module. If so, the module
202 will be called nvmem-nintendo-otp.
203
28fc7c98 204config NVMEM_QCOM_QFPROM
4ab11996
SK
205 tristate "QCOM QFPROM Support"
206 depends on ARCH_QCOM || COMPILE_TEST
5685e244 207 depends on HAS_IOMEM
4ab11996
SK
208 help
209 Say y here to enable QFPROM support. The QFPROM provides access
210 functions for QFPROM data to rest of the drivers via nvmem interface.
211
212 This driver can also be built as a module. If so, the module
213 will be called nvmem_qfprom.
214
a06d9e5a
RM
215config NVMEM_RAVE_SP_EEPROM
216 tristate "Rave SP EEPROM Support"
217 depends on RAVE_SP_CORE
40ce9798 218 help
a06d9e5a
RM
219 Say y here to enable Rave SP EEPROM support.
220
221config NVMEM_RMEM
222 tristate "Reserved Memory Based Driver Support"
223 depends on HAS_IOMEM
224 help
225 This driver maps reserved memory into an nvmem device. It might be
226 useful to expose information left by firmware in memory.
227
228 This driver can also be built as a module. If so, the module
229 will be called nvmem-rmem.
40ce9798 230
28fc7c98 231config NVMEM_ROCKCHIP_EFUSE
03a69568
Z
232 tristate "Rockchip eFuse Support"
233 depends on ARCH_ROCKCHIP || COMPILE_TEST
5685e244 234 depends on HAS_IOMEM
03a69568
Z
235 help
236 This is a simple drive to dump specified values of Rockchip SoC
237 from eFuse, such as cpu-leakage.
238
239 This driver can also be built as a module. If so, the module
240 will be called nvmem_rockchip_efuse.
241
28fc7c98 242config NVMEM_ROCKCHIP_OTP
755864fe
FX
243 tristate "Rockchip OTP controller support"
244 depends on ARCH_ROCKCHIP || COMPILE_TEST
245 depends on HAS_IOMEM
246 help
247 This is a simple drive to dump specified values of Rockchip SoC
248 from otp, such as cpu-leakage.
249
250 This driver can also be built as a module. If so, the module
251 will be called nvmem_rockchip_otp.
252
a06d9e5a
RM
253config NVMEM_SC27XX_EFUSE
254 tristate "Spreadtrum SC27XX eFuse Support"
255 depends on MFD_SC27XX_PMIC || COMPILE_TEST
5685e244 256 depends on HAS_IOMEM
22dbdb7c 257 help
a06d9e5a
RM
258 This is a simple driver to dump specified values of Spreadtrum
259 SC27XX PMICs from eFuse.
8caef1fa
MB
260
261 This driver can also be built as a module. If so, the module
a06d9e5a 262 will be called nvmem-sc27xx-efuse.
8caef1fa 263
988437ae
OR
264config NVMEM_SNVS_LPGPR
265 tristate "Support for Low Power General Purpose Register"
2d1c1939 266 depends on ARCH_MXC || COMPILE_TEST
988437ae
OR
267 help
268 This is a driver for Low Power General Purpose Register (LPGPR) available on
80b820ca 269 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
988437ae
OR
270
271 This driver can also be built as a module. If so, the module
272 will be called nvmem-snvs-lpgpr.
273
a06d9e5a
RM
274config NVMEM_SPMI_SDAM
275 tristate "SPMI SDAM Support"
276 depends on SPMI
4640fa18 277 help
a06d9e5a
RM
278 This driver supports the Shared Direct Access Memory Module on
279 Qualcomm Technologies, Inc. PMICs. It provides the clients
280 an interface to read/write to the SDAM module's shared memory.
4640fa18 281
28fc7c98 282config NVMEM_SPRD_EFUSE
096030e7
FL
283 tristate "Spreadtrum SoC eFuse Support"
284 depends on ARCH_SPRD || COMPILE_TEST
285 depends on HAS_IOMEM
286 help
287 This is a simple driver to dump specified values of Spreadtrum
288 SoCs from eFuse.
289
290 This driver can also be built as a module. If so, the module
291 will be called nvmem-sprd-efuse.
292
6a0bc352 293config NVMEM_STM32_BSEC_OPTEE_TA
1dc7e37b 294 def_bool NVMEM_STM32_ROMEM && OPTEE
6a0bc352
PD
295 help
296 Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE
297 trusted application STM32MP BSEC.
298
299 This library is a used by stm32-romem driver or included in the module
300 called nvmem-stm32-romem.
301
a06d9e5a
RM
302config NVMEM_STM32_ROMEM
303 tristate "STMicroelectronics STM32 factory-programmed memory support"
304 depends on ARCH_STM32 || COMPILE_TEST
1dc7e37b 305 depends on OPTEE || !OPTEE
f7845101 306 help
a06d9e5a
RM
307 Say y here to enable read-only access for STMicroelectronics STM32
308 factory-programmed memory area.
f7845101
MW
309
310 This driver can also be built as a module. If so, the module
a06d9e5a 311 will be called nvmem-stm32-romem.
f7845101 312
8747ec2e
VS
313config NVMEM_SUNPLUS_OCOTP
314 tristate "Sunplus SoC OTP support"
315 depends on SOC_SP7021 || COMPILE_TEST
316 depends on HAS_IOMEM
317 help
318 This is a driver for the On-chip OTP controller (OCOTP) available
319 on Sunplus SoCs. It provides access to 128 bytes of one-time
320 programmable eFuse.
321
322 This driver can also be built as a module. If so, the module
323 will be called nvmem-sunplus-ocotp.
324
a06d9e5a
RM
325config NVMEM_SUNXI_SID
326 tristate "Allwinner SoCs SID support"
327 depends on ARCH_SUNXI
b6b7ef93 328 help
a06d9e5a
RM
329 This is a driver for the 'security ID' available on various Allwinner
330 devices.
b6b7ef93 331
a06d9e5a
RM
332 This driver can also be built as a module. If so, the module
333 will be called nvmem_sunxi_sid.
b6b7ef93 334
d5542923
RM
335config NVMEM_U_BOOT_ENV
336 tristate "U-Boot environment variables support"
337 depends on OF && MTD
338 select CRC32
339 help
340 U-Boot stores its setup as environment variables. This driver adds
341 support for verifying & exporting such data. It also exposes variables
342 as NVMEM cells so they can be referenced by other drivers.
343
344 Currently this drivers works only with env variables on top of MTD.
345
346 If compiled as module it will be called nvmem_u-boot-env.
347
a06d9e5a
RM
348config NVMEM_UNIPHIER_EFUSE
349 tristate "UniPhier SoCs eFuse support"
350 depends on ARCH_UNIPHIER || COMPILE_TEST
351 depends on HAS_IOMEM
352 help
353 This is a simple driver to dump specified values of UniPhier SoC
354 from eFuse.
355
356 This driver can also be built as a module. If so, the module
357 will be called nvmem-uniphier-efuse.
358
359config NVMEM_VF610_OCOTP
360 tristate "VF610 SoC OCOTP support"
361 depends on SOC_VF610 || COMPILE_TEST
362 depends on HAS_IOMEM
363 help
364 This is a driver for the 'OCOTP' peripheral available on Vybrid
365 devices like VF5xx and VF6xx.
366
367 This driver can also be build as a module. If so, the module will
368 be called nvmem-vf610-ocotp.
369
370config NVMEM_ZYNQMP
371 bool "Xilinx ZYNQMP SoC nvmem firmware support"
372 depends on ARCH_ZYNQMP
373 help
374 This is a driver to access hardware related data like
375 soc revision, IDCODE... etc by using the firmware
376 interface.
377
378 If sure, say yes. If unsure, say no.
379
4ab11996 380endif