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