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