xref: /OK3568_Linux_fs/kernel/drivers/nvmem/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyunmenuconfig NVMEM
3*4882a593Smuzhiyun	bool "NVMEM Support"
4*4882a593Smuzhiyun	help
5*4882a593Smuzhiyun	  Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun	  This framework is designed to provide a generic interface to NVMEM
8*4882a593Smuzhiyun	  from both the Linux Kernel and the userspace.
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun	  If unsure, say no.
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunif NVMEM
13*4882a593Smuzhiyun
14*4882a593Smuzhiyunconfig NVMEM_SYSFS
15*4882a593Smuzhiyun	bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
16*4882a593Smuzhiyun	depends on SYSFS
17*4882a593Smuzhiyun	default y
18*4882a593Smuzhiyun	help
19*4882a593Smuzhiyun	 Say Y here to add a sysfs interface for NVMEM.
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun	 This interface is mostly used by userspace applications to
22*4882a593Smuzhiyun	 read/write directly into nvmem.
23*4882a593Smuzhiyun
24*4882a593Smuzhiyunconfig NVMEM_IMX_IIM
25*4882a593Smuzhiyun	tristate "i.MX IC Identification Module support"
26*4882a593Smuzhiyun	depends on ARCH_MXC || COMPILE_TEST
27*4882a593Smuzhiyun	help
28*4882a593Smuzhiyun	  This is a driver for the IC Identification Module (IIM) available on
29*4882a593Smuzhiyun	  i.MX SoCs, providing access to 4 Kbits of programmable
30*4882a593Smuzhiyun	  eFuses.
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
33*4882a593Smuzhiyun	  will be called nvmem-imx-iim.
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunconfig NVMEM_IMX_OCOTP
36*4882a593Smuzhiyun	tristate "i.MX 6/7/8 On-Chip OTP Controller support"
37*4882a593Smuzhiyun	depends on ARCH_MXC || COMPILE_TEST
38*4882a593Smuzhiyun	depends on HAS_IOMEM
39*4882a593Smuzhiyun	help
40*4882a593Smuzhiyun	  This is a driver for the On-Chip OTP Controller (OCOTP) available on
41*4882a593Smuzhiyun	  i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
42*4882a593Smuzhiyun	  eFuses.
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
45*4882a593Smuzhiyun	  will be called nvmem-imx-ocotp.
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunconfig NVMEM_IMX_OCOTP_SCU
48*4882a593Smuzhiyun	tristate "i.MX8 SCU On-Chip OTP Controller support"
49*4882a593Smuzhiyun	depends on IMX_SCU
50*4882a593Smuzhiyun	depends on HAVE_ARM_SMCCC
51*4882a593Smuzhiyun	help
52*4882a593Smuzhiyun	  This is a driver for the SCU On-Chip OTP Controller (OCOTP)
53*4882a593Smuzhiyun	  available on i.MX8 SoCs.
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunconfig JZ4780_EFUSE
56*4882a593Smuzhiyun	tristate "JZ4780 EFUSE Memory Support"
57*4882a593Smuzhiyun	depends on MACH_INGENIC || COMPILE_TEST
58*4882a593Smuzhiyun	depends on HAS_IOMEM
59*4882a593Smuzhiyun	depends on OF
60*4882a593Smuzhiyun	select REGMAP_MMIO
61*4882a593Smuzhiyun	help
62*4882a593Smuzhiyun	  Say Y here to include support for JZ4780 efuse memory found on
63*4882a593Smuzhiyun	  all JZ4780 SoC based devices.
64*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
65*4882a593Smuzhiyun	  will be called nvmem_jz4780_efuse.
66*4882a593Smuzhiyun
67*4882a593Smuzhiyunconfig NVMEM_LPC18XX_EEPROM
68*4882a593Smuzhiyun	tristate "NXP LPC18XX EEPROM Memory Support"
69*4882a593Smuzhiyun	depends on ARCH_LPC18XX || COMPILE_TEST
70*4882a593Smuzhiyun	depends on HAS_IOMEM
71*4882a593Smuzhiyun	help
72*4882a593Smuzhiyun	  Say Y here to include support for NXP LPC18xx EEPROM memory found in
73*4882a593Smuzhiyun	  NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
74*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
75*4882a593Smuzhiyun	  will be called nvmem_lpc18xx_eeprom.
76*4882a593Smuzhiyun
77*4882a593Smuzhiyunconfig NVMEM_LPC18XX_OTP
78*4882a593Smuzhiyun	tristate "NXP LPC18XX OTP Memory Support"
79*4882a593Smuzhiyun	depends on ARCH_LPC18XX || COMPILE_TEST
80*4882a593Smuzhiyun	depends on HAS_IOMEM
81*4882a593Smuzhiyun	help
82*4882a593Smuzhiyun	  Say Y here to include support for NXP LPC18xx OTP memory found on
83*4882a593Smuzhiyun	  all LPC18xx and LPC43xx devices.
84*4882a593Smuzhiyun	  To compile this driver as a module, choose M here: the module
85*4882a593Smuzhiyun	  will be called nvmem_lpc18xx_otp.
86*4882a593Smuzhiyun
87*4882a593Smuzhiyunconfig NVMEM_MXS_OCOTP
88*4882a593Smuzhiyun	tristate "Freescale MXS On-Chip OTP Memory Support"
89*4882a593Smuzhiyun	depends on ARCH_MXS || COMPILE_TEST
90*4882a593Smuzhiyun	depends on HAS_IOMEM
91*4882a593Smuzhiyun	help
92*4882a593Smuzhiyun	  If you say Y here, you will get readonly access to the
93*4882a593Smuzhiyun	  One Time Programmable memory pages that are stored
94*4882a593Smuzhiyun	  on the Freescale i.MX23/i.MX28 processor.
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
97*4882a593Smuzhiyun	  will be called nvmem-mxs-ocotp.
98*4882a593Smuzhiyun
99*4882a593Smuzhiyunconfig MTK_EFUSE
100*4882a593Smuzhiyun	tristate "Mediatek SoCs EFUSE support"
101*4882a593Smuzhiyun	depends on ARCH_MEDIATEK || COMPILE_TEST
102*4882a593Smuzhiyun	depends on HAS_IOMEM
103*4882a593Smuzhiyun	help
104*4882a593Smuzhiyun	  This is a driver to access hardware related data like sensor
105*4882a593Smuzhiyun	  calibration, HDMI impedance etc.
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
108*4882a593Smuzhiyun	  will be called efuse-mtk.
109*4882a593Smuzhiyun
110*4882a593Smuzhiyunconfig QCOM_QFPROM
111*4882a593Smuzhiyun	tristate "QCOM QFPROM Support"
112*4882a593Smuzhiyun	depends on ARCH_QCOM || COMPILE_TEST
113*4882a593Smuzhiyun	depends on HAS_IOMEM
114*4882a593Smuzhiyun	help
115*4882a593Smuzhiyun	  Say y here to enable QFPROM support. The QFPROM provides access
116*4882a593Smuzhiyun	  functions for QFPROM data to rest of the drivers via nvmem interface.
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
119*4882a593Smuzhiyun	  will be called nvmem_qfprom.
120*4882a593Smuzhiyun
121*4882a593Smuzhiyunconfig NVMEM_SPMI_SDAM
122*4882a593Smuzhiyun	tristate "SPMI SDAM Support"
123*4882a593Smuzhiyun	depends on SPMI
124*4882a593Smuzhiyun	help
125*4882a593Smuzhiyun	  This driver supports the Shared Direct Access Memory Module on
126*4882a593Smuzhiyun	  Qualcomm Technologies, Inc. PMICs. It provides the clients
127*4882a593Smuzhiyun	  an interface to read/write to the SDAM module's shared memory.
128*4882a593Smuzhiyun
129*4882a593Smuzhiyunconfig RK628_EFUSE
130*4882a593Smuzhiyun	tristate "RK628 eFuse Support"
131*4882a593Smuzhiyun	depends on ARCH_ROCKCHIP || COMPILE_TEST
132*4882a593Smuzhiyun	depends on HAS_IOMEM
133*4882a593Smuzhiyun	depends on MFD_RK628
134*4882a593Smuzhiyun	help
135*4882a593Smuzhiyun	  This is a simple drive to dump specified values of Rk628 SoC
136*4882a593Smuzhiyun	  from eFuse, such as cpu-leakage.
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
139*4882a593Smuzhiyun	  will be called nvmem_rk628_efuse.
140*4882a593Smuzhiyun
141*4882a593Smuzhiyunconfig ROCKCHIP_EFUSE
142*4882a593Smuzhiyun	tristate "Rockchip eFuse Support"
143*4882a593Smuzhiyun	depends on ARCH_ROCKCHIP || COMPILE_TEST
144*4882a593Smuzhiyun	depends on HAS_IOMEM
145*4882a593Smuzhiyun	help
146*4882a593Smuzhiyun	  This is a simple drive to dump specified values of Rockchip SoC
147*4882a593Smuzhiyun	  from eFuse, such as cpu-leakage.
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
150*4882a593Smuzhiyun	  will be called nvmem_rockchip_efuse.
151*4882a593Smuzhiyun
152*4882a593Smuzhiyunconfig ROCKCHIP_OTP
153*4882a593Smuzhiyun	tristate "Rockchip OTP controller support"
154*4882a593Smuzhiyun	depends on ARCH_ROCKCHIP || COMPILE_TEST
155*4882a593Smuzhiyun	depends on HAS_IOMEM
156*4882a593Smuzhiyun	help
157*4882a593Smuzhiyun	  This is a simple drive to dump specified values of Rockchip SoC
158*4882a593Smuzhiyun	  from otp, such as cpu-leakage.
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
161*4882a593Smuzhiyun	  will be called nvmem_rockchip_otp.
162*4882a593Smuzhiyun
163*4882a593Smuzhiyunconfig NVMEM_ROCKCHIP_SEC_OTP
164*4882a593Smuzhiyun	tristate "Rockchip Secure OTP controller support"
165*4882a593Smuzhiyun	depends on ARCH_ROCKCHIP || COMPILE_TEST
166*4882a593Smuzhiyun	depends on TEE && OPTEE
167*4882a593Smuzhiyun	help
168*4882a593Smuzhiyun	  This is a simple drive to read and write non-protected
169*4882a593Smuzhiyun	  oem zone in secure otp.
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
172*4882a593Smuzhiyun	  will be called nvmem-rockchip-secure-otp.
173*4882a593Smuzhiyun
174*4882a593Smuzhiyunconfig NVMEM_BCM_OCOTP
175*4882a593Smuzhiyun	tristate "Broadcom On-Chip OTP Controller support"
176*4882a593Smuzhiyun	depends on ARCH_BCM_IPROC || COMPILE_TEST
177*4882a593Smuzhiyun	depends on HAS_IOMEM
178*4882a593Smuzhiyun	default ARCH_BCM_IPROC
179*4882a593Smuzhiyun	help
180*4882a593Smuzhiyun	  Say y here to enable read/write access to the Broadcom OTP
181*4882a593Smuzhiyun	  controller.
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
184*4882a593Smuzhiyun	  will be called nvmem-bcm-ocotp.
185*4882a593Smuzhiyun
186*4882a593Smuzhiyunconfig NVMEM_STM32_ROMEM
187*4882a593Smuzhiyun	tristate "STMicroelectronics STM32 factory-programmed memory support"
188*4882a593Smuzhiyun	depends on ARCH_STM32 || COMPILE_TEST
189*4882a593Smuzhiyun	help
190*4882a593Smuzhiyun	  Say y here to enable read-only access for STMicroelectronics STM32
191*4882a593Smuzhiyun	  factory-programmed memory area.
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
194*4882a593Smuzhiyun	  will be called nvmem-stm32-romem.
195*4882a593Smuzhiyun
196*4882a593Smuzhiyunconfig NVMEM_SUNXI_SID
197*4882a593Smuzhiyun	tristate "Allwinner SoCs SID support"
198*4882a593Smuzhiyun	depends on ARCH_SUNXI
199*4882a593Smuzhiyun	help
200*4882a593Smuzhiyun	  This is a driver for the 'security ID' available on various Allwinner
201*4882a593Smuzhiyun	  devices.
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
204*4882a593Smuzhiyun	  will be called nvmem_sunxi_sid.
205*4882a593Smuzhiyun
206*4882a593Smuzhiyunconfig UNIPHIER_EFUSE
207*4882a593Smuzhiyun	tristate "UniPhier SoCs eFuse support"
208*4882a593Smuzhiyun	depends on ARCH_UNIPHIER || COMPILE_TEST
209*4882a593Smuzhiyun	depends on HAS_IOMEM
210*4882a593Smuzhiyun	help
211*4882a593Smuzhiyun	  This is a simple driver to dump specified values of UniPhier SoC
212*4882a593Smuzhiyun	  from eFuse.
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
215*4882a593Smuzhiyun	  will be called nvmem-uniphier-efuse.
216*4882a593Smuzhiyun
217*4882a593Smuzhiyunconfig NVMEM_VF610_OCOTP
218*4882a593Smuzhiyun	tristate "VF610 SoC OCOTP support"
219*4882a593Smuzhiyun	depends on SOC_VF610 || COMPILE_TEST
220*4882a593Smuzhiyun	depends on HAS_IOMEM
221*4882a593Smuzhiyun	help
222*4882a593Smuzhiyun	  This is a driver for the 'OCOTP' peripheral available on Vybrid
223*4882a593Smuzhiyun	  devices like VF5xx and VF6xx.
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun	  This driver can also be build as a module. If so, the module will
226*4882a593Smuzhiyun	  be called nvmem-vf610-ocotp.
227*4882a593Smuzhiyun
228*4882a593Smuzhiyunconfig MESON_EFUSE
229*4882a593Smuzhiyun	tristate "Amlogic Meson GX eFuse Support"
230*4882a593Smuzhiyun	depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
231*4882a593Smuzhiyun	help
232*4882a593Smuzhiyun	  This is a driver to retrieve specific values from the eFuse found on
233*4882a593Smuzhiyun	  the Amlogic Meson GX SoCs.
234*4882a593Smuzhiyun
235*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
236*4882a593Smuzhiyun	  will be called nvmem_meson_efuse.
237*4882a593Smuzhiyun
238*4882a593Smuzhiyunconfig MESON_MX_EFUSE
239*4882a593Smuzhiyun	tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
240*4882a593Smuzhiyun	depends on ARCH_MESON || COMPILE_TEST
241*4882a593Smuzhiyun	help
242*4882a593Smuzhiyun	  This is a driver to retrieve specific values from the eFuse found on
243*4882a593Smuzhiyun	  the Amlogic Meson6, Meson8 and Meson8b SoCs.
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
246*4882a593Smuzhiyun	  will be called nvmem_meson_mx_efuse.
247*4882a593Smuzhiyun
248*4882a593Smuzhiyunconfig NVMEM_SNVS_LPGPR
249*4882a593Smuzhiyun	tristate "Support for Low Power General Purpose Register"
250*4882a593Smuzhiyun	depends on ARCH_MXC || COMPILE_TEST
251*4882a593Smuzhiyun	help
252*4882a593Smuzhiyun	  This is a driver for Low Power General Purpose Register (LPGPR) available on
253*4882a593Smuzhiyun	  i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
256*4882a593Smuzhiyun	  will be called nvmem-snvs-lpgpr.
257*4882a593Smuzhiyun
258*4882a593Smuzhiyunconfig RAVE_SP_EEPROM
259*4882a593Smuzhiyun	tristate "Rave SP EEPROM Support"
260*4882a593Smuzhiyun	depends on RAVE_SP_CORE
261*4882a593Smuzhiyun	help
262*4882a593Smuzhiyun	  Say y here to enable Rave SP EEPROM support.
263*4882a593Smuzhiyun
264*4882a593Smuzhiyunconfig SC27XX_EFUSE
265*4882a593Smuzhiyun	tristate "Spreadtrum SC27XX eFuse Support"
266*4882a593Smuzhiyun	depends on MFD_SC27XX_PMIC || COMPILE_TEST
267*4882a593Smuzhiyun	depends on HAS_IOMEM
268*4882a593Smuzhiyun	help
269*4882a593Smuzhiyun	  This is a simple driver to dump specified values of Spreadtrum
270*4882a593Smuzhiyun	  SC27XX PMICs from eFuse.
271*4882a593Smuzhiyun
272*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
273*4882a593Smuzhiyun	  will be called nvmem-sc27xx-efuse.
274*4882a593Smuzhiyun
275*4882a593Smuzhiyunconfig NVMEM_ZYNQMP
276*4882a593Smuzhiyun	bool "Xilinx ZYNQMP SoC nvmem firmware support"
277*4882a593Smuzhiyun	depends on ARCH_ZYNQMP
278*4882a593Smuzhiyun	help
279*4882a593Smuzhiyun	  This is a driver to access hardware related data like
280*4882a593Smuzhiyun	  soc revision, IDCODE... etc by using the firmware
281*4882a593Smuzhiyun	  interface.
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun	  If sure, say yes. If unsure, say no.
284*4882a593Smuzhiyun
285*4882a593Smuzhiyunconfig SPRD_EFUSE
286*4882a593Smuzhiyun	tristate "Spreadtrum SoC eFuse Support"
287*4882a593Smuzhiyun	depends on ARCH_SPRD || COMPILE_TEST
288*4882a593Smuzhiyun	depends on HAS_IOMEM
289*4882a593Smuzhiyun	help
290*4882a593Smuzhiyun	  This is a simple driver to dump specified values of Spreadtrum
291*4882a593Smuzhiyun	  SoCs from eFuse.
292*4882a593Smuzhiyun
293*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module
294*4882a593Smuzhiyun	  will be called nvmem-sprd-efuse.
295*4882a593Smuzhiyun
296*4882a593Smuzhiyunendif
297