421 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2menuconfig NVMEM3 bool "NVMEM Support"4 imply NVMEM_LAYOUTS5 help6 Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...7 8 This framework is designed to provide a generic interface to NVMEM9 from both the Linux Kernel and the userspace.10 11 If unsure, say no.12 13if NVMEM14 15config NVMEM_SYSFS16 bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"17 depends on SYSFS18 default y19 help20 Say Y here to add a sysfs interface for NVMEM.21 22 This interface is mostly used by userspace applications to23 read/write directly into nvmem.24 25# Layouts26 27source "drivers/nvmem/layouts/Kconfig"28 29# Devices30 31config NVMEM_APPLE_EFUSES32 tristate "Apple eFuse support"33 depends on ARCH_APPLE || COMPILE_TEST34 default ARCH_APPLE35 help36 Say y here to enable support for reading eFuses on Apple SoCs37 such as the M1. These are e.g. used to store factory programmed38 calibration data required for the PCIe or the USB-C PHY.39 40 This driver can also be built as a module. If so, the module will41 be called nvmem-apple-efuses.42 43config NVMEM_BCM_OCOTP44 tristate "Broadcom On-Chip OTP Controller support"45 depends on ARCH_BCM_IPROC || COMPILE_TEST46 depends on HAS_IOMEM47 default ARCH_BCM_IPROC48 help49 Say y here to enable read/write access to the Broadcom OTP50 controller.51 52 This driver can also be built as a module. If so, the module53 will be called nvmem-bcm-ocotp.54 55config NVMEM_BRCM_NVRAM56 tristate "Broadcom's NVRAM support"57 depends on ARCH_BCM_5301X || COMPILE_TEST58 depends on HAS_IOMEM59 select GENERIC_NET_UTILS60 help61 This driver provides support for Broadcom's NVRAM that can be accessed62 using I/O mapping.63 64config NVMEM_IMX_IIM65 tristate "i.MX IC Identification Module support"66 depends on ARCH_MXC || COMPILE_TEST67 help68 This is a driver for the IC Identification Module (IIM) available on69 i.MX SoCs, providing access to 4 Kbits of programmable70 eFuses.71 72 This driver can also be built as a module. If so, the module73 will be called nvmem-imx-iim.74 75config NVMEM_IMX_OCOTP76 tristate "i.MX 6/7/8 On-Chip OTP Controller support"77 depends on ARCH_MXC || COMPILE_TEST78 depends on HAS_IOMEM79 help80 This is a driver for the On-Chip OTP Controller (OCOTP) available on81 i.MX6 SoCs, providing access to 4 Kbits of one-time programmable82 eFuses.83 84 This driver can also be built as a module. If so, the module85 will be called nvmem-imx-ocotp.86 87config NVMEM_IMX_OCOTP_ELE88 tristate "i.MX On-Chip OTP Controller support"89 depends on ARCH_MXC || COMPILE_TEST90 depends on HAS_IOMEM91 depends on OF92 help93 This is a driver for the On-Chip OTP Controller (OCOTP)94 available on i.MX SoCs which has ELE.95 96config NVMEM_IMX_OCOTP_SCU97 tristate "i.MX8 SCU On-Chip OTP Controller support"98 depends on IMX_SCU99 depends on HAVE_ARM_SMCCC100 help101 This is a driver for the SCU On-Chip OTP Controller (OCOTP)102 available on i.MX8 SoCs.103 104config NVMEM_JZ4780_EFUSE105 tristate "JZ4780 EFUSE Memory Support"106 depends on MACH_INGENIC || COMPILE_TEST107 depends on HAS_IOMEM108 depends on OF109 select REGMAP_MMIO110 help111 Say Y here to include support for JZ4780 efuse memory found on112 all JZ4780 SoC based devices.113 To compile this driver as a module, choose M here: the module114 will be called nvmem_jz4780_efuse.115 116config NVMEM_LAN9662_OTPC117 tristate "Microchip LAN9662 OTP controller support"118 depends on SOC_LAN966 || COMPILE_TEST119 depends on HAS_IOMEM120 help121 This driver enables the OTP controller available on Microchip LAN9662122 SoCs. It controls the access to the OTP memory connected to it.123 124config NVMEM_LAYERSCAPE_SFP125 tristate "Layerscape SFP (Security Fuse Processor) support"126 depends on ARCH_LAYERSCAPE || COMPILE_TEST127 depends on HAS_IOMEM128 select REGMAP_MMIO129 help130 This driver provides support to read the eFuses on Freescale131 Layerscape SoC's. For example, the vendor provides a per part132 unique ID there.133 134 This driver can also be built as a module. If so, the module135 will be called layerscape-sfp.136 137config NVMEM_LPC18XX_EEPROM138 tristate "NXP LPC18XX EEPROM Memory Support"139 depends on ARCH_LPC18XX || COMPILE_TEST140 depends on HAS_IOMEM141 help142 Say Y here to include support for NXP LPC18xx EEPROM memory found in143 NXP LPC185x/3x and LPC435x/3x/2x/1x devices.144 To compile this driver as a module, choose M here: the module145 will be called nvmem_lpc18xx_eeprom.146 147config NVMEM_LPC18XX_OTP148 tristate "NXP LPC18XX OTP Memory Support"149 depends on ARCH_LPC18XX || COMPILE_TEST150 depends on HAS_IOMEM151 help152 Say Y here to include support for NXP LPC18xx OTP memory found on153 all LPC18xx and LPC43xx devices.154 To compile this driver as a module, choose M here: the module155 will be called nvmem_lpc18xx_otp.156 157config NVMEM_MESON_EFUSE158 tristate "Amlogic Meson GX eFuse Support"159 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM160 help161 This is a driver to retrieve specific values from the eFuse found on162 the Amlogic Meson GX SoCs.163 164 This driver can also be built as a module. If so, the module165 will be called nvmem_meson_efuse.166 167config NVMEM_MESON_MX_EFUSE168 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"169 depends on ARCH_MESON || COMPILE_TEST170 help171 This is a driver to retrieve specific values from the eFuse found on172 the Amlogic Meson6, Meson8 and Meson8b SoCs.173 174 This driver can also be built as a module. If so, the module175 will be called nvmem_meson_mx_efuse.176 177config NVMEM_MICROCHIP_OTPC178 tristate "Microchip OTPC support"179 depends on ARCH_AT91 || COMPILE_TEST180 help181 This driver enable the OTP controller available on Microchip SAMA7G5182 SoCs. It controls the access to the OTP memory connected to it.183 184config NVMEM_MTK_EFUSE185 tristate "Mediatek SoCs EFUSE support"186 depends on ARCH_MEDIATEK || COMPILE_TEST187 depends on HAS_IOMEM188 help189 This is a driver to access hardware related data like sensor190 calibration, HDMI impedance etc.191 192 This driver can also be built as a module. If so, the module193 will be called efuse-mtk.194 195config NVMEM_MXS_OCOTP196 tristate "Freescale MXS On-Chip OTP Memory Support"197 depends on ARCH_MXS || COMPILE_TEST198 depends on HAS_IOMEM199 help200 If you say Y here, you will get readonly access to the201 One Time Programmable memory pages that are stored202 on the Freescale i.MX23/i.MX28 processor.203 204 This driver can also be built as a module. If so, the module205 will be called nvmem-mxs-ocotp.206 207config NVMEM_NINTENDO_OTP208 tristate "Nintendo Wii and Wii U OTP Support"209 depends on WII || COMPILE_TEST210 help211 This is a driver exposing the OTP of a Nintendo Wii or Wii U console.212 213 This memory contains common and per-console keys, signatures and214 related data required to access peripherals.215 216 This driver can also be built as a module. If so, the module217 will be called nvmem-nintendo-otp.218 219config NVMEM_QCOM_QFPROM220 tristate "QCOM QFPROM Support"221 depends on ARCH_QCOM || COMPILE_TEST222 depends on HAS_IOMEM223 help224 Say y here to enable QFPROM support. The QFPROM provides access225 functions for QFPROM data to rest of the drivers via nvmem interface.226 227 This driver can also be built as a module. If so, the module228 will be called nvmem_qfprom.229 230config NVMEM_QCOM_SEC_QFPROM231 tristate "QCOM SECURE QFPROM Support"232 depends on ARCH_QCOM || COMPILE_TEST233 depends on HAS_IOMEM234 depends on OF235 select QCOM_SCM236 help237 Say y here to enable secure QFPROM support. The secure QFPROM provides access238 functions for QFPROM data to rest of the drivers via nvmem interface.239 240 This driver can also be built as a module. If so, the module will be called241 nvmem_sec_qfprom.242 243config NVMEM_RAVE_SP_EEPROM244 tristate "Rave SP EEPROM Support"245 depends on RAVE_SP_CORE246 help247 Say y here to enable Rave SP EEPROM support.248 249config NVMEM_RMEM250 tristate "Reserved Memory Based Driver Support"251 depends on HAS_IOMEM252 help253 This driver maps reserved memory into an nvmem device. It might be254 useful to expose information left by firmware in memory.255 256 This driver can also be built as a module. If so, the module257 will be called nvmem-rmem.258 259config NVMEM_ROCKCHIP_EFUSE260 tristate "Rockchip eFuse Support"261 depends on ARCH_ROCKCHIP || COMPILE_TEST262 depends on HAS_IOMEM263 help264 This is a simple driver to dump specified values of Rockchip SoC265 from eFuse, such as cpu-leakage.266 267 This driver can also be built as a module. If so, the module268 will be called nvmem_rockchip_efuse.269 270config NVMEM_ROCKCHIP_OTP271 tristate "Rockchip OTP controller support"272 depends on ARCH_ROCKCHIP || COMPILE_TEST273 depends on HAS_IOMEM274 help275 This is a simple driver to dump specified values of Rockchip SoC276 from OTP, such as cpu-leakage.277 278 This driver can also be built as a module. If so, the module279 will be called nvmem_rockchip_otp.280 281config NVMEM_SC27XX_EFUSE282 tristate "Spreadtrum SC27XX eFuse Support"283 depends on MFD_SC27XX_PMIC || COMPILE_TEST284 depends on HAS_IOMEM285 help286 This is a simple driver to dump specified values of Spreadtrum287 SC27XX PMICs from eFuse.288 289 This driver can also be built as a module. If so, the module290 will be called nvmem-sc27xx-efuse.291 292config NVMEM_SNVS_LPGPR293 tristate "Support for Low Power General Purpose Register"294 depends on ARCH_MXC || COMPILE_TEST295 help296 This is a driver for Low Power General Purpose Register (LPGPR) available on297 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.298 299 This driver can also be built as a module. If so, the module300 will be called nvmem-snvs-lpgpr.301 302config NVMEM_SPMI_SDAM303 tristate "SPMI SDAM Support"304 depends on SPMI305 help306 This driver supports the Shared Direct Access Memory Module on307 Qualcomm Technologies, Inc. PMICs. It provides the clients308 an interface to read/write to the SDAM module's shared memory.309 310config NVMEM_SPRD_EFUSE311 tristate "Spreadtrum SoC eFuse Support"312 depends on ARCH_SPRD || COMPILE_TEST313 depends on HAS_IOMEM314 help315 This is a simple driver to dump specified values of Spreadtrum316 SoCs from eFuse.317 318 This driver can also be built as a module. If so, the module319 will be called nvmem-sprd-efuse.320 321config NVMEM_STM32_BSEC_OPTEE_TA322 def_bool NVMEM_STM32_ROMEM && OPTEE323 help324 Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE325 trusted application STM32MP BSEC.326 327 This library is a used by stm32-romem driver or included in the module328 called nvmem-stm32-romem.329 330config NVMEM_STM32_ROMEM331 tristate "STMicroelectronics STM32 factory-programmed memory support"332 depends on ARCH_STM32 || COMPILE_TEST333 depends on OPTEE || !OPTEE334 help335 Say y here to enable read-only access for STMicroelectronics STM32336 factory-programmed memory area.337 338 This driver can also be built as a module. If so, the module339 will be called nvmem-stm32-romem.340 341config NVMEM_SUNPLUS_OCOTP342 tristate "Sunplus SoC OTP support"343 depends on SOC_SP7021 || COMPILE_TEST344 depends on HAS_IOMEM345 help346 This is a driver for the On-chip OTP controller (OCOTP) available347 on Sunplus SoCs. It provides access to 128 bytes of one-time348 programmable eFuse.349 350 This driver can also be built as a module. If so, the module351 will be called nvmem-sunplus-ocotp.352 353config NVMEM_SUNXI_SID354 tristate "Allwinner SoCs SID support"355 depends on ARCH_SUNXI356 help357 This is a driver for the 'security ID' available on various Allwinner358 devices.359 360 This driver can also be built as a module. If so, the module361 will be called nvmem_sunxi_sid.362 363config NVMEM_U_BOOT_ENV364 tristate "U-Boot environment variables support"365 depends on OF && MTD366 select NVMEM_LAYOUT_U_BOOT_ENV367 help368 U-Boot stores its setup as environment variables. This driver adds369 support for verifying & exporting such data. It also exposes variables370 as NVMEM cells so they can be referenced by other drivers.371 372 Currently this drivers works only with env variables on top of MTD.373 374 If compiled as module it will be called nvmem_u-boot-env.375 376config NVMEM_UNIPHIER_EFUSE377 tristate "UniPhier SoCs eFuse support"378 depends on ARCH_UNIPHIER || COMPILE_TEST379 depends on HAS_IOMEM380 help381 This is a simple driver to dump specified values of UniPhier SoC382 from eFuse.383 384 This driver can also be built as a module. If so, the module385 will be called nvmem-uniphier-efuse.386 387config NVMEM_VF610_OCOTP388 tristate "VF610 SoC OCOTP support"389 depends on SOC_VF610 || COMPILE_TEST390 depends on HAS_IOMEM391 help392 This is a driver for the 'OCOTP' peripheral available on Vybrid393 devices like VF5xx and VF6xx.394 395 This driver can also be build as a module. If so, the module will396 be called nvmem-vf610-ocotp.397 398config NVMEM_ZYNQMP399 tristate "Xilinx ZYNQMP SoC nvmem firmware support"400 depends on ARCH_ZYNQMP401 help402 This is a driver to access hardware related data like403 soc revision, IDCODE... etc by using the firmware404 interface.405 406 If sure, say yes. If unsure, say no.407 408config NVMEM_QORIQ_EFUSE409 tristate "NXP QorIQ eFuse support"410 depends on PPC_85xx || COMPILE_TEST411 depends on HAS_IOMEM412 help413 This driver provides read support for the eFuses (SFP) on NXP QorIQ414 series SoC's. This includes secure boot settings, the globally unique415 NXP ID 'FUIDR' and the OEM unique ID 'OUIDR'.416 417 This driver can also be built as a module. If so, the module418 will be called nvmem_qoriq_efuse.419 420endif421