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