| # SPDX-License-Identifier: GPL-2.0-only |
| menuconfig NVMEM |
| bool "NVMEM Support" |
| imply NVMEM_LAYOUTS |
| 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_QCOM_SEC_QFPROM |
| tristate "QCOM SECURE QFPROM Support" |
| depends on ARCH_QCOM || COMPILE_TEST |
| depends on HAS_IOMEM |
| depends on OF |
| select QCOM_SCM |
| help |
| Say y here to enable secure QFPROM support. The secure 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_sec_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 |