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