Merge tag 'gnss-6.1-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/johan...
[linux-2.6-microblaze.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 MICROCHIP_OTPC
111         tristate "Microchip OTPC support"
112         depends on ARCH_AT91 || COMPILE_TEST
113         help
114           This driver enable the OTP controller available on Microchip SAMA7G5
115           SoCs. It controlls the access to the OTP memory connected to it.
116
117 config NVMEM_NINTENDO_OTP
118         tristate "Nintendo Wii and Wii U OTP Support"
119         depends on WII || COMPILE_TEST
120         help
121           This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
122
123           This memory contains common and per-console keys, signatures and
124           related data required to access peripherals.
125
126           This driver can also be built as a module. If so, the module
127           will be called nvmem-nintendo-otp.
128
129 config QCOM_QFPROM
130         tristate "QCOM QFPROM Support"
131         depends on ARCH_QCOM || COMPILE_TEST
132         depends on HAS_IOMEM
133         help
134           Say y here to enable QFPROM support. The QFPROM provides access
135           functions for QFPROM data to rest of the drivers via nvmem interface.
136
137           This driver can also be built as a module. If so, the module
138           will be called nvmem_qfprom.
139
140 config NVMEM_SPMI_SDAM
141         tristate "SPMI SDAM Support"
142         depends on SPMI
143         help
144           This driver supports the Shared Direct Access Memory Module on
145           Qualcomm Technologies, Inc. PMICs. It provides the clients
146           an interface to read/write to the SDAM module's shared memory.
147
148 config ROCKCHIP_EFUSE
149         tristate "Rockchip eFuse Support"
150         depends on ARCH_ROCKCHIP || COMPILE_TEST
151         depends on HAS_IOMEM
152         help
153           This is a simple drive to dump specified values of Rockchip SoC
154           from eFuse, such as cpu-leakage.
155
156           This driver can also be built as a module. If so, the module
157           will be called nvmem_rockchip_efuse.
158
159 config ROCKCHIP_OTP
160         tristate "Rockchip OTP controller support"
161         depends on ARCH_ROCKCHIP || COMPILE_TEST
162         depends on HAS_IOMEM
163         help
164           This is a simple drive to dump specified values of Rockchip SoC
165           from otp, such as cpu-leakage.
166
167           This driver can also be built as a module. If so, the module
168           will be called nvmem_rockchip_otp.
169
170 config NVMEM_BCM_OCOTP
171         tristate "Broadcom On-Chip OTP Controller support"
172         depends on ARCH_BCM_IPROC || COMPILE_TEST
173         depends on HAS_IOMEM
174         default ARCH_BCM_IPROC
175         help
176           Say y here to enable read/write access to the Broadcom OTP
177           controller.
178
179           This driver can also be built as a module. If so, the module
180           will be called nvmem-bcm-ocotp.
181
182 config NVMEM_STM32_ROMEM
183         tristate "STMicroelectronics STM32 factory-programmed memory support"
184         depends on ARCH_STM32 || COMPILE_TEST
185         help
186           Say y here to enable read-only access for STMicroelectronics STM32
187           factory-programmed memory area.
188
189           This driver can also be built as a module. If so, the module
190           will be called nvmem-stm32-romem.
191
192 config NVMEM_SUNXI_SID
193         tristate "Allwinner SoCs SID support"
194         depends on ARCH_SUNXI
195         help
196           This is a driver for the 'security ID' available on various Allwinner
197           devices.
198
199           This driver can also be built as a module. If so, the module
200           will be called nvmem_sunxi_sid.
201
202 config UNIPHIER_EFUSE
203         tristate "UniPhier SoCs eFuse support"
204         depends on ARCH_UNIPHIER || COMPILE_TEST
205         depends on HAS_IOMEM
206         help
207           This is a simple driver to dump specified values of UniPhier SoC
208           from eFuse.
209
210           This driver can also be built as a module. If so, the module
211           will be called nvmem-uniphier-efuse.
212
213 config NVMEM_VF610_OCOTP
214         tristate "VF610 SoC OCOTP support"
215         depends on SOC_VF610 || COMPILE_TEST
216         depends on HAS_IOMEM
217         help
218           This is a driver for the 'OCOTP' peripheral available on Vybrid
219           devices like VF5xx and VF6xx.
220
221           This driver can also be build as a module. If so, the module will
222           be called nvmem-vf610-ocotp.
223
224 config MESON_EFUSE
225         tristate "Amlogic Meson GX eFuse Support"
226         depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
227         help
228           This is a driver to retrieve specific values from the eFuse found on
229           the Amlogic Meson GX SoCs.
230
231           This driver can also be built as a module. If so, the module
232           will be called nvmem_meson_efuse.
233
234 config MESON_MX_EFUSE
235         tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
236         depends on ARCH_MESON || COMPILE_TEST
237         help
238           This is a driver to retrieve specific values from the eFuse found on
239           the Amlogic Meson6, Meson8 and Meson8b SoCs.
240
241           This driver can also be built as a module. If so, the module
242           will be called nvmem_meson_mx_efuse.
243
244 config NVMEM_SNVS_LPGPR
245         tristate "Support for Low Power General Purpose Register"
246         depends on ARCH_MXC || COMPILE_TEST
247         help
248           This is a driver for Low Power General Purpose Register (LPGPR) available on
249           i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
250
251           This driver can also be built as a module. If so, the module
252           will be called nvmem-snvs-lpgpr.
253
254 config RAVE_SP_EEPROM
255         tristate "Rave SP EEPROM Support"
256         depends on RAVE_SP_CORE
257         help
258           Say y here to enable Rave SP EEPROM support.
259
260 config SC27XX_EFUSE
261         tristate "Spreadtrum SC27XX eFuse Support"
262         depends on MFD_SC27XX_PMIC || COMPILE_TEST
263         depends on HAS_IOMEM
264         help
265           This is a simple driver to dump specified values of Spreadtrum
266           SC27XX PMICs from eFuse.
267
268           This driver can also be built as a module. If so, the module
269           will be called nvmem-sc27xx-efuse.
270
271 config NVMEM_ZYNQMP
272         bool "Xilinx ZYNQMP SoC nvmem firmware support"
273         depends on ARCH_ZYNQMP
274         help
275           This is a driver to access hardware related data like
276           soc revision, IDCODE... etc by using the firmware
277           interface.
278
279           If sure, say yes. If unsure, say no.
280
281 config SPRD_EFUSE
282         tristate "Spreadtrum SoC eFuse Support"
283         depends on ARCH_SPRD || COMPILE_TEST
284         depends on HAS_IOMEM
285         help
286           This is a simple driver to dump specified values of Spreadtrum
287           SoCs from eFuse.
288
289           This driver can also be built as a module. If so, the module
290           will be called nvmem-sprd-efuse.
291
292 config NVMEM_RMEM
293         tristate "Reserved Memory Based Driver Support"
294         depends on HAS_IOMEM
295         help
296           This driver maps reserved memory into an nvmem device. It might be
297           useful to expose information left by firmware in memory.
298
299           This driver can also be built as a module. If so, the module
300           will be called nvmem-rmem.
301
302 config NVMEM_BRCM_NVRAM
303         tristate "Broadcom's NVRAM support"
304         depends on ARCH_BCM_5301X || COMPILE_TEST
305         depends on HAS_IOMEM
306         help
307           This driver provides support for Broadcom's NVRAM that can be accessed
308           using I/O mapping.
309
310 config NVMEM_LAYERSCAPE_SFP
311         tristate "Layerscape SFP (Security Fuse Processor) support"
312         depends on ARCH_LAYERSCAPE || COMPILE_TEST
313         depends on HAS_IOMEM
314         select REGMAP_MMIO
315         help
316           This driver provides support to read the eFuses on Freescale
317           Layerscape SoC's. For example, the vendor provides a per part
318           unique ID there.
319
320           This driver can also be built as a module. If so, the module
321           will be called layerscape-sfp.
322
323 config NVMEM_SUNPLUS_OCOTP
324         tristate "Sunplus SoC OTP support"
325         depends on SOC_SP7021 || COMPILE_TEST
326         depends on HAS_IOMEM
327         help
328           This is a driver for the On-chip OTP controller (OCOTP) available
329           on Sunplus SoCs. It provides access to 128 bytes of one-time
330           programmable eFuse.
331
332           This driver can also be built as a module. If so, the module
333           will be called nvmem-sunplus-ocotp.
334
335 config NVMEM_APPLE_EFUSES
336         tristate "Apple eFuse support"
337         depends on ARCH_APPLE || COMPILE_TEST
338         default ARCH_APPLE
339         help
340           Say y here to enable support for reading eFuses on Apple SoCs
341           such as the M1. These are e.g. used to store factory programmed
342           calibration data required for the PCIe or the USB-C PHY.
343
344           This driver can also be built as a module. If so, the module will
345           be called nvmem-apple-efuses.
346
347 endif