Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / drivers / nvmem / Kconfig
blob8671b7c974b933e147154bb40b5d41b5730518d2
1 # SPDX-License-Identifier: GPL-2.0-only
2 menuconfig NVMEM
3         bool "NVMEM Support"
4         imply NVMEM_LAYOUTS
5         help
6           Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
8           This framework is designed to provide a generic interface to NVMEM
9           from both the Linux Kernel and the userspace.
11           If unsure, say no.
13 if NVMEM
15 config NVMEM_SYSFS
16         bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
17         depends on SYSFS
18         default y
19         help
20          Say Y here to add a sysfs interface for NVMEM.
22          This interface is mostly used by userspace applications to
23          read/write directly into nvmem.
25 # Layouts
27 source "drivers/nvmem/layouts/Kconfig"
29 # Devices
31 config NVMEM_APPLE_EFUSES
32         tristate "Apple eFuse support"
33         depends on ARCH_APPLE || COMPILE_TEST
34         default ARCH_APPLE
35         help
36           Say y here to enable support for reading eFuses on Apple SoCs
37           such as the M1. These are e.g. used to store factory programmed
38           calibration data required for the PCIe or the USB-C PHY.
40           This driver can also be built as a module. If so, the module will
41           be called nvmem-apple-efuses.
43 config NVMEM_BCM_OCOTP
44         tristate "Broadcom On-Chip OTP Controller support"
45         depends on ARCH_BCM_IPROC || COMPILE_TEST
46         depends on HAS_IOMEM
47         default ARCH_BCM_IPROC
48         help
49           Say y here to enable read/write access to the Broadcom OTP
50           controller.
52           This driver can also be built as a module. If so, the module
53           will be called nvmem-bcm-ocotp.
55 config NVMEM_BRCM_NVRAM
56         tristate "Broadcom's NVRAM support"
57         depends on ARCH_BCM_5301X || COMPILE_TEST
58         depends on HAS_IOMEM
59         select GENERIC_NET_UTILS
60         help
61           This driver provides support for Broadcom's NVRAM that can be accessed
62           using I/O mapping.
64 config NVMEM_IMX_IIM
65         tristate "i.MX IC Identification Module support"
66         depends on ARCH_MXC || COMPILE_TEST
67         help
68           This is a driver for the IC Identification Module (IIM) available on
69           i.MX SoCs, providing access to 4 Kbits of programmable
70           eFuses.
72           This driver can also be built as a module. If so, the module
73           will be called nvmem-imx-iim.
75 config NVMEM_IMX_OCOTP
76         tristate "i.MX 6/7/8 On-Chip OTP Controller support"
77         depends on ARCH_MXC || COMPILE_TEST
78         depends on HAS_IOMEM
79         help
80           This is a driver for the On-Chip OTP Controller (OCOTP) available on
81           i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
82           eFuses.
84           This driver can also be built as a module. If so, the module
85           will be called nvmem-imx-ocotp.
87 config NVMEM_IMX_OCOTP_ELE
88         tristate "i.MX On-Chip OTP Controller support"
89         depends on ARCH_MXC || COMPILE_TEST
90         depends on HAS_IOMEM
91         depends on OF
92         help
93           This is a driver for the On-Chip OTP Controller (OCOTP)
94           available on i.MX SoCs which has ELE.
96 config NVMEM_IMX_OCOTP_SCU
97         tristate "i.MX8 SCU On-Chip OTP Controller support"
98         depends on IMX_SCU
99         depends on HAVE_ARM_SMCCC
100         help
101           This is a driver for the SCU On-Chip OTP Controller (OCOTP)
102           available on i.MX8 SoCs.
104 config NVMEM_JZ4780_EFUSE
105         tristate "JZ4780 EFUSE Memory Support"
106         depends on MACH_INGENIC || COMPILE_TEST
107         depends on HAS_IOMEM
108         depends on OF
109         select REGMAP_MMIO
110         help
111           Say Y here to include support for JZ4780 efuse memory found on
112           all JZ4780 SoC based devices.
113           To compile this driver as a module, choose M here: the module
114           will be called nvmem_jz4780_efuse.
116 config NVMEM_LAN9662_OTPC
117         tristate "Microchip LAN9662 OTP controller support"
118         depends on SOC_LAN966 || COMPILE_TEST
119         depends on HAS_IOMEM
120         help
121           This driver enables the OTP controller available on Microchip LAN9662
122           SoCs. It controls the access to the OTP memory connected to it.
124 config NVMEM_LAYERSCAPE_SFP
125         tristate "Layerscape SFP (Security Fuse Processor) support"
126         depends on ARCH_LAYERSCAPE || COMPILE_TEST
127         depends on HAS_IOMEM
128         select REGMAP_MMIO
129         help
130           This driver provides support to read the eFuses on Freescale
131           Layerscape SoC's. For example, the vendor provides a per part
132           unique ID there.
134           This driver can also be built as a module. If so, the module
135           will be called layerscape-sfp.
137 config NVMEM_LPC18XX_EEPROM
138         tristate "NXP LPC18XX EEPROM Memory Support"
139         depends on ARCH_LPC18XX || COMPILE_TEST
140         depends on HAS_IOMEM
141         help
142           Say Y here to include support for NXP LPC18xx EEPROM memory found in
143           NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
144           To compile this driver as a module, choose M here: the module
145           will be called nvmem_lpc18xx_eeprom.
147 config NVMEM_LPC18XX_OTP
148         tristate "NXP LPC18XX OTP Memory Support"
149         depends on ARCH_LPC18XX || COMPILE_TEST
150         depends on HAS_IOMEM
151         help
152           Say Y here to include support for NXP LPC18xx OTP memory found on
153           all LPC18xx and LPC43xx devices.
154           To compile this driver as a module, choose M here: the module
155           will be called nvmem_lpc18xx_otp.
157 config NVMEM_MESON_EFUSE
158         tristate "Amlogic Meson GX eFuse Support"
159         depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
160         help
161           This is a driver to retrieve specific values from the eFuse found on
162           the Amlogic Meson GX SoCs.
164           This driver can also be built as a module. If so, the module
165           will be called nvmem_meson_efuse.
167 config NVMEM_MESON_MX_EFUSE
168         tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
169         depends on ARCH_MESON || COMPILE_TEST
170         help
171           This is a driver to retrieve specific values from the eFuse found on
172           the Amlogic Meson6, Meson8 and Meson8b SoCs.
174           This driver can also be built as a module. If so, the module
175           will be called nvmem_meson_mx_efuse.
177 config NVMEM_MICROCHIP_OTPC
178         tristate "Microchip OTPC support"
179         depends on ARCH_AT91 || COMPILE_TEST
180         help
181           This driver enable the OTP controller available on Microchip SAMA7G5
182           SoCs. It controls the access to the OTP memory connected to it.
184 config NVMEM_MTK_EFUSE
185         tristate "Mediatek SoCs EFUSE support"
186         depends on ARCH_MEDIATEK || COMPILE_TEST
187         depends on HAS_IOMEM
188         help
189           This is a driver to access hardware related data like sensor
190           calibration, HDMI impedance etc.
192           This driver can also be built as a module. If so, the module
193           will be called efuse-mtk.
195 config NVMEM_MXS_OCOTP
196         tristate "Freescale MXS On-Chip OTP Memory Support"
197         depends on ARCH_MXS || COMPILE_TEST
198         depends on HAS_IOMEM
199         help
200           If you say Y here, you will get readonly access to the
201           One Time Programmable memory pages that are stored
202           on the Freescale i.MX23/i.MX28 processor.
204           This driver can also be built as a module. If so, the module
205           will be called nvmem-mxs-ocotp.
207 config NVMEM_NINTENDO_OTP
208         tristate "Nintendo Wii and Wii U OTP Support"
209         depends on WII || COMPILE_TEST
210         help
211           This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
213           This memory contains common and per-console keys, signatures and
214           related data required to access peripherals.
216           This driver can also be built as a module. If so, the module
217           will be called nvmem-nintendo-otp.
219 config NVMEM_QCOM_QFPROM
220         tristate "QCOM QFPROM Support"
221         depends on ARCH_QCOM || COMPILE_TEST
222         depends on HAS_IOMEM
223         help
224           Say y here to enable QFPROM support. The QFPROM provides access
225           functions for QFPROM data to rest of the drivers via nvmem interface.
227           This driver can also be built as a module. If so, the module
228           will be called nvmem_qfprom.
230 config NVMEM_QCOM_SEC_QFPROM
231         tristate "QCOM SECURE QFPROM Support"
232         depends on ARCH_QCOM || COMPILE_TEST
233         depends on HAS_IOMEM
234         depends on OF
235         select QCOM_SCM
236         help
237           Say y here to enable secure QFPROM support. The secure QFPROM provides access
238           functions for QFPROM data to rest of the drivers via nvmem interface.
240           This driver can also be built as a module. If so, the module will be called
241           nvmem_sec_qfprom.
243 config NVMEM_RAVE_SP_EEPROM
244         tristate "Rave SP EEPROM Support"
245         depends on RAVE_SP_CORE
246         help
247           Say y here to enable Rave SP EEPROM support.
249 config NVMEM_RCAR_EFUSE
250         tristate "Renesas R-Car Gen4 E-FUSE support"
251         depends on (ARCH_RENESAS && ARM64) || COMPILE_TEST
252         depends on NVMEM
253         help
254           Enable support for reading the fuses in the E-FUSE or OTP
255           non-volatile memory block on Renesas R-Car Gen4 SoCs.
257           This driver can also be built as a module. If so, the module
258           will be called nvmem-rcar-efuse.
260 config NVMEM_RMEM
261         tristate "Reserved Memory Based Driver Support"
262         depends on HAS_IOMEM
263         help
264           This driver maps reserved memory into an nvmem device. It might be
265           useful to expose information left by firmware in memory.
267           This driver can also be built as a module. If so, the module
268           will be called nvmem-rmem.
270 config NVMEM_ROCKCHIP_EFUSE
271         tristate "Rockchip eFuse Support"
272         depends on ARCH_ROCKCHIP || COMPILE_TEST
273         depends on HAS_IOMEM
274         help
275           This is a simple driver to dump specified values of Rockchip SoC
276           from eFuse, such as cpu-leakage.
278           This driver can also be built as a module. If so, the module
279           will be called nvmem_rockchip_efuse.
281 config NVMEM_ROCKCHIP_OTP
282         tristate "Rockchip OTP controller support"
283         depends on ARCH_ROCKCHIP || COMPILE_TEST
284         depends on HAS_IOMEM
285         help
286           This is a simple driver to dump specified values of Rockchip SoC
287           from OTP, such as cpu-leakage.
289           This driver can also be built as a module. If so, the module
290           will be called nvmem_rockchip_otp.
292 config NVMEM_SC27XX_EFUSE
293         tristate "Spreadtrum SC27XX eFuse Support"
294         depends on MFD_SC27XX_PMIC || COMPILE_TEST
295         depends on HAS_IOMEM
296         help
297           This is a simple driver to dump specified values of Spreadtrum
298           SC27XX PMICs from eFuse.
300           This driver can also be built as a module. If so, the module
301           will be called nvmem-sc27xx-efuse.
303 config NVMEM_SNVS_LPGPR
304         tristate "Support for Low Power General Purpose Register"
305         depends on ARCH_MXC || COMPILE_TEST
306         help
307           This is a driver for Low Power General Purpose Register (LPGPR) available on
308           i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
310           This driver can also be built as a module. If so, the module
311           will be called nvmem-snvs-lpgpr.
313 config NVMEM_SPMI_SDAM
314         tristate "SPMI SDAM Support"
315         depends on SPMI
316         help
317           This driver supports the Shared Direct Access Memory Module on
318           Qualcomm Technologies, Inc. PMICs. It provides the clients
319           an interface to read/write to the SDAM module's shared memory.
321 config NVMEM_SPRD_EFUSE
322         tristate "Spreadtrum SoC eFuse Support"
323         depends on ARCH_SPRD || COMPILE_TEST
324         depends on HAS_IOMEM
325         help
326           This is a simple driver to dump specified values of Spreadtrum
327           SoCs from eFuse.
329           This driver can also be built as a module. If so, the module
330           will be called nvmem-sprd-efuse.
332 config NVMEM_STM32_BSEC_OPTEE_TA
333         def_bool NVMEM_STM32_ROMEM && OPTEE
334         help
335           Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE
336           trusted application STM32MP BSEC.
338           This library is a used by stm32-romem driver or included in the module
339           called nvmem-stm32-romem.
341 config NVMEM_STM32_ROMEM
342         tristate "STMicroelectronics STM32 factory-programmed memory support"
343         depends on ARCH_STM32 || COMPILE_TEST
344         depends on OPTEE || !OPTEE
345         help
346           Say y here to enable read-only access for STMicroelectronics STM32
347           factory-programmed memory area.
349           This driver can also be built as a module. If so, the module
350           will be called nvmem-stm32-romem.
352 config NVMEM_SUNPLUS_OCOTP
353         tristate "Sunplus SoC OTP support"
354         depends on SOC_SP7021 || COMPILE_TEST
355         depends on HAS_IOMEM
356         help
357           This is a driver for the On-chip OTP controller (OCOTP) available
358           on Sunplus SoCs. It provides access to 128 bytes of one-time
359           programmable eFuse.
361           This driver can also be built as a module. If so, the module
362           will be called nvmem-sunplus-ocotp.
364 config NVMEM_SUNXI_SID
365         tristate "Allwinner SoCs SID support"
366         depends on ARCH_SUNXI
367         help
368           This is a driver for the 'security ID' available on various Allwinner
369           devices.
371           This driver can also be built as a module. If so, the module
372           will be called nvmem_sunxi_sid.
374 config NVMEM_U_BOOT_ENV
375         tristate "U-Boot environment variables support"
376         depends on OF && MTD
377         select NVMEM_LAYOUT_U_BOOT_ENV
378         help
379           U-Boot stores its setup as environment variables. This driver adds
380           support for verifying & exporting such data. It also exposes variables
381           as NVMEM cells so they can be referenced by other drivers.
383           Currently this drivers works only with env variables on top of MTD.
385           If compiled as module it will be called nvmem_u-boot-env.
387 config NVMEM_UNIPHIER_EFUSE
388         tristate "UniPhier SoCs eFuse support"
389         depends on ARCH_UNIPHIER || COMPILE_TEST
390         depends on HAS_IOMEM
391         help
392           This is a simple driver to dump specified values of UniPhier SoC
393           from eFuse.
395           This driver can also be built as a module. If so, the module
396           will be called nvmem-uniphier-efuse.
398 config NVMEM_VF610_OCOTP
399         tristate "VF610 SoC OCOTP support"
400         depends on SOC_VF610 || COMPILE_TEST
401         depends on HAS_IOMEM
402         help
403           This is a driver for the 'OCOTP' peripheral available on Vybrid
404           devices like VF5xx and VF6xx.
406           This driver can also be build as a module. If so, the module will
407           be called nvmem-vf610-ocotp.
409 config NVMEM_ZYNQMP
410         tristate "Xilinx ZYNQMP SoC nvmem firmware support"
411         depends on ARCH_ZYNQMP
412         help
413           This is a driver to access hardware related data like
414           soc revision, IDCODE... etc by using the firmware
415           interface.
417           If sure, say yes. If unsure, say no.
419 config NVMEM_QORIQ_EFUSE
420         tristate "NXP QorIQ eFuse support"
421         depends on PPC_85xx || COMPILE_TEST
422         depends on HAS_IOMEM
423         help
424           This driver provides read support for the eFuses (SFP) on NXP QorIQ
425           series SoC's. This includes secure boot settings, the globally unique
426           NXP ID 'FUIDR' and the OEM unique ID 'OUIDR'.
428           This driver can also be built as a module. If so, the module
429           will be called nvmem_qoriq_efuse.
431 endif