summaryrefslogtreecommitdiff
path: root/drivers/nvmem/Kconfig
blob: 7ab12fc1044c111c8f34b3857bf6f29502674cd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
# SPDX-License-Identifier: GPL-2.0-only
menuconfig NVMEM
	bool "NVMEM Support"
	help
	  Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...

	  This framework is designed to provide a generic interface to NVMEM
	  from both the Linux Kernel and the userspace.

	  If unsure, say no.

if NVMEM

config NVMEM_SYSFS
	bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
	depends on SYSFS
	default y
	help
	 Say Y here to add a sysfs interface for NVMEM.

	 This interface is mostly used by userspace applications to
	 read/write directly into nvmem.

# Layouts

source "drivers/nvmem/layouts/Kconfig"

# Devices

config NVMEM_APPLE_EFUSES
	tristate "Apple eFuse support"
	depends on ARCH_APPLE || COMPILE_TEST
	default ARCH_APPLE
	help
	  Say y here to enable support for reading eFuses on Apple SoCs
	  such as the M1. These are e.g. used to store factory programmed
	  calibration data required for the PCIe or the USB-C PHY.

	  This driver can also be built as a module. If so, the module will
	  be called nvmem-apple-efuses.

config NVMEM_BCM_OCOTP
	tristate "Broadcom On-Chip OTP Controller support"
	depends on ARCH_BCM_IPROC || COMPILE_TEST
	depends on HAS_IOMEM
	default ARCH_BCM_IPROC
	help
	  Say y here to enable read/write access to the Broadcom OTP
	  controller.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-bcm-ocotp.

config NVMEM_BRCM_NVRAM
	tristate "Broadcom's NVRAM support"
	depends on ARCH_BCM_5301X || COMPILE_TEST
	depends on HAS_IOMEM
	select GENERIC_NET_UTILS
	help
	  This driver provides support for Broadcom's NVRAM that can be accessed
	  using I/O mapping.

config NVMEM_IMX_IIM
	tristate "i.MX IC Identification Module support"
	depends on ARCH_MXC || COMPILE_TEST
	help
	  This is a driver for the IC Identification Module (IIM) available on
	  i.MX SoCs, providing access to 4 Kbits of programmable
	  eFuses.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-imx-iim.

config NVMEM_IMX_OCOTP
	tristate "i.MX 6/7/8 On-Chip OTP Controller support"
	depends on ARCH_MXC || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This is a driver for the On-Chip OTP Controller (OCOTP) available on
	  i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
	  eFuses.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-imx-ocotp.

config NVMEM_IMX_OCOTP_ELE
	tristate "i.MX On-Chip OTP Controller support"
	depends on ARCH_MXC || COMPILE_TEST
	depends on HAS_IOMEM
	depends on OF
	help
	  This is a driver for the On-Chip OTP Controller (OCOTP)
	  available on i.MX SoCs which has ELE.

config NVMEM_IMX_OCOTP_SCU
	tristate "i.MX8 SCU On-Chip OTP Controller support"
	depends on IMX_SCU
	depends on HAVE_ARM_SMCCC
	help
	  This is a driver for the SCU On-Chip OTP Controller (OCOTP)
	  available on i.MX8 SoCs.

config NVMEM_JZ4780_EFUSE
	tristate "JZ4780 EFUSE Memory Support"
	depends on MACH_INGENIC || COMPILE_TEST
	depends on HAS_IOMEM
	depends on OF
	select REGMAP_MMIO
	help
	  Say Y here to include support for JZ4780 efuse memory found on
	  all JZ4780 SoC based devices.
	  To compile this driver as a module, choose M here: the module
	  will be called nvmem_jz4780_efuse.

config NVMEM_LAN9662_OTPC
	tristate "Microchip LAN9662 OTP controller support"
	depends on SOC_LAN966 || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This driver enables the OTP controller available on Microchip LAN9662
	  SoCs. It controls the access to the OTP memory connected to it.

