Kconfig (28fc7c986f01fdcfd28af648be2597624cac0e27) Kconfig (a06d9e5a63b7c2f622c908cd9600ce735e70f7c6)
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.

--- 7 unchanged lines hidden (view full) ---

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
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.

--- 7 unchanged lines hidden (view full) ---

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
24# Devices
25
26config NVMEM_APPLE_EFUSES
27 tristate "Apple eFuse support"
28 depends on ARCH_APPLE || COMPILE_TEST
29 default ARCH_APPLE
30 help
31 Say y here to enable support for reading eFuses on Apple SoCs
32 such as the M1. These are e.g. used to store factory programmed
33 calibration data required for the PCIe or the USB-C PHY.
34
35 This driver can also be built as a module. If so, the module will
36 be called nvmem-apple-efuses.
37
38config NVMEM_BCM_OCOTP
39 tristate "Broadcom On-Chip OTP Controller support"
40 depends on ARCH_BCM_IPROC || COMPILE_TEST
41 depends on HAS_IOMEM
42 default ARCH_BCM_IPROC
43 help
44 Say y here to enable read/write access to the Broadcom OTP
45 controller.
46
47 This driver can also be built as a module. If so, the module
48 will be called nvmem-bcm-ocotp.
49
50config NVMEM_BRCM_NVRAM
51 tristate "Broadcom's NVRAM support"
52 depends on ARCH_BCM_5301X || COMPILE_TEST
53 depends on HAS_IOMEM
54 help
55 This driver provides support for Broadcom's NVRAM that can be accessed
56 using I/O mapping.
57
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

--- 27 unchanged lines hidden (view full) ---

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
58config NVMEM_IMX_IIM
59 tristate "i.MX IC Identification Module support"
60 depends on ARCH_MXC || COMPILE_TEST
61 help
62 This is a driver for the IC Identification Module (IIM) available on
63 i.MX SoCs, providing access to 4 Kbits of programmable
64 eFuses.
65

--- 27 unchanged lines hidden (view full) ---

93 depends on OF
94 select REGMAP_MMIO
95 help
96 Say Y here to include support for JZ4780 efuse memory found on
97 all JZ4780 SoC based devices.
98 To compile this driver as a module, choose M here: the module
99 will be called nvmem_jz4780_efuse.
100
101config NVMEM_LAYERSCAPE_SFP
102 tristate "Layerscape SFP (Security Fuse Processor) support"
103 depends on ARCH_LAYERSCAPE || COMPILE_TEST
104 depends on HAS_IOMEM
105 select REGMAP_MMIO
106 help
107 This driver provides support to read the eFuses on Freescale
108 Layerscape SoC's. For example, the vendor provides a per part
109 unique ID there.
110
111 This driver can also be built as a module. If so, the module
112 will be called layerscape-sfp.
113
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

--- 4 unchanged lines hidden (view full) ---

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
114config NVMEM_LPC18XX_EEPROM
115 tristate "NXP LPC18XX EEPROM Memory Support"
116 depends on ARCH_LPC18XX || COMPILE_TEST
117 depends on HAS_IOMEM
118 help
119 Say Y here to include support for NXP LPC18xx EEPROM memory found in
120 NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
121 To compile this driver as a module, choose M here: the module

--- 4 unchanged lines hidden (view full) ---

