Merge tag 'mailbox-v6.6' of git://git.linaro.org/landing-teams/working/fujitsu/integr...
[platform/kernel/linux-rpi.git] / drivers / nvmem / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 menuconfig NVMEM
3         bool "NVMEM Support"
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
10           If unsure, say no.
11
12 if NVMEM
13
14 config 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
24 # Layouts
25
26 source "drivers/nvmem/layouts/Kconfig"
27
28 # Devices
29
30 config 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
42 config 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
54 config NVMEM_BRCM_NVRAM
55         tristate "Broadcom's NVRAM support"
56         depends on ARCH_BCM_5301X || COMPILE_TEST
57         depends on HAS_IOMEM
58         select GENERIC_NET_UTILS
59         help
60           This driver provides support for Broadcom's NVRAM that can be accessed
61           using I/O mapping.
62
63 config 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
74 config NVMEM_IMX_OCOTP
75         tristate "i.MX 6/7/8 On-Chip OTP Controller support"
76         depends on ARCH_MXC || COMPILE_TEST
77         depends on HAS_IOMEM
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
86 config 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
95 config NVMEM_IMX_OCOTP_SCU
96         tristate "i.MX8 SCU On-Chip OTP Controller support"
97         depends on IMX_SCU
98         depends on HAVE_ARM_SMCCC
99         help
100           This is a driver for the SCU On-Chip OTP Controller (OCOTP)
101           available on i.MX8 SoCs.
102
103 config NVMEM_JZ4780_EFUSE
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
115 config 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
123 config 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
136 config NVMEM_LPC18XX_EEPROM
137         tristate "NXP LPC18XX EEPROM Memory Support"
138         depends on ARCH_LPC18XX || COMPILE_TEST
139         depends on HAS_IOMEM
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
146 config 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
156 config NVMEM_MESON_EFUSE
157         tristate "Amlogic Meson GX eFuse Support"
158         depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
159         help
160           This is a driver to retrieve specific values from the eFuse found on
161           the Amlogic Meson GX SoCs.
162
163           This driver can also be built as a module. If so, the module
164           will be called nvmem_meson_efuse.
165
166 config 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
176 config 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
181           SoCs. It controls the access to the OTP memory connected to it.
182
183 config NVMEM_MTK_EFUSE
184         tristate "Mediatek SoCs EFUSE support"
185         depends on ARCH_MEDIATEK || COMPILE_TEST
186         depends on HAS_IOMEM
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
194 config NVMEM_MXS_OCOTP
195         tristate "Freescale MXS On-Chip OTP Memory Support"
196         depends on ARCH_MXS || COMPILE_TEST
197         depends on HAS_IOMEM
198         help
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.
205
206 config NVMEM_NINTENDO_OTP
207         tristate "Nintendo Wii and Wii U OTP Support"
208         depends on WII || COMPILE_TEST
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
218 config NVMEM_QCOM_QFPROM
219         tristate "QCOM QFPROM Support"
220         depends on ARCH_QCOM || COMPILE_TEST
221         depends on HAS_IOMEM
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
229 config NVMEM_QCOM_SEC_QFPROM
230         tristate "QCOM SECURE QFPROM Support"
231         depends on ARCH_QCOM || COMPILE_TEST
232         depends on HAS_IOMEM
233         depends on OF
234         select QCOM_SCM
235         help
236           Say y here to enable secure QFPROM support. The secure QFPROM provides access
237           functions for QFPROM data to rest of the drivers via nvmem interface.
238
239           This driver can also be built as a module. If so, the module will be called
240           nvmem_sec_qfprom.
241
242 config NVMEM_RAVE_SP_EEPROM
243         tristate "Rave SP EEPROM Support"
244         depends on RAVE_SP_CORE
245         help
246           Say y here to enable Rave SP EEPROM support.
247
248 config NVMEM_RMEM
249         tristate "Reserved Memory Based Driver Support"
250         depends on HAS_IOMEM
251         help
252           This driver maps reserved memory into an nvmem device. It might be
253           useful to expose information left by firmware in memory.
254
255           This driver can also be built as a module. If so, the module
256           will be called nvmem-rmem.
257
258 config NVMEM_ROCKCHIP_EFUSE
259         tristate "Rockchip eFuse Support"
260         depends on ARCH_ROCKCHIP || COMPILE_TEST
261         depends on HAS_IOMEM
262         help
263           This is a simple driver to dump specified values of Rockchip SoC
264           from eFuse, such as cpu-leakage.
265
266           This driver can also be built as a module. If so, the module
267           will be called nvmem_rockchip_efuse.
268
269 config NVMEM_ROCKCHIP_OTP
270         tristate "Rockchip OTP controller support"
271         depends on ARCH_ROCKCHIP || COMPILE_TEST
272         depends on HAS_IOMEM
273         help
274           This is a simple driver to dump specified values of Rockchip SoC
275           from OTP, such as cpu-leakage.
276
277           This driver can also be built as a module. If so, the module
278           will be called nvmem_rockchip_otp.
279
280 config NVMEM_SC27XX_EFUSE
281         tristate "Spreadtrum SC27XX eFuse Support"
282         depends on MFD_SC27XX_PMIC || COMPILE_TEST
283         depends on HAS_IOMEM
284         help
285           This is a simple driver to dump specified values of Spreadtrum
286           SC27XX PMICs from eFuse.
287
288           This driver can also be built as a module. If so, the module
289           will be called nvmem-sc27xx-efuse.
290
291 config NVMEM_SNVS_LPGPR
292         tristate "Support for Low Power General Purpose Register"
293         depends on ARCH_MXC || COMPILE_TEST
294         help
295           This is a driver for Low Power General Purpose Register (LPGPR) available on
296           i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
297
298           This driver can also be built as a module. If so, the module
299           will be called nvmem-snvs-lpgpr.
300
301 config NVMEM_SPMI_SDAM
302         tristate "SPMI SDAM Support"
303         depends on SPMI
304         help
305           This driver supports the Shared Direct Access Memory Module on
306           Qualcomm Technologies, Inc. PMICs. It provides the clients
307           an interface to read/write to the SDAM module's shared memory.
308
309 config NVMEM_SPRD_EFUSE
310         tristate "Spreadtrum SoC eFuse Support"
311         depends on ARCH_SPRD || COMPILE_TEST
312         depends on HAS_IOMEM
313         help
314           This is a simple driver to dump specified values of Spreadtrum
315           SoCs from eFuse.
316
317           This driver can also be built as a module. If so, the module
318           will be called nvmem-sprd-efuse.
319
320 config NVMEM_STM32_BSEC_OPTEE_TA
321         def_bool NVMEM_STM32_ROMEM && OPTEE
322         help
323           Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE
324           trusted application STM32MP BSEC.
325
326           This library is a used by stm32-romem driver or included in the module
327           called nvmem-stm32-romem.
328
329 config NVMEM_STM32_ROMEM
330         tristate "STMicroelectronics STM32 factory-programmed memory support"
331         depends on ARCH_STM32 || COMPILE_TEST
332         depends on OPTEE || !OPTEE
333         help
334           Say y here to enable read-only access for STMicroelectronics STM32
335           factory-programmed memory area.
336
337           This driver can also be built as a module. If so, the module
338           will be called nvmem-stm32-romem.
339
340 config NVMEM_SUNPLUS_OCOTP
341         tristate "Sunplus SoC OTP support"
342         depends on SOC_SP7021 || COMPILE_TEST
343         depends on HAS_IOMEM
344         help
345           This is a driver for the On-chip OTP controller (OCOTP) available
346           on Sunplus SoCs. It provides access to 128 bytes of one-time
347           programmable eFuse.
348
349           This driver can also be built as a module. If so, the module
350           will be called nvmem-sunplus-ocotp.
351
352 config NVMEM_SUNXI_SID
353         tristate "Allwinner SoCs SID support"
354         depends on ARCH_SUNXI
355         help
356           This is a driver for the 'security ID' available on various Allwinner
357           devices.
358
359           This driver can also be built as a module. If so, the module
360           will be called nvmem_sunxi_sid.
361
362 config NVMEM_U_BOOT_ENV
363         tristate "U-Boot environment variables support"
364         depends on OF && MTD
365         select CRC32
366         select GENERIC_NET_UTILS
367         help
368           U-Boot stores its setup as environment variables. This driver adds
369           support for verifying & exporting such data. It also exposes variables
370           as NVMEM cells so they can be referenced by other drivers.
371
372           Currently this drivers works only with env variables on top of MTD.
373
374           If compiled as module it will be called nvmem_u-boot-env.
375
376 config NVMEM_UNIPHIER_EFUSE
377         tristate "UniPhier SoCs eFuse support"
378         depends on ARCH_UNIPHIER || COMPILE_TEST
379         depends on HAS_IOMEM
380         help
381           This is a simple driver to dump specified values of UniPhier SoC
382           from eFuse.
383
384           This driver can also be built as a module. If so, the module
385           will be called nvmem-uniphier-efuse.
386
387 config NVMEM_VF610_OCOTP
388         tristate "VF610 SoC OCOTP support"
389         depends on SOC_VF610 || COMPILE_TEST
390         depends on HAS_IOMEM
391         help
392           This is a driver for the 'OCOTP' peripheral available on Vybrid
393           devices like VF5xx and VF6xx.
394
395           This driver can also be build as a module. If so, the module will
396           be called nvmem-vf610-ocotp.
397
398 config NVMEM_ZYNQMP
399         tristate "Xilinx ZYNQMP SoC nvmem firmware support"
400         depends on ARCH_ZYNQMP
401         help
402           This is a driver to access hardware related data like
403           soc revision, IDCODE... etc by using the firmware
404           interface.
405
406           If sure, say yes. If unsure, say no.
407
408 config NVMEM_QORIQ_EFUSE
409         tristate "NXP QorIQ eFuse support"
410         depends on PPC_85xx || COMPILE_TEST
411         depends on HAS_IOMEM
412         help
413           This driver provides read support for the eFuses (SFP) on NXP QorIQ
414           series SoC's. This includes secure boot settings, the globally unique
415           NXP ID 'FUIDR' and the OEM unique ID 'OUIDR'.
416
417           This driver can also be built as a module. If so, the module
418           will be called nvmem_qoriq_efuse.
419
420 endif