config NVMEM_LAYERSCAPE_SFP
	tristate "Layerscape SFP (Security Fuse Processor) support"
	depends on ARCH_LAYERSCAPE || COMPILE_TEST
	depends on HAS_IOMEM
	select REGMAP_MMIO
	help
	  This driver provides support to read the eFuses on Freescale
	  Layerscape SoC's. For example, the vendor provides a per part
	  unique ID there.

	  This driver can also be built as a module. If so, the module
	  will be called layerscape-sfp.

config NVMEM_LPC18XX_EEPROM
	tristate "NXP LPC18XX EEPROM Memory Support"
	depends on ARCH_LPC18XX || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Say Y here to include support for NXP LPC18xx EEPROM memory found in
	  NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
	  To compile this driver as a module, choose M here: the module
	  will be called nvmem_lpc18xx_eeprom.

config NVMEM_LPC18XX_OTP
	tristate "NXP LPC18XX OTP Memory Support"
	depends on ARCH_LPC18XX || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Say Y here to include support for NXP LPC18xx OTP memory found on
	  all LPC18xx and LPC43xx devices.
	  To compile this driver as a module, choose M here: the module
	  will be called nvmem_lpc18xx_otp.

config NVMEM_MESON_EFUSE
	tristate "Amlogic Meson GX eFuse Support"
	depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
	help
	  This is a driver to retrieve specific values from the eFuse found on
	  the Amlogic Meson GX SoCs.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem_meson_efuse.

config NVMEM_MESON_MX_EFUSE
	tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
	depends on ARCH_MESON || COMPILE_TEST
	help
	  This is a driver to retrieve specific values from the eFuse found on
	  the Amlogic Meson6, Meson8 and Meson8b SoCs.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem_meson_mx_efuse.

config NVMEM_MICROCHIP_OTPC
	tristate "Microchip OTPC support"
	depends on ARCH_AT91 || COMPILE_TEST
	help
	  This driver enable the OTP controller available on Microchip SAMA7G5
	  SoCs. It controls the access to the OTP memory connected to it.

config NVMEM_MTK_EFUSE
	tristate "Mediatek SoCs EFUSE support"
	depends on ARCH_MEDIATEK || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This is a driver to access hardware related data like sensor
	  calibration, HDMI impedance etc.

	  This driver can also be built as a module. If so, the module
	  will be called efuse-mtk.

config NVMEM_MXS_OCOTP
	tristate "Freescale MXS On-Chip OTP Memory Support"
	depends on ARCH_MXS || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  If you say Y here, you will get readonly access to the
	  One Time Programmable memory pages that are stored
	  on the Freescale i.MX23/i.MX28 processor.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-mxs-ocotp.

config NVMEM_NINTENDO_OTP
	tristate "Nintendo Wii and Wii U OTP Support"
	depends on WII || COMPILE_TEST
	help
	  This is a driver exposing the OTP of a Nintendo Wii or Wii U console.

	  This memory contains common and per-console keys, signatures and
	  related data required to access peripherals.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-nintendo-otp.

config NVMEM_QCOM_QFPROM
	tristate "QCOM QFPROM Support"
	depends on ARCH_QCOM || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Say y here to enable QFPROM support. The QFPROM provides access
	  functions for QFPROM data to rest of the drivers via nvmem interface.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem_qfprom.

config NVMEM_RAVE_SP_EEPROM
	tristate "Rave SP EEPROM Support"
	depends on RAVE_SP_CORE
	help
	  Say y here to enable Rave SP EEPROM support.

config NVMEM_RMEM
	tristate "Reserved Memory Based Driver Support"
	depends on HAS_IOMEM
	help
	  This driver maps reserved memory into an nvmem device. It might be
	  useful to expose information left by firmware in memory.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-rmem.

config NVMEM_ROCKCHIP_EFUSE
	tristate "Rockchip eFuse Support"
	depends on ARCH_ROCKCHIP || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This is a simple driver to dump specified values of Rockchip SoC
	  from eFuse, such as cpu-leakage.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem_rockchip_efuse.

config NVMEM_ROCKCHIP_OTP
	tristate "Rockchip OTP controller support"
	depends on ARCH_ROCKCHIP || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This is a simple driver to dump specified values of Rockchip SoC
	  from OTP, such as cpu-leakage.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem_rockchip_otp.

