Merge tag 'for-6.1-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave...
[platform/kernel/linux-starfive.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 # Devices
25
26 config 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
38 config 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
50 config 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
58 config 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
69 config NVMEM_IMX_OCOTP
70         tristate "i.MX 6/7/8 On-Chip OTP Controller support"
71         depends on ARCH_MXC || COMPILE_TEST
72         depends on HAS_IOMEM
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
81 config NVMEM_IMX_OCOTP_SCU
82         tristate "i.MX8 SCU On-Chip OTP Controller support"
83         depends on IMX_SCU
84         depends on HAVE_ARM_SMCCC
85         help
86           This is a driver for the SCU On-Chip OTP Controller (OCOTP)
87           available on i.MX8 SoCs.
88
89 config NVMEM_JZ4780_EFUSE
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
101 config 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
109 config 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
122 config NVMEM_LPC18XX_EEPROM
123         tristate "NXP LPC18XX EEPROM Memory Support"
124         depends on ARCH_LPC18XX || COMPILE_TEST
125         depends on HAS_IOMEM
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
132 config 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
142 config NVMEM_MESON_EFUSE
143         tristate "Amlogic Meson GX eFuse Support"
144         depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
145         help
146           This is a driver to retrieve specific values from the eFuse found on
147           the Amlogic Meson GX SoCs.
148
149           This driver can also be built as a module. If so, the module
150           will be called nvmem_meson_efuse.
151
152 config 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
162 config 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
167           SoCs. It controlls the access to the OTP memory connected to it.
168
169 config NVMEM_MTK_EFUSE
170         tristate "Mediatek SoCs EFUSE support"
171         depends on ARCH_MEDIATEK || COMPILE_TEST
172         depends on HAS_IOMEM
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
180 config NVMEM_MXS_OCOTP
181         tristate "Freescale MXS On-Chip OTP Memory Support"
182         depends on ARCH_MXS || COMPILE_TEST
183         depends on HAS_IOMEM
184         help
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.
191
192 config NVMEM_NINTENDO_OTP
193         tristate "Nintendo Wii and Wii U OTP Support"
194         depends on WII || COMPILE_TEST
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
204 config NVMEM_QCOM_QFPROM
205         tristate "QCOM QFPROM Support"
206         depends on ARCH_QCOM || COMPILE_TEST
207         depends on HAS_IOMEM
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
215 config NVMEM_RAVE_SP_EEPROM
216         tristate "Rave SP EEPROM Support"
217         depends on RAVE_SP_CORE
218         help
219           Say y here to enable Rave SP EEPROM support.
220
221 config 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.
230
231 config NVMEM_ROCKCHIP_EFUSE
232         tristate "Rockchip eFuse Support"
233         depends on ARCH_ROCKCHIP || COMPILE_TEST
234         depends on HAS_IOMEM
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
242 config NVMEM_ROCKCHIP_OTP
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
253 config NVMEM_SC27XX_EFUSE
254         tristate "Spreadtrum SC27XX eFuse Support"
255         depends on MFD_SC27XX_PMIC || COMPILE_TEST
256         depends on HAS_IOMEM
257         help
258           This is a simple driver to dump specified values of Spreadtrum
259           SC27XX PMICs from eFuse.
260
261           This driver can also be built as a module. If so, the module
262           will be called nvmem-sc27xx-efuse.
263
264 config NVMEM_SNVS_LPGPR
265         tristate "Support for Low Power General Purpose Register"
266         depends on ARCH_MXC || COMPILE_TEST
267         help
268           This is a driver for Low Power General Purpose Register (LPGPR) available on
269           i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
270
271           This driver can also be built as a module. If so, the module
272           will be called nvmem-snvs-lpgpr.
273
274 config NVMEM_SPMI_SDAM
275         tristate "SPMI SDAM Support"
276         depends on SPMI
277         help
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.
281
282 config NVMEM_SPRD_EFUSE
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
293 config NVMEM_STM32_ROMEM
294         tristate "STMicroelectronics STM32 factory-programmed memory support"
295         depends on ARCH_STM32 || COMPILE_TEST
296         help
297           Say y here to enable read-only access for STMicroelectronics STM32
298           factory-programmed memory area.
299
300           This driver can also be built as a module. If so, the module
301           will be called nvmem-stm32-romem.
302
303 config NVMEM_SUNPLUS_OCOTP
304         tristate "Sunplus SoC OTP support"
305         depends on SOC_SP7021 || COMPILE_TEST
306         depends on HAS_IOMEM
307         help
308           This is a driver for the On-chip OTP controller (OCOTP) available
309           on Sunplus SoCs. It provides access to 128 bytes of one-time
310           programmable eFuse.
311
312           This driver can also be built as a module. If so, the module
313           will be called nvmem-sunplus-ocotp.
314
315 config NVMEM_SUNXI_SID
316         tristate "Allwinner SoCs SID support"
317         depends on ARCH_SUNXI
318         help
319           This is a driver for the 'security ID' available on various Allwinner
320           devices.
321
322           This driver can also be built as a module. If so, the module
323           will be called nvmem_sunxi_sid.
324
325 config NVMEM_U_BOOT_ENV
326         tristate "U-Boot environment variables support"
327         depends on OF && MTD
328         select CRC32
329         help
330           U-Boot stores its setup as environment variables. This driver adds
331           support for verifying & exporting such data. It also exposes variables
332           as NVMEM cells so they can be referenced by other drivers.
333
334           Currently this drivers works only with env variables on top of MTD.
335
336           If compiled as module it will be called nvmem_u-boot-env.
337
338 config NVMEM_UNIPHIER_EFUSE
339         tristate "UniPhier SoCs eFuse support"
340         depends on ARCH_UNIPHIER || COMPILE_TEST
341         depends on HAS_IOMEM
342         help
343           This is a simple driver to dump specified values of UniPhier SoC
344           from eFuse.
345
346           This driver can also be built as a module. If so, the module
347           will be called nvmem-uniphier-efuse.
348
349 config NVMEM_VF610_OCOTP
350         tristate "VF610 SoC OCOTP support"
351         depends on SOC_VF610 || COMPILE_TEST
352         depends on HAS_IOMEM
353         help
354           This is a driver for the 'OCOTP' peripheral available on Vybrid
355           devices like VF5xx and VF6xx.
356
357           This driver can also be build as a module. If so, the module will
358           be called nvmem-vf610-ocotp.
359
360 config NVMEM_ZYNQMP
361         bool "Xilinx ZYNQMP SoC nvmem firmware support"
362         depends on ARCH_ZYNQMP
363         help
364           This is a driver to access hardware related data like
365           soc revision, IDCODE... etc by using the firmware
366           interface.
367
368           If sure, say yes. If unsure, say no.
369
370 endif