xref: /openbmc/linux/drivers/nvmem/Kconfig (revision 1d1997db)
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 ROCKCHIP_EFUSE
113	tristate "Rockchip eFuse Support"
114	depends on ARCH_ROCKCHIP || COMPILE_TEST
115	depends on HAS_IOMEM
116	help
117	  This is a simple drive to dump specified values of Rockchip SoC
118	  from eFuse, such as cpu-leakage.
119
120	  This driver can also be built as a module. If so, the module
121	  will be called nvmem_rockchip_efuse.
122
123config ROCKCHIP_OTP
124	tristate "Rockchip OTP controller support"
125	depends on ARCH_ROCKCHIP || COMPILE_TEST
126	depends on HAS_IOMEM
127	help
128	  This is a simple drive to dump specified values of Rockchip SoC
129	  from otp, such as cpu-leakage.
130
131	  This driver can also be built as a module. If so, the module
132	  will be called nvmem_rockchip_otp.
133
134config NVMEM_BCM_OCOTP
135	tristate "Broadcom On-Chip OTP Controller support"
136	depends on ARCH_BCM_IPROC || COMPILE_TEST
137	depends on HAS_IOMEM
138	default ARCH_BCM_IPROC
139	help
140	  Say y here to enable read/write access to the Broadcom OTP
141	  controller.
142
143	  This driver can also be built as a module. If so, the module
144	  will be called nvmem-bcm-ocotp.
145
146config NVMEM_STM32_ROMEM
147	tristate "STMicroelectronics STM32 factory-programmed memory support"
148	depends on ARCH_STM32 || COMPILE_TEST
149	help
150	  Say y here to enable read-only access for STMicroelectronics STM32
151	  factory-programmed memory area.
152
153	  This driver can also be built as a module. If so, the module
154	  will be called nvmem-stm32-romem.
155
156config NVMEM_SUNXI_SID
157	tristate "Allwinner SoCs SID support"
158	depends on ARCH_SUNXI
159	help
160	  This is a driver for the 'security ID' available on various Allwinner
161	  devices.
162
163	  This driver can also be built as a module. If so, the module
164	  will be called nvmem_sunxi_sid.
165
166config UNIPHIER_EFUSE
167	tristate "UniPhier SoCs eFuse support"
168	depends on ARCH_UNIPHIER || COMPILE_TEST
169	depends on HAS_IOMEM
170	help
171	  This is a simple driver to dump specified values of UniPhier SoC
172	  from eFuse.
173
174	  This driver can also be built as a module. If so, the module
175	  will be called nvmem-uniphier-efuse.
176
177config NVMEM_VF610_OCOTP
178	tristate "VF610 SoC OCOTP support"
179	depends on SOC_VF610 || COMPILE_TEST
180	depends on HAS_IOMEM
181	help
182	  This is a driver for the 'OCOTP' peripheral available on Vybrid
183	  devices like VF5xx and VF6xx.
184
185	  This driver can also be build as a module. If so, the module will
186	  be called nvmem-vf610-ocotp.
187
188config MESON_EFUSE
189	tristate "Amlogic Meson GX eFuse Support"
190	depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
191	help
192	  This is a driver to retrieve specific values from the eFuse found on
193	  the Amlogic Meson GX SoCs.
194
195	  This driver can also be built as a module. If so, the module
196	  will be called nvmem_meson_efuse.
197
198config MESON_MX_EFUSE
199	tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
200	depends on ARCH_MESON || COMPILE_TEST
201	help
202	  This is a driver to retrieve specific values from the eFuse found on
203	  the Amlogic Meson6, Meson8 and Meson8b SoCs.
204
205	  This driver can also be built as a module. If so, the module
206	  will be called nvmem_meson_mx_efuse.
207
208config NVMEM_SNVS_LPGPR
209	tristate "Support for Low Power General Purpose Register"
210	depends on ARCH_MXC || COMPILE_TEST
211	help
212	  This is a driver for Low Power General Purpose Register (LPGPR) available on
213	  i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
214
215	  This driver can also be built as a module. If so, the module
216	  will be called nvmem-snvs-lpgpr.
217
218config RAVE_SP_EEPROM
219	tristate "Rave SP EEPROM Support"
220	depends on RAVE_SP_CORE
221	help
222	  Say y here to enable Rave SP EEPROM support.
223
224config SC27XX_EFUSE
225	tristate "Spreadtrum SC27XX eFuse Support"
226	depends on MFD_SC27XX_PMIC || COMPILE_TEST
227	depends on HAS_IOMEM
228	help
229	  This is a simple driver to dump specified values of Spreadtrum
230	  SC27XX PMICs from eFuse.
231
232	  This driver can also be built as a module. If so, the module
233	  will be called nvmem-sc27xx-efuse.
234
235config NVMEM_ZYNQMP
236	bool "Xilinx ZYNQMP SoC nvmem firmware support"
237	depends on ARCH_ZYNQMP
238	help
239	  This is a driver to access hardware related data like
240	  soc revision, IDCODE... etc by using the firmware
241	  interface.
242
243	  If sure, say yes. If unsure, say no.
244
245config SPRD_EFUSE
246	tristate "Spreadtrum SoC eFuse Support"
247	depends on ARCH_SPRD || COMPILE_TEST
248	depends on HAS_IOMEM
249	help
250	  This is a simple driver to dump specified values of Spreadtrum
251	  SoCs from eFuse.
252
253	  This driver can also be built as a module. If so, the module
254	  will be called nvmem-sprd-efuse.
255
256endif
257