config NVMEM_SC27XX_EFUSE
	tristate "Spreadtrum SC27XX eFuse Support"
	depends on MFD_SC27XX_PMIC || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This is a simple driver to dump specified values of Spreadtrum
	  SC27XX PMICs from eFuse.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-sc27xx-efuse.

config NVMEM_SNVS_LPGPR
	tristate "Support for Low Power General Purpose Register"
	depends on ARCH_MXC || COMPILE_TEST
	help
	  This is a driver for Low Power General Purpose Register (LPGPR) available on
	  i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-snvs-lpgpr.

config NVMEM_SPMI_SDAM
	tristate "SPMI SDAM Support"
	depends on SPMI
	help
	  This driver supports the Shared Direct Access Memory Module on
	  Qualcomm Technologies, Inc. PMICs. It provides the clients
	  an interface to read/write to the SDAM module's shared memory.

config NVMEM_SPRD_EFUSE
	tristate "Spreadtrum SoC eFuse Support"
	depends on ARCH_SPRD || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This is a simple driver to dump specified values of Spreadtrum
	  SoCs from eFuse.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-sprd-efuse.

config NVMEM_STM32_BSEC_OPTEE_TA
	def_bool NVMEM_STM32_ROMEM && OPTEE
	help
	  Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE
	  trusted application STM32MP BSEC.

	  This library is a used by stm32-romem driver or included in the module
	  called nvmem-stm32-romem.

config NVMEM_STM32_ROMEM
	tristate "STMicroelectronics STM32 factory-programmed memory support"
	depends on ARCH_STM32 || COMPILE_TEST
	depends on OPTEE || !OPTEE
	help
	  Say y here to enable read-only access for STMicroelectronics STM32
	  factory-programmed memory area.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-stm32-romem.

config NVMEM_SUNPLUS_OCOTP
	tristate "Sunplus SoC OTP support"
	depends on SOC_SP7021 || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This is a driver for the On-chip OTP controller (OCOTP) available
	  on Sunplus SoCs. It provides access to 128 bytes of one-time
	  programmable eFuse.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-sunplus-ocotp.

config NVMEM_SUNXI_SID
	tristate "Allwinner SoCs SID support"
	depends on ARCH_SUNXI
	help
	  This is a driver for the 'security ID' available on various Allwinner
	  devices.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem_sunxi_sid.

config NVMEM_U_BOOT_ENV
	tristate "U-Boot environment variables support"
	depends on OF && MTD
	select CRC32
	select GENERIC_NET_UTILS
	help
	  U-Boot stores its setup as environment variables. This driver adds
	  support for verifying & exporting such data. It also exposes variables
	  as NVMEM cells so they can be referenced by other drivers.

	  Currently this drivers works only with env variables on top of MTD.

	  If compiled as module it will be called nvmem_u-boot-env.

config NVMEM_UNIPHIER_EFUSE
	tristate "UniPhier SoCs eFuse support"
	depends on ARCH_UNIPHIER || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This is a simple driver to dump specified values of UniPhier SoC
	  from eFuse.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem-uniphier-efuse.

config NVMEM_VF610_OCOTP
	tristate "VF610 SoC OCOTP support"
	depends on SOC_VF610 || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This is a driver for the 'OCOTP' peripheral available on Vybrid
	  devices like VF5xx and VF6xx.

	  This driver can also be build as a module. If so, the module will
	  be called nvmem-vf610-ocotp.

config NVMEM_ZYNQMP
	tristate "Xilinx ZYNQMP SoC nvmem firmware support"
	depends on ARCH_ZYNQMP
	help
	  This is a driver to access hardware related data like
	  soc revision, IDCODE... etc by using the firmware
	  interface.

	  If sure, say yes. If unsure, say no.

config NVMEM_QORIQ_EFUSE
	tristate "NXP QorIQ eFuse support"
	depends on PPC_85xx || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  This driver provides read support for the eFuses (SFP) on NXP QorIQ
	  series SoC's. This includes secure boot settings, the globally unique
	  NXP ID 'FUIDR' and the OEM unique ID 'OUIDR'.

	  This driver can also be built as a module. If so, the module
	  will be called nvmem_qoriq_efuse.

endif