xref: /kernel/linux/linux-5.10/drivers/nvmem/Kconfig (revision 8c2ecf20)
18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_cimenuconfig NVMEM
38c2ecf20Sopenharmony_ci	bool "NVMEM Support"
48c2ecf20Sopenharmony_ci	help
58c2ecf20Sopenharmony_ci	  Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci	  This framework is designed to provide a generic interface to NVMEM
88c2ecf20Sopenharmony_ci	  from both the Linux Kernel and the userspace.
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci	  If unsure, say no.
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ciif NVMEM
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciconfig NVMEM_SYSFS
158c2ecf20Sopenharmony_ci	bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
168c2ecf20Sopenharmony_ci	depends on SYSFS
178c2ecf20Sopenharmony_ci	default y
188c2ecf20Sopenharmony_ci	help
198c2ecf20Sopenharmony_ci	 Say Y here to add a sysfs interface for NVMEM.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci	 This interface is mostly used by userspace applications to
228c2ecf20Sopenharmony_ci	 read/write directly into nvmem.
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ciconfig NVMEM_IMX_IIM
258c2ecf20Sopenharmony_ci	tristate "i.MX IC Identification Module support"
268c2ecf20Sopenharmony_ci	depends on ARCH_MXC || COMPILE_TEST
278c2ecf20Sopenharmony_ci	help
288c2ecf20Sopenharmony_ci	  This is a driver for the IC Identification Module (IIM) available on
298c2ecf20Sopenharmony_ci	  i.MX SoCs, providing access to 4 Kbits of programmable
308c2ecf20Sopenharmony_ci	  eFuses.
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
338c2ecf20Sopenharmony_ci	  will be called nvmem-imx-iim.
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciconfig NVMEM_IMX_OCOTP
368c2ecf20Sopenharmony_ci	tristate "i.MX 6/7/8 On-Chip OTP Controller support"
378c2ecf20Sopenharmony_ci	depends on ARCH_MXC || COMPILE_TEST
388c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
398c2ecf20Sopenharmony_ci	help
408c2ecf20Sopenharmony_ci	  This is a driver for the On-Chip OTP Controller (OCOTP) available on
418c2ecf20Sopenharmony_ci	  i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
428c2ecf20Sopenharmony_ci	  eFuses.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
458c2ecf20Sopenharmony_ci	  will be called nvmem-imx-ocotp.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciconfig NVMEM_IMX_OCOTP_SCU
488c2ecf20Sopenharmony_ci	tristate "i.MX8 SCU On-Chip OTP Controller support"
498c2ecf20Sopenharmony_ci	depends on IMX_SCU
508c2ecf20Sopenharmony_ci	depends on HAVE_ARM_SMCCC
518c2ecf20Sopenharmony_ci	help
528c2ecf20Sopenharmony_ci	  This is a driver for the SCU On-Chip OTP Controller (OCOTP)
538c2ecf20Sopenharmony_ci	  available on i.MX8 SoCs.
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciconfig JZ4780_EFUSE
568c2ecf20Sopenharmony_ci	tristate "JZ4780 EFUSE Memory Support"
578c2ecf20Sopenharmony_ci	depends on MACH_INGENIC || COMPILE_TEST
588c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
598c2ecf20Sopenharmony_ci	depends on OF
608c2ecf20Sopenharmony_ci	select REGMAP_MMIO
618c2ecf20Sopenharmony_ci	help
628c2ecf20Sopenharmony_ci	  Say Y here to include support for JZ4780 efuse memory found on
638c2ecf20Sopenharmony_ci	  all JZ4780 SoC based devices.
648c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
658c2ecf20Sopenharmony_ci	  will be called nvmem_jz4780_efuse.
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ciconfig NVMEM_LPC18XX_EEPROM
688c2ecf20Sopenharmony_ci	tristate "NXP LPC18XX EEPROM Memory Support"
698c2ecf20Sopenharmony_ci	depends on ARCH_LPC18XX || COMPILE_TEST
708c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
718c2ecf20Sopenharmony_ci	help
728c2ecf20Sopenharmony_ci	  Say Y here to include support for NXP LPC18xx EEPROM memory found in
738c2ecf20Sopenharmony_ci	  NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
748c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
758c2ecf20Sopenharmony_ci	  will be called nvmem_lpc18xx_eeprom.
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ciconfig NVMEM_LPC18XX_OTP
788c2ecf20Sopenharmony_ci	tristate "NXP LPC18XX OTP Memory Support"
798c2ecf20Sopenharmony_ci	depends on ARCH_LPC18XX || COMPILE_TEST
808c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
818c2ecf20Sopenharmony_ci	help
828c2ecf20Sopenharmony_ci	  Say Y here to include support for NXP LPC18xx OTP memory found on
838c2ecf20Sopenharmony_ci	  all LPC18xx and LPC43xx devices.
848c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
858c2ecf20Sopenharmony_ci	  will be called nvmem_lpc18xx_otp.
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ciconfig NVMEM_MXS_OCOTP
888c2ecf20Sopenharmony_ci	tristate "Freescale MXS On-Chip OTP Memory Support"
898c2ecf20Sopenharmony_ci	depends on ARCH_MXS || COMPILE_TEST
908c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
918c2ecf20Sopenharmony_ci	help
928c2ecf20Sopenharmony_ci	  If you say Y here, you will get readonly access to the
938c2ecf20Sopenharmony_ci	  One Time Programmable memory pages that are stored
948c2ecf20Sopenharmony_ci	  on the Freescale i.MX23/i.MX28 processor.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
978c2ecf20Sopenharmony_ci	  will be called nvmem-mxs-ocotp.
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ciconfig MTK_EFUSE
1008c2ecf20Sopenharmony_ci	tristate "Mediatek SoCs EFUSE support"
1018c2ecf20Sopenharmony_ci	depends on ARCH_MEDIATEK || COMPILE_TEST
1028c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
1038c2ecf20Sopenharmony_ci	help
1048c2ecf20Sopenharmony_ci	  This is a driver to access hardware related data like sensor
1058c2ecf20Sopenharmony_ci	  calibration, HDMI impedance etc.
1068c2ecf20Sopenharmony_ci
1078c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
1088c2ecf20Sopenharmony_ci	  will be called efuse-mtk.
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ciconfig QCOM_QFPROM
1118c2ecf20Sopenharmony_ci	tristate "QCOM QFPROM Support"
1128c2ecf20Sopenharmony_ci	depends on ARCH_QCOM || COMPILE_TEST
1138c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
1148c2ecf20Sopenharmony_ci	help
1158c2ecf20Sopenharmony_ci	  Say y here to enable QFPROM support. The QFPROM provides access
1168c2ecf20Sopenharmony_ci	  functions for QFPROM data to rest of the drivers via nvmem interface.
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
1198c2ecf20Sopenharmony_ci	  will be called nvmem_qfprom.
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ciconfig NVMEM_SPMI_SDAM
1228c2ecf20Sopenharmony_ci	tristate "SPMI SDAM Support"
1238c2ecf20Sopenharmony_ci	depends on SPMI
1248c2ecf20Sopenharmony_ci	help
1258c2ecf20Sopenharmony_ci	  This driver supports the Shared Direct Access Memory Module on
1268c2ecf20Sopenharmony_ci	  Qualcomm Technologies, Inc. PMICs. It provides the clients
1278c2ecf20Sopenharmony_ci	  an interface to read/write to the SDAM module's shared memory.
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ciconfig ROCKCHIP_EFUSE
1308c2ecf20Sopenharmony_ci	tristate "Rockchip eFuse Support"
1318c2ecf20Sopenharmony_ci	depends on ARCH_ROCKCHIP || COMPILE_TEST
1328c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
1338c2ecf20Sopenharmony_ci	help
1348c2ecf20Sopenharmony_ci	  This is a simple drive to dump specified values of Rockchip SoC
1358c2ecf20Sopenharmony_ci	  from eFuse, such as cpu-leakage.
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
1388c2ecf20Sopenharmony_ci	  will be called nvmem_rockchip_efuse.
1398c2ecf20Sopenharmony_ci
1408c2ecf20Sopenharmony_ciconfig ROCKCHIP_OTP
1418c2ecf20Sopenharmony_ci	tristate "Rockchip OTP controller support"
1428c2ecf20Sopenharmony_ci	depends on ARCH_ROCKCHIP || COMPILE_TEST
1438c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
1448c2ecf20Sopenharmony_ci	help
1458c2ecf20Sopenharmony_ci	  This is a simple drive to dump specified values of Rockchip SoC
1468c2ecf20Sopenharmony_ci	  from otp, such as cpu-leakage.
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
1498c2ecf20Sopenharmony_ci	  will be called nvmem_rockchip_otp.
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ciconfig NVMEM_BCM_OCOTP
1528c2ecf20Sopenharmony_ci	tristate "Broadcom On-Chip OTP Controller support"
1538c2ecf20Sopenharmony_ci	depends on ARCH_BCM_IPROC || COMPILE_TEST
1548c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
1558c2ecf20Sopenharmony_ci	default ARCH_BCM_IPROC
1568c2ecf20Sopenharmony_ci	help
1578c2ecf20Sopenharmony_ci	  Say y here to enable read/write access to the Broadcom OTP
1588c2ecf20Sopenharmony_ci	  controller.
1598c2ecf20Sopenharmony_ci
1608c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
1618c2ecf20Sopenharmony_ci	  will be called nvmem-bcm-ocotp.
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ciconfig NVMEM_STM32_ROMEM
1648c2ecf20Sopenharmony_ci	tristate "STMicroelectronics STM32 factory-programmed memory support"
1658c2ecf20Sopenharmony_ci	depends on ARCH_STM32 || COMPILE_TEST
1668c2ecf20Sopenharmony_ci	help
1678c2ecf20Sopenharmony_ci	  Say y here to enable read-only access for STMicroelectronics STM32
1688c2ecf20Sopenharmony_ci	  factory-programmed memory area.
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
1718c2ecf20Sopenharmony_ci	  will be called nvmem-stm32-romem.
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ciconfig NVMEM_SUNXI_SID
1748c2ecf20Sopenharmony_ci	tristate "Allwinner SoCs SID support"
1758c2ecf20Sopenharmony_ci	depends on ARCH_SUNXI
1768c2ecf20Sopenharmony_ci	help
1778c2ecf20Sopenharmony_ci	  This is a driver for the 'security ID' available on various Allwinner
1788c2ecf20Sopenharmony_ci	  devices.
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
1818c2ecf20Sopenharmony_ci	  will be called nvmem_sunxi_sid.
1828c2ecf20Sopenharmony_ci
1838c2ecf20Sopenharmony_ciconfig UNIPHIER_EFUSE
1848c2ecf20Sopenharmony_ci	tristate "UniPhier SoCs eFuse support"
1858c2ecf20Sopenharmony_ci	depends on ARCH_UNIPHIER || COMPILE_TEST
1868c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
1878c2ecf20Sopenharmony_ci	help
1888c2ecf20Sopenharmony_ci	  This is a simple driver to dump specified values of UniPhier SoC
1898c2ecf20Sopenharmony_ci	  from eFuse.
1908c2ecf20Sopenharmony_ci
1918c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
1928c2ecf20Sopenharmony_ci	  will be called nvmem-uniphier-efuse.
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ciconfig NVMEM_VF610_OCOTP
1958c2ecf20Sopenharmony_ci	tristate "VF610 SoC OCOTP support"
1968c2ecf20Sopenharmony_ci	depends on SOC_VF610 || COMPILE_TEST
1978c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
1988c2ecf20Sopenharmony_ci	help
1998c2ecf20Sopenharmony_ci	  This is a driver for the 'OCOTP' peripheral available on Vybrid
2008c2ecf20Sopenharmony_ci	  devices like VF5xx and VF6xx.
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ci	  This driver can also be build as a module. If so, the module will
2038c2ecf20Sopenharmony_ci	  be called nvmem-vf610-ocotp.
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ciconfig MESON_EFUSE
2068c2ecf20Sopenharmony_ci	tristate "Amlogic Meson GX eFuse Support"
2078c2ecf20Sopenharmony_ci	depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
2088c2ecf20Sopenharmony_ci	help
2098c2ecf20Sopenharmony_ci	  This is a driver to retrieve specific values from the eFuse found on
2108c2ecf20Sopenharmony_ci	  the Amlogic Meson GX SoCs.
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
2138c2ecf20Sopenharmony_ci	  will be called nvmem_meson_efuse.
2148c2ecf20Sopenharmony_ci
2158c2ecf20Sopenharmony_ciconfig MESON_MX_EFUSE
2168c2ecf20Sopenharmony_ci	tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
2178c2ecf20Sopenharmony_ci	depends on ARCH_MESON || COMPILE_TEST
2188c2ecf20Sopenharmony_ci	help
2198c2ecf20Sopenharmony_ci	  This is a driver to retrieve specific values from the eFuse found on
2208c2ecf20Sopenharmony_ci	  the Amlogic Meson6, Meson8 and Meson8b SoCs.
2218c2ecf20Sopenharmony_ci
2228c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
2238c2ecf20Sopenharmony_ci	  will be called nvmem_meson_mx_efuse.
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ciconfig NVMEM_SNVS_LPGPR
2268c2ecf20Sopenharmony_ci	tristate "Support for Low Power General Purpose Register"
2278c2ecf20Sopenharmony_ci	depends on ARCH_MXC || COMPILE_TEST
2288c2ecf20Sopenharmony_ci	help
2298c2ecf20Sopenharmony_ci	  This is a driver for Low Power General Purpose Register (LPGPR) available on
2308c2ecf20Sopenharmony_ci	  i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
2318c2ecf20Sopenharmony_ci
2328c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
2338c2ecf20Sopenharmony_ci	  will be called nvmem-snvs-lpgpr.
2348c2ecf20Sopenharmony_ci
2358c2ecf20Sopenharmony_ciconfig RAVE_SP_EEPROM
2368c2ecf20Sopenharmony_ci	tristate "Rave SP EEPROM Support"
2378c2ecf20Sopenharmony_ci	depends on RAVE_SP_CORE
2388c2ecf20Sopenharmony_ci	help
2398c2ecf20Sopenharmony_ci	  Say y here to enable Rave SP EEPROM support.
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ciconfig SC27XX_EFUSE
2428c2ecf20Sopenharmony_ci	tristate "Spreadtrum SC27XX eFuse Support"
2438c2ecf20Sopenharmony_ci	depends on MFD_SC27XX_PMIC || COMPILE_TEST
2448c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
2458c2ecf20Sopenharmony_ci	help
2468c2ecf20Sopenharmony_ci	  This is a simple driver to dump specified values of Spreadtrum
2478c2ecf20Sopenharmony_ci	  SC27XX PMICs from eFuse.
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
2508c2ecf20Sopenharmony_ci	  will be called nvmem-sc27xx-efuse.
2518c2ecf20Sopenharmony_ci
2528c2ecf20Sopenharmony_ciconfig NVMEM_ZYNQMP
2538c2ecf20Sopenharmony_ci	bool "Xilinx ZYNQMP SoC nvmem firmware support"
2548c2ecf20Sopenharmony_ci	depends on ARCH_ZYNQMP
2558c2ecf20Sopenharmony_ci	help
2568c2ecf20Sopenharmony_ci	  This is a driver to access hardware related data like
2578c2ecf20Sopenharmony_ci	  soc revision, IDCODE... etc by using the firmware
2588c2ecf20Sopenharmony_ci	  interface.
2598c2ecf20Sopenharmony_ci
2608c2ecf20Sopenharmony_ci	  If sure, say yes. If unsure, say no.
2618c2ecf20Sopenharmony_ci
2628c2ecf20Sopenharmony_ciconfig SPRD_EFUSE
2638c2ecf20Sopenharmony_ci	tristate "Spreadtrum SoC eFuse Support"
2648c2ecf20Sopenharmony_ci	depends on ARCH_SPRD || COMPILE_TEST
2658c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
2668c2ecf20Sopenharmony_ci	help
2678c2ecf20Sopenharmony_ci	  This is a simple driver to dump specified values of Spreadtrum
2688c2ecf20Sopenharmony_ci	  SoCs from eFuse.
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
2718c2ecf20Sopenharmony_ci	  will be called nvmem-sprd-efuse.
2728c2ecf20Sopenharmony_ci
2738c2ecf20Sopenharmony_ciendif
274