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