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 If unsure, say no. 11 12if NVMEM 13 14config NVMEM_SYSFS 15 bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)" 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# Layouts 25 26source "drivers/nvmem/layouts/Kconfig" 27 28# Devices 29 30config NVMEM_APPLE_EFUSES 31 tristate "Apple eFuse support" 32 depends on ARCH_APPLE || COMPILE_TEST 33 default ARCH_APPLE 34 help 35 Say y here to enable support for reading eFuses on Apple SoCs 36 such as the M1. These are e.g. used to store factory programmed 37 calibration data required for the PCIe or the USB-C PHY. 38 39 This driver can also be built as a module. If so, the module will 40 be called nvmem-apple-efuses. 41 42config NVMEM_BCM_OCOTP 43 tristate "Broadcom On-Chip OTP Controller support" 44 depends on ARCH_BCM_IPROC || COMPILE_TEST 45 depends on HAS_IOMEM 46 default ARCH_BCM_IPROC 47 help 48 Say y here to enable read/write access to the Broadcom OTP 49 controller. 50 51 This driver can also be built as a module. If so, the module 52 will be called nvmem-bcm-ocotp. 53 54config NVMEM_BRCM_NVRAM 55 tristate "Broadcom's NVRAM support" 56 depends on ARCH_BCM_5301X || COMPILE_TEST 57 depends on HAS_IOMEM 58 select GENERIC_NET_UTILS 59 help 60 This driver provides support for Broadcom's NVRAM that can be accessed 61 using I/O mapping. 62 63config NVMEM_IMX_IIM 64 tristate "i.MX IC Identification Module support" 65 depends on ARCH_MXC || COMPILE_TEST 66 help 67 This is a driver for the IC Identification Module (IIM) available on 68 i.MX SoCs, providing access to 4 Kbits of programmable 69 eFuses. 70 71 This driver can also be built as a module. If so, the module 72 will be called nvmem-imx-iim. 73 74config NVMEM_IMX_OCOTP 75 tristate "i.MX 6/7/8 On-Chip OTP Controller support" 76 depends on ARCH_MXC || COMPILE_TEST 77 depends on HAS_IOMEM 78 help 79 This is a driver for the On-Chip OTP Controller (OCOTP) available on 80 i.MX6 SoCs, providing access to 4 Kbits of one-time programmable 81 eFuses. 82 83 This driver can also be built as a module. If so, the module 84 will be called nvmem-imx-ocotp. 85 86config NVMEM_IMX_OCOTP_SCU 87 tristate "i.MX8 SCU On-Chip OTP Controller support" 88 depends on IMX_SCU 89 depends on HAVE_ARM_SMCCC 90 help 91 This is a driver for the SCU On-Chip OTP Controller (OCOTP) 92 available on i.MX8 SoCs. 93 94config NVMEM_JZ4780_EFUSE 95 tristate "JZ4780 EFUSE Memory Support" 96 depends on MACH_INGENIC || COMPILE_TEST 97 depends on HAS_IOMEM 98 depends on OF 99 select REGMAP_MMIO 100 help 101 Say Y here to include support for JZ4780 efuse memory found on 102 all JZ4780 SoC based devices. 103 To compile this driver as a module, choose M here: the module 104 will be called nvmem_jz4780_efuse. 105 106config NVMEM_LAN9662_OTPC 107 tristate "Microchip LAN9662 OTP controller support" 108 depends on SOC_LAN966 || COMPILE_TEST 109 depends on HAS_IOMEM 110 help 111 This driver enables the OTP controller available on Microchip LAN9662 112 SoCs. It controls the access to the OTP memory connected to it. 113 114config NVMEM_LAYERSCAPE_SFP 115 tristate "Layerscape SFP (Security Fuse Processor) support" 116 depends on ARCH_LAYERSCAPE || COMPILE_TEST 117 depends on HAS_IOMEM 118 select REGMAP_MMIO 119 help 120 This driver provides support to read the eFuses on Freescale 121 Layerscape SoC's. For example, the vendor provides a per part 122 unique ID there. 123 124 This driver can also be built as a module. If so, the module 125 will be called layerscape-sfp. 126 127config NVMEM_LPC18XX_EEPROM 128 tristate "NXP LPC18XX EEPROM Memory Support" 129 depends on ARCH_LPC18XX || COMPILE_TEST 130 depends on HAS_IOMEM 131 help 132 Say Y here to include support for NXP LPC18xx EEPROM memory found in 133 NXP LPC185x/3x and LPC435x/3x/2x/1x devices. 134 To compile this driver as a module, choose M here: the module 135 will be called nvmem_lpc18xx_eeprom. 136 137config NVMEM_LPC18XX_OTP 138 tristate "NXP LPC18XX OTP Memory Support" 139 depends on ARCH_LPC18XX || COMPILE_TEST 140 depends on HAS_IOMEM 141 help 142 Say Y here to include support for NXP LPC18xx OTP memory found on 143 all LPC18xx and LPC43xx devices. 144 To compile this driver as a module, choose M here: the module 145 will be called nvmem_lpc18xx_otp. 146 147config NVMEM_MESON_EFUSE 148 tristate "Amlogic Meson GX eFuse Support" 149 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM 150 help 151 This is a driver to retrieve specific values from the eFuse found on 152 the Amlogic Meson GX SoCs. 153 154 This driver can also be built as a module. If so, the module 155 will be called nvmem_meson_efuse. 156 157config NVMEM_MESON_MX_EFUSE 158 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support" 159 depends on ARCH_MESON || COMPILE_TEST 160 help 161 This is a driver to retrieve specific values from the eFuse found on 162 the Amlogic Meson6, Meson8 and Meson8b SoCs. 163 164 This driver can also be built as a module. If so, the module 165 will be called nvmem_meson_mx_efuse. 166 167config NVMEM_MICROCHIP_OTPC 168 tristate "Microchip OTPC support" 169 depends on ARCH_AT91 || COMPILE_TEST 170 help 171 This driver enable the OTP controller available on Microchip SAMA7G5 172 SoCs. It controls the access to the OTP memory connected to it. 173 174config NVMEM_MTK_EFUSE 175 tristate "Mediatek SoCs EFUSE support" 176 depends on ARCH_MEDIATEK || COMPILE_TEST 177 depends on HAS_IOMEM 178 help 179 This is a driver to access hardware related data like sensor 180 calibration, HDMI impedance etc. 181 182 This driver can also be built as a module. If so, the module 183 will be called efuse-mtk. 184 185config NVMEM_MXS_OCOTP 186 tristate "Freescale MXS On-Chip OTP Memory Support" 187 depends on ARCH_MXS || COMPILE_TEST 188 depends on HAS_IOMEM 189 help 190 If you say Y here, you will get readonly access to the 191 One Time Programmable memory pages that are stored 192 on the Freescale i.MX23/i.MX28 processor. 193 194 This driver can also be built as a module. If so, the module 195 will be called nvmem-mxs-ocotp. 196 197config NVMEM_NINTENDO_OTP 198 tristate "Nintendo Wii and Wii U OTP Support" 199 depends on WII || COMPILE_TEST 200 help 201 This is a driver exposing the OTP of a Nintendo Wii or Wii U console. 202 203 This memory contains common and per-console keys, signatures and 204 related data required to access peripherals. 205 206 This driver can also be built as a module. If so, the module 207 will be called nvmem-nintendo-otp. 208 209config NVMEM_QCOM_QFPROM 210 tristate "QCOM QFPROM Support" 211 depends on ARCH_QCOM || COMPILE_TEST 212 depends on HAS_IOMEM 213 help 214 Say y here to enable QFPROM support. The QFPROM provides access 215 functions for QFPROM data to rest of the drivers via nvmem interface. 216 217 This driver can also be built as a module. If so, the module 218 will be called nvmem_qfprom. 219 220config NVMEM_RAVE_SP_EEPROM 221 tristate "Rave SP EEPROM Support" 222 depends on RAVE_SP_CORE 223 help 224 Say y here to enable Rave SP EEPROM support. 225 226config NVMEM_RMEM 227 tristate "Reserved Memory Based Driver Support" 228 depends on HAS_IOMEM 229 help 230 This driver maps reserved memory into an nvmem device. It might be 231 useful to expose information left by firmware in memory. 232 233 This driver can also be built as a module. If so, the module 234 will be called nvmem-rmem. 235 236config NVMEM_ROCKCHIP_EFUSE 237 tristate "Rockchip eFuse Support" 238 depends on ARCH_ROCKCHIP || COMPILE_TEST 239 depends on HAS_IOMEM 240 help 241 This is a simple drive to dump specified values of Rockchip SoC 242 from eFuse, such as cpu-leakage. 243 244 This driver can also be built as a module. If so, the module 245 will be called nvmem_rockchip_efuse. 246 247config NVMEM_ROCKCHIP_OTP 248 tristate "Rockchip OTP controller support" 249 depends on ARCH_ROCKCHIP || COMPILE_TEST 250 depends on HAS_IOMEM 251 help 252 This is a simple drive to dump specified values of Rockchip SoC 253 from otp, such as cpu-leakage. 254 255 This driver can also be built as a module. If so, the module 256 will be called nvmem_rockchip_otp. 257 258config NVMEM_SC27XX_EFUSE 259 tristate "Spreadtrum SC27XX eFuse Support" 260 depends on MFD_SC27XX_PMIC || COMPILE_TEST 261 depends on HAS_IOMEM 262 help 263 This is a simple driver to dump specified values of Spreadtrum 264 SC27XX PMICs from eFuse. 265 266 This driver can also be built as a module. If so, the module 267 will be called nvmem-sc27xx-efuse. 268 269config NVMEM_SNVS_LPGPR 270 tristate "Support for Low Power General Purpose Register" 271 depends on ARCH_MXC || COMPILE_TEST 272 help 273 This is a driver for Low Power General Purpose Register (LPGPR) available on 274 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip. 275 276 This driver can also be built as a module. If so, the module 277 will be called nvmem-snvs-lpgpr. 278 279config NVMEM_SPMI_SDAM 280 tristate "SPMI SDAM Support" 281 depends on SPMI 282 help 283 This driver supports the Shared Direct Access Memory Module on 284 Qualcomm Technologies, Inc. PMICs. It provides the clients 285 an interface to read/write to the SDAM module's shared memory. 286 287config NVMEM_SPRD_EFUSE 288 tristate "Spreadtrum SoC eFuse Support" 289 depends on ARCH_SPRD || COMPILE_TEST 290 depends on HAS_IOMEM 291 help 292 This is a simple driver to dump specified values of Spreadtrum 293 SoCs from eFuse. 294 295 This driver can also be built as a module. If so, the module 296 will be called nvmem-sprd-efuse. 297 298config NVMEM_STM32_BSEC_OPTEE_TA 299 def_bool NVMEM_STM32_ROMEM && OPTEE 300 help 301 Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE 302 trusted application STM32MP BSEC. 303 304 This library is a used by stm32-romem driver or included in the module 305 called nvmem-stm32-romem. 306 307config NVMEM_STM32_ROMEM 308 tristate "STMicroelectronics STM32 factory-programmed memory support" 309 depends on ARCH_STM32 || COMPILE_TEST 310 depends on OPTEE || !OPTEE 311 help 312 Say y here to enable read-only access for STMicroelectronics STM32 313 factory-programmed memory area. 314 315 This driver can also be built as a module. If so, the module 316 will be called nvmem-stm32-romem. 317 318config NVMEM_SUNPLUS_OCOTP 319 tristate "Sunplus SoC OTP support" 320 depends on SOC_SP7021 || COMPILE_TEST 321 depends on HAS_IOMEM 322 help 323 This is a driver for the On-chip OTP controller (OCOTP) available 324 on Sunplus SoCs. It provides access to 128 bytes of one-time 325 programmable eFuse. 326 327 This driver can also be built as a module. If so, the module 328 will be called nvmem-sunplus-ocotp. 329 330config NVMEM_SUNXI_SID 331 tristate "Allwinner SoCs SID support" 332 depends on ARCH_SUNXI 333 help 334 This is a driver for the 'security ID' available on various Allwinner 335 devices. 336 337 This driver can also be built as a module. If so, the module 338 will be called nvmem_sunxi_sid. 339 340config NVMEM_U_BOOT_ENV 341 tristate "U-Boot environment variables support" 342 depends on OF && MTD 343 select CRC32 344 select GENERIC_NET_UTILS 345 help 346 U-Boot stores its setup as environment variables. This driver adds 347 support for verifying & exporting such data. It also exposes variables 348 as NVMEM cells so they can be referenced by other drivers. 349 350 Currently this drivers works only with env variables on top of MTD. 351 352 If compiled as module it will be called nvmem_u-boot-env. 353 354config NVMEM_UNIPHIER_EFUSE 355 tristate "UniPhier SoCs eFuse support" 356 depends on ARCH_UNIPHIER || COMPILE_TEST 357 depends on HAS_IOMEM 358 help 359 This is a simple driver to dump specified values of UniPhier SoC 360 from eFuse. 361 362 This driver can also be built as a module. If so, the module 363 will be called nvmem-uniphier-efuse. 364 365config NVMEM_VF610_OCOTP 366 tristate "VF610 SoC OCOTP support" 367 depends on SOC_VF610 || COMPILE_TEST 368 depends on HAS_IOMEM 369 help 370 This is a driver for the 'OCOTP' peripheral available on Vybrid 371 devices like VF5xx and VF6xx. 372 373 This driver can also be build as a module. If so, the module will 374 be called nvmem-vf610-ocotp. 375 376config NVMEM_ZYNQMP 377 tristate "Xilinx ZYNQMP SoC nvmem firmware support" 378 depends on ARCH_ZYNQMP 379 help 380 This is a driver to access hardware related data like 381 soc revision, IDCODE... etc by using the firmware 382 interface. 383 384 If sure, say yes. If unsure, say no. 385 386endif 387