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