xref: /openbmc/linux/drivers/nvmem/Kconfig (revision dc6a81c3)
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	  This driver can also be built as a module. If so, the module
11	  will be called nvmem_core.
12
13	  If unsure, say no.
14
15if NVMEM
16
17config NVMEM_SYSFS
18	bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
19	depends on SYSFS
20	default y
21	help
22	 Say Y here to add a sysfs interface for NVMEM.
23
24	 This interface is mostly used by userspace applications to
25	 read/write directly into nvmem.
26
27config NVMEM_IMX_IIM
28	tristate "i.MX IC Identification Module support"
29	depends on ARCH_MXC || COMPILE_TEST
30	help
31	  This is a driver for the IC Identification Module (IIM) available on
32	  i.MX SoCs, providing access to 4 Kbits of programmable
33	  eFuses.
34
35	  This driver can also be built as a module. If so, the module
36	  will be called nvmem-imx-iim.
37
38config NVMEM_IMX_OCOTP
39	tristate "i.MX 6/7/8 On-Chip OTP Controller support"
40	depends on ARCH_MXC || COMPILE_TEST
41	depends on HAS_IOMEM
42	help
43	  This is a driver for the On-Chip OTP Controller (OCOTP) available on
44	  i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
45	  eFuses.
46
47	  This driver can also be built as a module. If so, the module
48	  will be called nvmem-imx-ocotp.
49
50config NVMEM_IMX_OCOTP_SCU
51	tristate "i.MX8 SCU On-Chip OTP Controller support"
52	depends on IMX_SCU
53	depends on HAVE_ARM_SMCCC
54	help
55	  This is a driver for the SCU On-Chip OTP Controller (OCOTP)
56	  available on i.MX8 SoCs.
57
58config NVMEM_LPC18XX_EEPROM
59	tristate "NXP LPC18XX EEPROM Memory Support"
60	depends on ARCH_LPC18XX || COMPILE_TEST
61	depends on HAS_IOMEM
62	help
63	  Say Y here to include support for NXP LPC18xx EEPROM memory found in
64	  NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
65	  To compile this driver as a module, choose M here: the module
66	  will be called nvmem_lpc18xx_eeprom.
67
68config NVMEM_LPC18XX_OTP
69	tristate "NXP LPC18XX OTP Memory Support"
70	depends on ARCH_LPC18XX || COMPILE_TEST
71	depends on HAS_IOMEM
72	help
73	  Say Y here to include support for NXP LPC18xx OTP memory found on
74	  all LPC18xx and LPC43xx devices.
75	  To compile this driver as a module, choose M here: the module
76	  will be called nvmem_lpc18xx_otp.
77
78config NVMEM_MXS_OCOTP
79	tristate "Freescale MXS On-Chip OTP Memory Support"
80	depends on ARCH_MXS || COMPILE_TEST
81	depends on HAS_IOMEM
82	help
83	  If you say Y here, you will get readonly access to the
84	  One Time Programmable memory pages that are stored
85	  on the Freescale i.MX23/i.MX28 processor.
86
87	  This driver can also be built as a module. If so, the module
88	  will be called nvmem-mxs-ocotp.
89
90config MTK_EFUSE
91	tristate "Mediatek SoCs EFUSE support"
92	depends on ARCH_MEDIATEK || COMPILE_TEST
93	depends on HAS_IOMEM
94	help
95	  This is a driver to access hardware related data like sensor
96	  calibration, HDMI impedance etc.
97
98	  This driver can also be built as a module. If so, the module
99	  will be called efuse-mtk.
100
101config QCOM_QFPROM
102	tristate "QCOM QFPROM Support"
103	depends on ARCH_QCOM || COMPILE_TEST
104	depends on HAS_IOMEM
105	help
106	  Say y here to enable QFPROM support. The QFPROM provides access
107	  functions for QFPROM data to rest of the drivers via nvmem interface.
108
109	  This driver can also be built as a module. If so, the module
110	  will be called nvmem_qfprom.
111
112config NVMEM_SPMI_SDAM
113	tristate "SPMI SDAM Support"
114	depends on SPMI
115	help
116	  This driver supports the Shared Direct Access Memory Module on
117	  Qualcomm Technologies, Inc. PMICs. It provides the clients
118	  an interface to read/write to the SDAM module's shared memory.
119
120config ROCKCHIP_EFUSE
121	tristate "Rockchip eFuse Support"
122	depends on ARCH_ROCKCHIP || COMPILE_TEST
123	depends on HAS_IOMEM
124	help
125	  This is a simple drive to dump specified values of Rockchip SoC
126	  from eFuse, such as cpu-leakage.
127
128	  This driver can also be built as a module. If so, the module
129	  will be called nvmem_rockchip_efuse.
130
131config ROCKCHIP_OTP
132	tristate "Rockchip OTP controller support"
133	depends on ARCH_ROCKCHIP || COMPILE_TEST
134	depends on HAS_IOMEM
135	help
136	  This is a simple drive to dump specified values of Rockchip SoC
137	  from otp, such as cpu-leakage.
138
139	  This driver can also be built as a module. If so, the module
140	  will be called nvmem_rockchip_otp.
141
142config NVMEM_BCM_OCOTP
143	tristate "Broadcom On-Chip OTP Controller support"
144	depends on ARCH_BCM_IPROC || COMPILE_TEST
145	depends on HAS_IOMEM
146	default ARCH_BCM_IPROC
147	help
148	  Say y here to enable read/write access to the Broadcom OTP
149	  controller.
150
151	  This driver can also be built as a module. If so, the module
152	  will be called nvmem-bcm-ocotp.
153
154config NVMEM_STM32_ROMEM
155	tristate "STMicroelectronics STM32 factory-programmed memory support"
156	depends on ARCH_STM32 || COMPILE_TEST
157	help
158	  Say y here to enable read-only access for STMicroelectronics STM32
159	  factory-programmed memory area.
160
161	  This driver can also be built as a module. If so, the module
162	  will be called nvmem-stm32-romem.
163
164config NVMEM_SUNXI_SID
165	tristate "Allwinner SoCs SID support"
166	depends on ARCH_SUNXI
167	help
168	  This is a driver for the 'security ID' available on various Allwinner
169	  devices.
170
171	  This driver can also be built as a module. If so, the module
172	  will be called nvmem_sunxi_sid.
173
174config UNIPHIER_EFUSE
175	tristate "UniPhier SoCs eFuse support"
176	depends on ARCH_UNIPHIER || COMPILE_TEST
177	depends on HAS_IOMEM
178	help
179	  This is a simple driver to dump specified values of UniPhier SoC
180	  from eFuse.
181
182	  This driver can also be built as a module. If so, the module
183	  will be called nvmem-uniphier-efuse.
184
185config NVMEM_VF610_OCOTP
186	tristate "VF610 SoC OCOTP support"
187	depends on SOC_VF610 || COMPILE_TEST
188	depends on HAS_IOMEM
189	help
190	  This is a driver for the 'OCOTP' peripheral available on Vybrid
191	  devices like VF5xx and VF6xx.
192
193	  This driver can also be build as a module. If so, the module will
194	  be called nvmem-vf610-ocotp.
195
196config MESON_EFUSE
197	tristate "Amlogic Meson GX eFuse Support"
198	depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
199	help
200	  This is a driver to retrieve specific values from the eFuse found on
201	  the Amlogic Meson GX SoCs.
202
203	  This driver can also be built as a module. If so, the module
204	  will be called nvmem_meson_efuse.
205
206config MESON_MX_EFUSE
207	tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
208	depends on ARCH_MESON || COMPILE_TEST
209	help
210	  This is a driver to retrieve specific values from the eFuse found on
211	  the Amlogic Meson6, Meson8 and Meson8b SoCs.
212
213	  This driver can also be built as a module. If so, the module
214	  will be called nvmem_meson_mx_efuse.
215
216config NVMEM_SNVS_LPGPR
217	tristate "Support for Low Power General Purpose Register"
218	depends on ARCH_MXC || COMPILE_TEST
219	help
220	  This is a driver for Low Power General Purpose Register (LPGPR) available on
221	  i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
222
223	  This driver can also be built as a module. If so, the module
224	  will be called nvmem-snvs-lpgpr.
225
226config RAVE_SP_EEPROM
227	tristate "Rave SP EEPROM Support"
228	depends on RAVE_SP_CORE
229	help
230	  Say y here to enable Rave SP EEPROM support.
231
232config SC27XX_EFUSE
233	tristate "Spreadtrum SC27XX eFuse Support"
234	depends on MFD_SC27XX_PMIC || COMPILE_TEST
235	depends on HAS_IOMEM
236	help
237	  This is a simple driver to dump specified values of Spreadtrum
238	  SC27XX PMICs from eFuse.
239
240	  This driver can also be built as a module. If so, the module
241	  will be called nvmem-sc27xx-efuse.
242
243config NVMEM_ZYNQMP
244	bool "Xilinx ZYNQMP SoC nvmem firmware support"
245	depends on ARCH_ZYNQMP
246	help
247	  This is a driver to access hardware related data like
248	  soc revision, IDCODE... etc by using the firmware
249	  interface.
250
251	  If sure, say yes. If unsure, say no.
252
253config SPRD_EFUSE
254	tristate "Spreadtrum SoC eFuse Support"
255	depends on ARCH_SPRD || COMPILE_TEST
256	depends on HAS_IOMEM
257	help
258	  This is a simple driver to dump specified values of Spreadtrum
259	  SoCs from eFuse.
260
261	  This driver can also be built as a module. If so, the module
262	  will be called nvmem-sprd-efuse.
263
264endif
265