126 depends on ARCH_LPC18XX || COMPILE_TEST
127 depends on HAS_IOMEM
128 help
129 Say Y here to include support for NXP LPC18xx OTP memory found on
130 all LPC18xx and LPC43xx devices.
131 To compile this driver as a module, choose M here: the module
132 will be called nvmem_lpc18xx_otp.
133
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
134config NVMEM_MESON_EFUSE
135 tristate "Amlogic Meson GX eFuse Support"
136 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
91 help
137 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.
138 This is a driver to retrieve specific values from the eFuse found on
139 the Amlogic Meson GX SoCs.
95
96 This driver can also be built as a module. If so, the module
140
141 This driver can also be built as a module. If so, the module
97 will be called nvmem-mxs-ocotp.
142 will be called nvmem_meson_efuse.
98
143
144config NVMEM_MESON_MX_EFUSE
145 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
146 depends on ARCH_MESON || COMPILE_TEST
147 help
148 This is a driver to retrieve specific values from the eFuse found on
149 the Amlogic Meson6, Meson8 and Meson8b SoCs.
150
151 This driver can also be built as a module. If so, the module
152 will be called nvmem_meson_mx_efuse.
153
154config NVMEM_MICROCHIP_OTPC
155 tristate "Microchip OTPC support"
156 depends on ARCH_AT91 || COMPILE_TEST
157 help
158 This driver enable the OTP controller available on Microchip SAMA7G5
159 SoCs. It controlls the access to the OTP memory connected to it.
160
99config NVMEM_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
161config NVMEM_MTK_EFUSE
162 tristate "Mediatek SoCs EFUSE support"
163 depends on ARCH_MEDIATEK || COMPILE_TEST
164 depends on HAS_IOMEM
165 help
166 This is a driver to access hardware related data like sensor
167 calibration, HDMI impedance etc.
168
169 This driver can also be built as a module. If so, the module
170 will be called efuse-mtk.
171
110config NVMEM_MICROCHIP_OTPC
111 tristate "Microchip OTPC support"
112 depends on ARCH_AT91 || COMPILE_TEST
172config NVMEM_MXS_OCOTP
173 tristate "Freescale MXS On-Chip OTP Memory Support"
174 depends on ARCH_MXS || COMPILE_TEST
175 depends on HAS_IOMEM
113 help
176 help
114 This driver enable the OTP controller available on Microchip SAMA7G5
115 SoCs. It controlls the access to the OTP memory connected to it.
177 If you say Y here, you will get readonly access to the
178 One Time Programmable memory pages that are stored
179 on the Freescale i.MX23/i.MX28 processor.
116
180
181 This driver can also be built as a module. If so, the module
182 will be called nvmem-mxs-ocotp.
183
117config NVMEM_NINTENDO_OTP
118 tristate "Nintendo Wii and Wii U OTP Support"
119 depends on WII || COMPILE_TEST
120 help
121 This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
122
123 This memory contains common and per-console keys, signatures and
124 related data required to access peripherals.

--- 7 unchanged lines hidden (view full) ---

132 depends on HAS_IOMEM
133 help
134 Say y here to enable QFPROM support. The QFPROM provides access
135 functions for QFPROM data to rest of the drivers via nvmem interface.
136
137 This driver can also be built as a module. If so, the module
138 will be called nvmem_qfprom.
139
184config NVMEM_NINTENDO_OTP
185 tristate "Nintendo Wii and Wii U OTP Support"
186 depends on WII || COMPILE_TEST
187 help
188 This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
189
190 This memory contains common and per-console keys, signatures and
191 related data required to access peripherals.

--- 7 unchanged lines hidden (view full) ---

199 depends on HAS_IOMEM
200 help
201 Say y here to enable QFPROM support. The QFPROM provides access
202 functions for QFPROM data to rest of the drivers via nvmem interface.
203
204 This driver can also be built as a module. If so, the module
205 will be called nvmem_qfprom.
206
140config NVMEM_SPMI_SDAM
141 tristate "SPMI SDAM Support"
142 depends on SPMI
207config NVMEM_RAVE_SP_EEPROM
208 tristate "Rave SP EEPROM Support"
209 depends on RAVE_SP_CORE
143 help
210 help
144 This driver supports the Shared Direct Access Memory Module on
145 Qualcomm Technologies, Inc. PMICs. It provides the clients
146 an interface to read/write to the SDAM module's shared memory.
211 Say y here to enable Rave SP EEPROM support.
147
212
213config NVMEM_RMEM
214 tristate "Reserved Memory Based Driver Support"
215 depends on HAS_IOMEM
216 help
217 This driver maps reserved memory into an nvmem device. It might be
218 useful to expose information left by firmware in memory.
219
220 This driver can also be built as a module. If so, the module
221 will be called nvmem-rmem.
222
148config NVMEM_ROCKCHIP_EFUSE
149 tristate "Rockchip eFuse Support"
150 depends on ARCH_ROCKCHIP || COMPILE_TEST
151 depends on HAS_IOMEM
152 help
153 This is a simple drive to dump specified values of Rockchip SoC
154 from eFuse, such as cpu-leakage.
155

