xref: /openbmc/linux/drivers/nvmem/Kconfig (revision abed054f)
1# SPDX-License-Identifier: GPL-2.0-only
2menuconfig 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
12if NVMEM
13
14config 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
24config 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
35config 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
47config 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
55config 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
67config 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
77config 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
87config 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
99config 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
110config NVMEM_NINTENDO_OTP
111	tristate "Nintendo Wii and Wii U OTP Support"
112	help
113	  This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
114
115	  This memory contains common and per-console keys, signatures and
116	  related data required to access peripherals.
117
118	  This driver can also be built as a module. If so, the module
119	  will be called nvmem-nintendo-otp.
120
121config QCOM_QFPROM
122	tristate "QCOM QFPROM Support"
123	depends on ARCH_QCOM || COMPILE_TEST
124	depends on HAS_IOMEM
125	help
126	  Say y here to enable QFPROM support. The QFPROM provides access
127	  functions for QFPROM data to rest of the drivers via nvmem interface.
128
129	  This driver can also be built as a module. If so, the module
130	  will be called nvmem_qfprom.
131
132config NVMEM_SPMI_SDAM
133	tristate "SPMI SDAM Support"
134	depends on SPMI
135	help
136	  This driver supports the Shared Direct Access Memory Module on
137	  Qualcomm Technologies, Inc. PMICs. It provides the clients
138	  an interface to read/write to the SDAM module's shared memory.
139
140config ROCKCHIP_EFUSE
141	tristate "Rockchip eFuse Support"
142	depends on ARCH_ROCKCHIP || COMPILE_TEST
143	depends on HAS_IOMEM
144	help
145	  This is a simple drive to dump specified values of Rockchip SoC
146	  from eFuse, such as cpu-leakage.
147
148	  This driver can also be built as a module. If so, the module
149	  will be called nvmem_rockchip_efuse.
150
151config ROCKCHIP_OTP
152	tristate "Rockchip OTP controller support"
153	depends on ARCH_ROCKCHIP || COMPILE_TEST
154	depends on HAS_IOMEM
155	help
156	  This is a simple drive to dump specified values of Rockchip SoC
157	  from otp, such as cpu-leakage.
158
159	  This driver can also be built as a module. If so, the module
160	  will be called nvmem_rockchip_otp.
161
162config NVMEM_BCM_OCOTP
163	tristate "Broadcom On-Chip OTP Controller support"
164	depends on ARCH_BCM_IPROC || COMPILE_TEST
165	depends on HAS_IOMEM
166	default ARCH_BCM_IPROC
167	help
168	  Say y here to enable read/write access to the Broadcom OTP
169	  controller.
170
171	  This driver can also be built as a module. If so, the module
172	  will be called nvmem-bcm-ocotp.
173
174config NVMEM_STM32_ROMEM
175	tristate "STMicroelectronics STM32 factory-programmed memory support"
176	depends on ARCH_STM32 || COMPILE_TEST
177	help
178	  Say y here to enable read-only access for STMicroelectronics STM32
179	  factory-programmed memory area.
180
181	  This driver can also be built as a module. If so, the module
182	  will be called nvmem-stm32-romem.
183
184config NVMEM_SUNXI_SID
185	tristate "Allwinner SoCs SID support"
186	depends on ARCH_SUNXI
187	help
188	  This is a driver for the 'security ID' available on various Allwinner
189	  devices.
190
191	  This driver can also be built as a module. If so, the module
192	  will be called nvmem_sunxi_sid.
193
194config UNIPHIER_EFUSE
195	tristate "UniPhier SoCs eFuse support"
196	depends on ARCH_UNIPHIER || COMPILE_TEST
197	depends on HAS_IOMEM
198	help
199	  This is a simple driver to dump specified values of UniPhier SoC
200	  from eFuse.
201
202	  This driver can also be built as a module. If so, the module
203	  will be called nvmem-uniphier-efuse.
204
205config NVMEM_VF610_OCOTP
206	tristate "VF610 SoC OCOTP support"
207	depends on SOC_VF610 || COMPILE_TEST
208	depends on HAS_IOMEM
209	help
210	  This is a driver for the 'OCOTP' peripheral available on Vybrid
211	  devices like VF5xx and VF6xx.
212
213	  This driver can also be build as a module. If so, the module will
214	  be called nvmem-vf610-ocotp.
215
216config MESON_EFUSE
217	tristate "Amlogic Meson GX eFuse Support"
218	depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
219	help
220	  This is a driver to retrieve specific values from the eFuse found on
221	  the Amlogic Meson GX SoCs.
222
223	  This driver can also be built as a module. If so, the module
224	  will be called nvmem_meson_efuse.
225
226config MESON_MX_EFUSE
227	tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
228	depends on ARCH_MESON || COMPILE_TEST
229	help
230	  This is a driver to retrieve specific values from the eFuse found on
231	  the Amlogic Meson6, Meson8 and Meson8b SoCs.
232
233	  This driver can also be built as a module. If so, the module
234	  will be called nvmem_meson_mx_efuse.
235
236config NVMEM_SNVS_LPGPR
237	tristate "Support for Low Power General Purpose Register"
238	depends on ARCH_MXC || COMPILE_TEST
239	help
240	  This is a driver for Low Power General Purpose Register (LPGPR) available on
241	  i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
242
243	  This driver can also be built as a module. If so, the module
244	  will be called nvmem-snvs-lpgpr.
245
246config RAVE_SP_EEPROM
247	tristate "Rave SP EEPROM Support"
248	depends on RAVE_SP_CORE
249	help
250	  Say y here to enable Rave SP EEPROM support.
251
252config SC27XX_EFUSE
253	tristate "Spreadtrum SC27XX eFuse Support"
254	depends on MFD_SC27XX_PMIC || COMPILE_TEST
255	depends on HAS_IOMEM
256	help
257	  This is a simple driver to dump specified values of Spreadtrum
258	  SC27XX PMICs from eFuse.
259
260	  This driver can also be built as a module. If so, the module
261	  will be called nvmem-sc27xx-efuse.
262
263config NVMEM_ZYNQMP
264	bool "Xilinx ZYNQMP SoC nvmem firmware support"
265	depends on ARCH_ZYNQMP
266	help
267	  This is a driver to access hardware related data like
268	  soc revision, IDCODE... etc by using the firmware
269	  interface.
270
271	  If sure, say yes. If unsure, say no.
272
273config SPRD_EFUSE
274	tristate "Spreadtrum SoC eFuse Support"
275	depends on ARCH_SPRD || COMPILE_TEST
276	depends on HAS_IOMEM
277	help
278	  This is a simple driver to dump specified values of Spreadtrum
279	  SoCs from eFuse.
280
281	  This driver can also be built as a module. If so, the module
282	  will be called nvmem-sprd-efuse.
283
284config NVMEM_RMEM
285	tristate "Reserved Memory Based Driver Support"
286	depends on HAS_IOMEM
287	help
288	  This driver maps reserved memory into an nvmem device. It might be
289	  useful to expose information left by firmware in memory.
290
291	  This driver can also be built as a module. If so, the module
292	  will be called nvmem-rmem.
293
294config NVMEM_BRCM_NVRAM
295	tristate "Broadcom's NVRAM support"
296	depends on ARCH_BCM_5301X || COMPILE_TEST
297	depends on HAS_IOMEM
298	help
299	  This driver provides support for Broadcom's NVRAM that can be accessed
300	  using I/O mapping.
301
302endif
303