| # 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_AN8855_EFUSE | |
| tristate "Airoha AN8855 eFuse support" | |
| depends on COMPILE_TEST | |
| help | |
| Say y here to enable support for reading eFuses on Airoha AN8855 | |
| Switch. These are e.g. used to store factory programmed | |
| calibration data required for the PHY. | |
| This driver can also be built as a module. If so, the module will | |
| be called nvmem-an8855-efuse. | |
| config NVMEM_APPLE_EFUSES | |
| tristate "Apple eFuse support" | |
| depends on ARCH_APPLE || COMPILE_TEST | |
| 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_APPLE_SPMI | |
| tristate "Apple SPMI NVMEM" | |
| depends on ARCH_APPLE || COMPILE_TEST | |
| depends on SPMI | |
| select REGMAP_SPMI | |
| help | |
| Say y here to build a driver to expose NVMEM cells for a set of power | |
| and RTC-related settings on a SPMI-attached PMIC present on Apple | |
| devices, such as Apple Silicon Macs. | |
| This driver can also be built as a module. If so, the module | |
| will be called apple-nvmem-spmi. | |
| 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_MAX77759 | |
| tristate "Maxim Integrated MAX77759 NVMEM Support" | |
| depends on MFD_MAX77759 | |
| default MFD_MAX77759 | |
| help | |
| Say Y here to include support for the user-accessible storage found | |
| in Maxim Integrated MAX77759 PMICs. This IC provides space for 30 | |
| bytes of storage. | |
| This driver can also be built as a module. If so, the module | |
| will be called nvmem-max77759. | |
| 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_S32G_OCOTP | |
| tristate "S32G SoC OCOTP support" | |
| depends on ARCH_S32 | |
| help | |
| This is a driver for the 'OCOTP' peripheral available on S32G | |
| platforms. | |
| If you say Y here, you will get support for the One Time | |
| Programmable memory pages. | |
| 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_QNAP_MCU_EEPROM | |
| tristate "QNAP MCU EEPROM Support" | |
| depends on MFD_QNAP_MCU | |
| help | |
| Say y here to enable support for accessing the EEPROM attached to | |
| QNAP MCU devices. This EEPROM contains additional runtime device | |
| information, like MAC addresses for ethernet devices that do not | |
| contain their own mac storage. | |
| 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_RCAR_EFUSE | |
| tristate "Renesas R-Car Gen4 E-FUSE support" | |
| depends on (ARCH_RENESAS && ARM64) || COMPILE_TEST | |
| depends on NVMEM | |
| help | |
| Enable support for reading the fuses in the E-FUSE or OTP | |
| non-volatile memory block on Renesas R-Car Gen4 SoCs. | |
| This driver can also be built as a module. If so, the module | |
| will be called nvmem-rcar-efuse. | |
| config NVMEM_RMEM | |
| tristate "Reserved Memory Based Driver Support" | |
| depends on HAS_IOMEM | |
| select CRC32 | |
| 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 NVMEM_LAYOUT_U_BOOT_ENV | |
| 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 |