--- 6 unchanged lines hidden (view full) ---

162 depends on HAS_IOMEM
163 help
164 This is a simple drive to dump specified values of Rockchip SoC
165 from otp, such as cpu-leakage.
166
167 This driver can also be built as a module. If so, the module
168 will be called nvmem_rockchip_otp.
169
223config NVMEM_ROCKCHIP_EFUSE
224 tristate "Rockchip eFuse Support"
225 depends on ARCH_ROCKCHIP || COMPILE_TEST
226 depends on HAS_IOMEM
227 help
228 This is a simple drive to dump specified values of Rockchip SoC
229 from eFuse, such as cpu-leakage.
230

--- 6 unchanged lines hidden (view full) ---

237 depends on HAS_IOMEM
238 help
239 This is a simple drive to dump specified values of Rockchip SoC
240 from otp, such as cpu-leakage.
241
242 This driver can also be built as a module. If so, the module
243 will be called nvmem_rockchip_otp.
244
170config NVMEM_BCM_OCOTP
171 tristate "Broadcom On-Chip OTP Controller support"
172 depends on ARCH_BCM_IPROC || COMPILE_TEST
245config NVMEM_SC27XX_EFUSE
246 tristate "Spreadtrum SC27XX eFuse Support"
247 depends on MFD_SC27XX_PMIC || COMPILE_TEST
173 depends on HAS_IOMEM
248 depends on HAS_IOMEM
174 default ARCH_BCM_IPROC
175 help
249 help
176 Say y here to enable read/write access to the Broadcom OTP
177 controller.
250 This is a simple driver to dump specified values of Spreadtrum
251 SC27XX PMICs from eFuse.
178
179 This driver can also be built as a module. If so, the module
252
253 This driver can also be built as a module. If so, the module
180 will be called nvmem-bcm-ocotp.
254 will be called nvmem-sc27xx-efuse.
181
255
182config NVMEM_STM32_ROMEM
183 tristate "STMicroelectronics STM32 factory-programmed memory support"
184 depends on ARCH_STM32 || COMPILE_TEST
185 help
186 Say y here to enable read-only access for STMicroelectronics STM32
187 factory-programmed memory area.
188
189 This driver can also be built as a module. If so, the module
190 will be called nvmem-stm32-romem.
191
192config NVMEM_SUNXI_SID
193 tristate "Allwinner SoCs SID support"
194 depends on ARCH_SUNXI
195 help
196 This is a driver for the 'security ID' available on various Allwinner
197 devices.
198
199 This driver can also be built as a module. If so, the module
200 will be called nvmem_sunxi_sid.
201
202config NVMEM_UNIPHIER_EFUSE
203 tristate "UniPhier SoCs eFuse support"
204 depends on ARCH_UNIPHIER || COMPILE_TEST
205 depends on HAS_IOMEM
206 help
207 This is a simple driver to dump specified values of UniPhier SoC
208 from eFuse.
209
210 This driver can also be built as a module. If so, the module
211 will be called nvmem-uniphier-efuse.
212
213config NVMEM_VF610_OCOTP
214 tristate "VF610 SoC OCOTP support"
215 depends on SOC_VF610 || COMPILE_TEST
216 depends on HAS_IOMEM
217 help
218 This is a driver for the 'OCOTP' peripheral available on Vybrid
219 devices like VF5xx and VF6xx.
220
221 This driver can also be build as a module. If so, the module will
222 be called nvmem-vf610-ocotp.
223
224config NVMEM_MESON_EFUSE
225 tristate "Amlogic Meson GX eFuse Support"
226 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
227 help
228 This is a driver to retrieve specific values from the eFuse found on
229 the Amlogic Meson GX SoCs.
230
231 This driver can also be built as a module. If so, the module
232 will be called nvmem_meson_efuse.
233
234config NVMEM_MESON_MX_EFUSE
235 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
236 depends on ARCH_MESON || COMPILE_TEST
237 help
238 This is a driver to retrieve specific values from the eFuse found on
239 the Amlogic Meson6, Meson8 and Meson8b SoCs.
240
241 This driver can also be built as a module. If so, the module
242 will be called nvmem_meson_mx_efuse.
243
244config NVMEM_SNVS_LPGPR
245 tristate "Support for Low Power General Purpose Register"
246 depends on ARCH_MXC || COMPILE_TEST
247 help
248 This is a driver for Low Power General Purpose Register (LPGPR) available on
249 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
250
251 This driver can also be built as a module. If so, the module
252 will be called nvmem-snvs-lpgpr.
253
256config NVMEM_SNVS_LPGPR
257 tristate "Support for Low Power General Purpose Register"
258 depends on ARCH_MXC || COMPILE_TEST
259 help
260 This is a driver for Low Power General Purpose Register (LPGPR) available on
261 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
262
263 This driver can also be built as a module. If so, the module
264 will be called nvmem-snvs-lpgpr.
265
254config NVMEM_RAVE_SP_EEPROM
255 tristate "Rave SP EEPROM Support"
256 depends on RAVE_SP_CORE
266config NVMEM_SPMI_SDAM
267 tristate "SPMI SDAM Support"
268 depends on SPMI
257 help
269 help
258 Say y here to enable Rave SP EEPROM support.
270 This driver supports the Shared Direct Access Memory Module on
271 Qualcomm Technologies, Inc. PMICs. It provides the clients
272 an interface to read/write to the SDAM module's shared memory.
259
273
260config NVMEM_SC27XX_EFUSE
261 tristate "Spreadtrum SC27XX eFuse Support"
262 depends on MFD_SC27XX_PMIC || COMPILE_TEST
263 depends on HAS_IOMEM
264 help
265 This is a simple driver to dump specified values of Spreadtrum
266 SC27XX PMICs from eFuse.
267
268 This driver can also be built as a module. If so, the module
269 will be called nvmem-sc27xx-efuse.
270
271config NVMEM_ZYNQMP
272 bool "Xilinx ZYNQMP SoC nvmem firmware support"
273 depends on ARCH_ZYNQMP
274 help
275 This is a driver to access hardware related data like
276 soc revision, IDCODE... etc by using the firmware
277 interface.
278
279 If sure, say yes. If unsure, say no.
280
281config NVMEM_SPRD_EFUSE
282 tristate "Spreadtrum SoC eFuse Support"
283 depends on ARCH_SPRD || COMPILE_TEST
284 depends on HAS_IOMEM
285 help
286 This is a simple driver to dump specified values of Spreadtrum
287 SoCs from eFuse.
288
289 This driver can also be built as a module. If so, the module
290 will be called nvmem-sprd-efuse.
291
274config NVMEM_SPRD_EFUSE
275 tristate "Spreadtrum SoC eFuse Support"
276 depends on ARCH_SPRD || COMPILE_TEST
277 depends on HAS_IOMEM
278 help
279 This is a simple driver to dump specified values of Spreadtrum
280 SoCs from eFuse.
281
282 This driver can also be built as a module. If so, the module
283 will be called nvmem-sprd-efuse.
284
292config NVMEM_RMEM
293 tristate "Reserved Memory Based Driver Support"
294 depends on HAS_IOMEM
285config NVMEM_STM32_ROMEM
286 tristate "STMicroelectronics STM32 factory-programmed memory support"
287 depends on ARCH_STM32 || COMPILE_TEST
295 help
288 help
296 This driver maps reserved memory into an nvmem device. It might be
297 useful to expose information left by firmware in memory.
289 Say y here to enable read-only access for STMicroelectronics STM32
290 factory-programmed memory area.
298
299 This driver can also be built as a module. If so, the module
291
292 This driver can also be built as a module. If so, the module
300 will be called nvmem-rmem.
293 will be called nvmem-stm32-romem.
301
294
302config NVMEM_BRCM_NVRAM
303 tristate "Broadcom's NVRAM support"
304 depends on ARCH_BCM_5301X || COMPILE_TEST
305 depends on HAS_IOMEM
306 help
307 This driver provides support for Broadcom's NVRAM that can be accessed
308 using I/O mapping.
309
310config NVMEM_LAYERSCAPE_SFP
311 tristate "Layerscape SFP (Security Fuse Processor) support"
312 depends on ARCH_LAYERSCAPE || COMPILE_TEST
313 depends on HAS_IOMEM
314 select REGMAP_MMIO
315 help
316 This driver provides support to read the eFuses on Freescale
317 Layerscape SoC's. For example, the vendor provides a per part
318 unique ID there.
319
320 This driver can also be built as a module. If so, the module
321 will be called layerscape-sfp.
322
323config NVMEM_SUNPLUS_OCOTP
324 tristate "Sunplus SoC OTP support"
325 depends on SOC_SP7021 || COMPILE_TEST
326 depends on HAS_IOMEM
327 help
328 This is a driver for the On-chip OTP controller (OCOTP) available
329 on Sunplus SoCs. It provides access to 128 bytes of one-time
330 programmable eFuse.
331
332 This driver can also be built as a module. If so, the module
333 will be called nvmem-sunplus-ocotp.
334
295config NVMEM_SUNPLUS_OCOTP
296 tristate "Sunplus SoC OTP support"
297 depends on SOC_SP7021 || COMPILE_TEST
298 depends on HAS_IOMEM
299 help
300 This is a driver for the On-chip OTP controller (OCOTP) available
301 on Sunplus SoCs. It provides access to 128 bytes of one-time
302 programmable eFuse.
303
304 This driver can also be built as a module. If so, the module
305 will be called nvmem-sunplus-ocotp.
306
335config NVMEM_APPLE_EFUSES
336 tristate "Apple eFuse support"
337 depends on ARCH_APPLE || COMPILE_TEST
338 default ARCH_APPLE
307config NVMEM_SUNXI_SID
308 tristate "Allwinner SoCs SID support"
309 depends on ARCH_SUNXI
339 help
310 help
340 Say y here to enable support for reading eFuses on Apple SoCs
341 such as the M1. These are e.g. used to store factory programmed
342 calibration data required for the PCIe or the USB-C PHY.
311 This is a driver for the 'security ID' available on various Allwinner
312 devices.
343
313
344 This driver can also be built as a module. If so, the module will
345 be called nvmem-apple-efuses.
314 This driver can also be built as a module. If so, the module
315 will be called nvmem_sunxi_sid.
346
347config NVMEM_U_BOOT_ENV
348 tristate "U-Boot environment variables support"
349 depends on OF && MTD
350 select CRC32
351 help
352 U-Boot stores its setup as environment variables. This driver adds
353 support for verifying & exporting such data. It also exposes variables
354 as NVMEM cells so they can be referenced by other drivers.
355
356 Currently this drivers works only with env variables on top of MTD.
357
358 If compiled as module it will be called nvmem_u-boot-env.
359
316
317config NVMEM_U_BOOT_ENV
318 tristate "U-Boot environment variables support"
319 depends on OF && MTD
320 select CRC32
321 help
322 U-Boot stores its setup as environment variables. This driver adds
323 support for verifying & exporting such data. It also exposes variables
324 as NVMEM cells so they can be referenced by other drivers.
325
326 Currently this drivers works only with env variables on top of MTD.
327
328 If compiled as module it will be called nvmem_u-boot-env.
329
330config NVMEM_UNIPHIER_EFUSE
331 tristate "UniPhier SoCs eFuse support"
332 depends on ARCH_UNIPHIER || COMPILE_TEST
333 depends on HAS_IOMEM
334 help
335 This is a simple driver to dump specified values of UniPhier SoC
336 from eFuse.
337
338 This driver can also be built as a module. If so, the module
339 will be called nvmem-uniphier-efuse.
340
341config NVMEM_VF610_OCOTP
342 tristate "VF610 SoC OCOTP support"
343 depends on SOC_VF610 || COMPILE_TEST
344 depends on HAS_IOMEM
345 help
346 This is a driver for the 'OCOTP' peripheral available on Vybrid
347 devices like VF5xx and VF6xx.
348
349 This driver can also be build as a module. If so, the module will
350 be called nvmem-vf610-ocotp.
351
352config NVMEM_ZYNQMP
353 bool "Xilinx ZYNQMP SoC nvmem firmware support"
354 depends on ARCH_ZYNQMP
355 help
356 This is a driver to access hardware related data like
357 soc revision, IDCODE... etc by using the firmware
358 interface.
359
360 If sure, say yes. If unsure, say no.
361
360endif
362endif