GNU Linux-libre 5.19-rc6-gnu
[releases.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 config NVMEM_IMX_IIM
25         tristate "i.MX IC Identification Module support"
26         depends on ARCH_MXC || COMPILE_TEST
27         help
28           This is a driver for the IC Identification Module (IIM) available on
29           i.MX SoCs, providing access to 4 Kbits of programmable
30           eFuses.
31
32           This driver can also be built as a module. If so, the module
33           will be called nvmem-imx-iim.
34
35 config NVMEM_IMX_OCOTP
36         tristate "i.MX 6/7/8 On-Chip OTP Controller support"
37         depends on ARCH_MXC || COMPILE_TEST
38         depends on HAS_IOMEM
39         help
40           This is a driver for the On-Chip OTP Controller (OCOTP) available on
41           i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
42           eFuses.
43
44           This driver can also be built as a module. If so, the module
45           will be called nvmem-imx-ocotp.
46
47 config NVMEM_IMX_OCOTP_SCU
48         tristate "i.MX8 SCU On-Chip OTP Controller support"
49         depends on IMX_SCU
50         depends on HAVE_ARM_SMCCC
51         help
52           This is a driver for the SCU On-Chip OTP Controller (OCOTP)
53           available on i.MX8 SoCs.
54
55 config JZ4780_EFUSE
56         tristate "JZ4780 EFUSE Memory Support"
57         depends on MACH_INGENIC || COMPILE_TEST
58         depends on HAS_IOMEM
59         depends on OF
60         select REGMAP_MMIO
61         help
62           Say Y here to include support for JZ4780 efuse memory found on
63           all JZ4780 SoC based devices.
64           To compile this driver as a module, choose M here: the module
65           will be called nvmem_jz4780_efuse.
66
67 config NVMEM_LPC18XX_EEPROM
68         tristate "NXP LPC18XX EEPROM Memory Support"
69         depends on ARCH_LPC18XX || COMPILE_TEST
70         depends on HAS_IOMEM
71         help
72           Say Y here to include support for NXP LPC18xx EEPROM memory found in
73           NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
74           To compile this driver as a module, choose M here: the module
75           will be called nvmem_lpc18xx_eeprom.
76
77 config NVMEM_LPC18XX_OTP
78         tristate "NXP LPC18XX OTP Memory Support"
79         depends on ARCH_LPC18XX || COMPILE_TEST
80         depends on HAS_IOMEM
81         help
82           Say Y here to include support for NXP LPC18xx OTP memory found on
83           all LPC18xx and LPC43xx devices.
84           To compile this driver as a module, choose M here: the module
85           will be called nvmem_lpc18xx_otp.
86
87 config NVMEM_MXS_OCOTP
88         tristate "Freescale MXS On-Chip OTP Memory Support"
89         depends on ARCH_MXS || COMPILE_TEST
90         depends on HAS_IOMEM
91         help
92           If you say Y here, you will get readonly access to the
93           One Time Programmable memory pages that are stored
94           on the Freescale i.MX23/i.MX28 processor.
95
96           This driver can also be built as a module. If so, the module
97           will be called nvmem-mxs-ocotp.
98
99 config MTK_EFUSE
100         tristate "Mediatek SoCs EFUSE support"
101         depends on ARCH_MEDIATEK || COMPILE_TEST
102         depends on HAS_IOMEM
103         help
104           This is a driver to access hardware related data like sensor
105           calibration, HDMI impedance etc.
106
107           This driver can also be built as a module. If so, the module
108           will be called efuse-mtk.
109
110 config NVMEM_NINTENDO_OTP
111         tristate "Nintendo Wii and Wii U OTP Support"
112         depends on WII || COMPILE_TEST
113         help
114           This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
115
116           This memory contains common and per-console keys, signatures and
117           related data required to access peripherals.
118
119           This driver can also be built as a module. If so, the module
120           will be called nvmem-nintendo-otp.
121
122 config QCOM_QFPROM
123         tristate "QCOM QFPROM Support"
124         depends on ARCH_QCOM || COMPILE_TEST
125         depends on HAS_IOMEM
126         help
127           Say y here to enable QFPROM support. The QFPROM provides access
128           functions for QFPROM data to rest of the drivers via nvmem interface.
129
130           This driver can also be built as a module. If so, the module
131           will be called nvmem_qfprom.
132
133 config NVMEM_SPMI_SDAM
134         tristate "SPMI SDAM Support"
135         depends on SPMI
136         help
137           This driver supports the Shared Direct Access Memory Module on
138           Qualcomm Technologies, Inc. PMICs. It provides the clients
139           an interface to read/write to the SDAM module's shared memory.
140
141 config ROCKCHIP_EFUSE
142         tristate "Rockchip eFuse Support"
143         depends on ARCH_ROCKCHIP || COMPILE_TEST
144         depends on HAS_IOMEM
145         help
146           This is a simple drive to dump specified values of Rockchip SoC
147           from eFuse, such as cpu-leakage.
148
149           This driver can also be built as a module. If so, the module
150           will be called nvmem_rockchip_efuse.
151
152 config ROCKCHIP_OTP
153         tristate "Rockchip OTP controller support"
154         depends on ARCH_ROCKCHIP || COMPILE_TEST
155         depends on HAS_IOMEM
156         help
157           This is a simple drive to dump specified values of Rockchip SoC
158           from otp, such as cpu-leakage.
159
160           This driver can also be built as a module. If so, the module
161           will be called nvmem_rockchip_otp.
162
163 config NVMEM_BCM_OCOTP
164         tristate "Broadcom On-Chip OTP Controller support"
165         depends on ARCH_BCM_IPROC || COMPILE_TEST
166         depends on HAS_IOMEM
167         default ARCH_BCM_IPROC
168         help
169           Say y here to enable read/write access to the Broadcom OTP
170           controller.
171
172           This driver can also be built as a module. If so, the module
173           will be called nvmem-bcm-ocotp.
174
175 config NVMEM_STM32_ROMEM
176         tristate "STMicroelectronics STM32 factory-programmed memory support"
177         depends on ARCH_STM32 || COMPILE_TEST
178         help
179           Say y here to enable read-only access for STMicroelectronics STM32
180           factory-programmed memory area.
181
182           This driver can also be built as a module. If so, the module
183           will be called nvmem-stm32-romem.
184
185 config NVMEM_SUNXI_SID
186         tristate "Allwinner SoCs SID support"
187         depends on ARCH_SUNXI
188         help
189           This is a driver for the 'security ID' available on various Allwinner
190           devices.
191
192           This driver can also be built as a module. If so, the module
193           will be called nvmem_sunxi_sid.
194
195 config UNIPHIER_EFUSE
196         tristate "UniPhier SoCs eFuse support"
197         depends on ARCH_UNIPHIER || COMPILE_TEST
198         depends on HAS_IOMEM
199         help
200           This is a simple driver to dump specified values of UniPhier SoC
201           from eFuse.
202
203           This driver can also be built as a module. If so, the module
204           will be called nvmem-uniphier-efuse.
205
206 config NVMEM_VF610_OCOTP
207         tristate "VF610 SoC OCOTP support"
208         depends on SOC_VF610 || COMPILE_TEST
209         depends on HAS_IOMEM
210         help
211           This is a driver for the 'OCOTP' peripheral available on Vybrid
212           devices like VF5xx and VF6xx.
213
214           This driver can also be build as a module. If so, the module will
215           be called nvmem-vf610-ocotp.
216
217 config MESON_EFUSE
218         tristate "Amlogic Meson GX eFuse Support"
219         depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
220         help
221           This is a driver to retrieve specific values from the eFuse found on
222           the Amlogic Meson GX SoCs.
223
224           This driver can also be built as a module. If so, the module
225           will be called nvmem_meson_efuse.
226
227 config MESON_MX_EFUSE
228         tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
229         depends on ARCH_MESON || COMPILE_TEST
230         help
231           This is a driver to retrieve specific values from the eFuse found on
232           the Amlogic Meson6, Meson8 and Meson8b SoCs.
233
234           This driver can also be built as a module. If so, the module
235           will be called nvmem_meson_mx_efuse.
236
237 config NVMEM_SNVS_LPGPR
238         tristate "Support for Low Power General Purpose Register"
239         depends on ARCH_MXC || COMPILE_TEST
240         help
241           This is a driver for Low Power General Purpose Register (LPGPR) available on
242           i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
243
244           This driver can also be built as a module. If so, the module
245           will be called nvmem-snvs-lpgpr.
246
247 config RAVE_SP_EEPROM
248         tristate "Rave SP EEPROM Support"
249         depends on RAVE_SP_CORE
250         help
251           Say y here to enable Rave SP EEPROM support.
252
253 config 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_ZYNQMP
265         bool "Xilinx ZYNQMP SoC nvmem firmware support"
266         depends on ARCH_ZYNQMP
267         help
268           This is a driver to access hardware related data like
269           soc revision, IDCODE... etc by using the firmware
270           interface.
271
272           If sure, say yes. If unsure, say no.
273
274 config SPRD_EFUSE
275         tristate "Spreadtrum SoC eFuse Support"
276         depends on ARCH_SPRD || COMPILE_TEST
277         depends on HAS_IOMEM
278         help
279           This is a simple driver to dump specified values of Spreadtrum
280           SoCs from eFuse.
281
282           This driver can also be built as a module. If so, the module
283           will be called nvmem-sprd-efuse.
284
285 config NVMEM_RMEM
286         tristate "Reserved Memory Based Driver Support"
287         depends on HAS_IOMEM
288         help
289           This driver maps reserved memory into an nvmem device. It might be
290           useful to expose information left by firmware in memory.
291
292           This driver can also be built as a module. If so, the module
293           will be called nvmem-rmem.
294
295 config NVMEM_BRCM_NVRAM
296         tristate "Broadcom's NVRAM support"
297         depends on ARCH_BCM_5301X || COMPILE_TEST
298         depends on HAS_IOMEM
299         help
300           This driver provides support for Broadcom's NVRAM that can be accessed
301           using I/O mapping.
302
303 config NVMEM_LAYERSCAPE_SFP
304         tristate "Layerscape SFP (Security Fuse Processor) support"
305         depends on ARCH_LAYERSCAPE || COMPILE_TEST
306         depends on HAS_IOMEM
307         select REGMAP_MMIO
308         help
309           This driver provides support to read the eFuses on Freescale
310           Layerscape SoC's. For example, the vendor provides a per part
311           unique ID there.
312
313           This driver can also be built as a module. If so, the module
314           will be called layerscape-sfp.
315
316 config NVMEM_SUNPLUS_OCOTP
317         tristate "Sunplus SoC OTP support"
318         depends on SOC_SP7021 || COMPILE_TEST
319         depends on HAS_IOMEM
320         help
321           This is a driver for the On-chip OTP controller (OCOTP) available
322           on Sunplus SoCs. It provides access to 128 bytes of one-time
323           programmable eFuse.
324
325           This driver can also be built as a module. If so, the module
326           will be called nvmem-sunplus-ocotp.
327
328 config NVMEM_APPLE_EFUSES
329         tristate "Apple eFuse support"
330         depends on ARCH_APPLE || COMPILE_TEST
331         default ARCH_APPLE
332         help
333           Say y here to enable support for reading eFuses on Apple SoCs
334           such as the M1. These are e.g. used to store factory programmed
335           calibration data required for the PCIe or the USB-C PHY.
336
337           This driver can also be built as a module. If so, the module will
338           be called nvmem-apple-efuses.
339
340 endif