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 24config NVMEM_IMX_IIM 25 tristate "i.MX IC Identification Module support" 26 depends on ARCH_MXC || COMPILE_TEST 27 help 28 This is a driver for the IC Identification Module (IIM) available on 29 i.MX SoCs, providing access to 4 Kbits of programmable 30 eFuses. 31 32 This driver can also be built as a module. If so, the module 33 will be called nvmem-imx-iim. 34 35config NVMEM_IMX_OCOTP 36 tristate "i.MX 6/7/8 On-Chip OTP Controller support" 37 depends on ARCH_MXC || COMPILE_TEST 38 depends on HAS_IOMEM 39 help 40 This is a driver for the On-Chip OTP Controller (OCOTP) available on 41 i.MX6 SoCs, providing access to 4 Kbits of one-time programmable 42 eFuses. 43 44 This driver can also be built as a module. If so, the module 45 will be called nvmem-imx-ocotp. 46 47config NVMEM_IMX_OCOTP_SCU 48 tristate "i.MX8 SCU On-Chip OTP Controller support" 49 depends on IMX_SCU 50 depends on HAVE_ARM_SMCCC 51 help 52 This is a driver for the SCU On-Chip OTP Controller (OCOTP) 53 available on i.MX8 SoCs. 54 55config JZ4780_EFUSE 56 tristate "JZ4780 EFUSE Memory Support" 57 depends on MACH_INGENIC || COMPILE_TEST 58 depends on HAS_IOMEM 59 depends on OF 60 select REGMAP_MMIO 61 help 62 Say Y here to include support for JZ4780 efuse memory found on 63 all JZ4780 SoC based devices. 64 To compile this driver as a module, choose M here: the module 65 will be called nvmem_jz4780_efuse. 66 67config NVMEM_LPC18XX_EEPROM 68 tristate "NXP LPC18XX EEPROM Memory Support" 69 depends on ARCH_LPC18XX || COMPILE_TEST 70 depends on HAS_IOMEM 71 help 72 Say Y here to include support for NXP LPC18xx EEPROM memory found in 73 NXP LPC185x/3x and LPC435x/3x/2x/1x devices. 74 To compile this driver as a module, choose M here: the module 75 will be called nvmem_lpc18xx_eeprom. 76 77config NVMEM_LPC18XX_OTP 78 tristate "NXP LPC18XX OTP Memory Support" 79 depends on ARCH_LPC18XX || COMPILE_TEST 80 depends on HAS_IOMEM 81 help 82 Say Y here to include support for NXP LPC18xx OTP memory found on 83 all LPC18xx and LPC43xx devices. 84 To compile this driver as a module, choose M here: the module 85 will be called nvmem_lpc18xx_otp. 86 87config NVMEM_MXS_OCOTP 88 tristate "Freescale MXS On-Chip OTP Memory Support" 89 depends on ARCH_MXS || COMPILE_TEST 90 depends on HAS_IOMEM 91 help 92 If you say Y here, you will get readonly access to the 93 One Time Programmable memory pages that are stored 94 on the Freescale i.MX23/i.MX28 processor. 95 96 This driver can also be built as a module. If so, the module 97 will be called nvmem-mxs-ocotp. 98 99config MTK_EFUSE 100 tristate "Mediatek SoCs EFUSE support" 101 depends on ARCH_MEDIATEK || COMPILE_TEST 102 depends on HAS_IOMEM 103 help 104 This is a driver to access hardware related data like sensor 105 calibration, HDMI impedance etc. 106 107 This driver can also be built as a module. If so, the module 108 will be called efuse-mtk. 109 110config QCOM_QFPROM 111 tristate "QCOM QFPROM Support" 112 depends on ARCH_QCOM || COMPILE_TEST 113 depends on HAS_IOMEM 114 help 115 Say y here to enable QFPROM support. The QFPROM provides access 116 functions for QFPROM data to rest of the drivers via nvmem interface. 117 118 This driver can also be built as a module. If so, the module 119 will be called nvmem_qfprom. 120 121config NVMEM_SPMI_SDAM 122 tristate "SPMI SDAM Support" 123 depends on SPMI 124 help 125 This driver supports the Shared Direct Access Memory Module on 126 Qualcomm Technologies, Inc. PMICs. It provides the clients 127 an interface to read/write to the SDAM module's shared memory. 128 129config ROCKCHIP_EFUSE 130 tristate "Rockchip eFuse Support" 131 depends on ARCH_ROCKCHIP || COMPILE_TEST 132 depends on HAS_IOMEM 133 help 134 This is a simple drive to dump specified values of Rockchip SoC 135 from eFuse, such as cpu-leakage. 136 137 This driver can also be built as a module. If so, the module 138 will be called nvmem_rockchip_efuse. 139 140config ROCKCHIP_OTP 141 tristate "Rockchip OTP controller support" 142 depends on ARCH_ROCKCHIP || COMPILE_TEST 143 depends on HAS_IOMEM 144 help 145 This is a simple drive to dump specified values of Rockchip SoC 146 from otp, such as cpu-leakage. 147 148 This driver can also be built as a module. If so, the module 149 will be called nvmem_rockchip_otp. 150 151config NVMEM_BCM_OCOTP 152 tristate "Broadcom On-Chip OTP Controller support" 153 depends on ARCH_BCM_IPROC || COMPILE_TEST 154 depends on HAS_IOMEM 155 default ARCH_BCM_IPROC 156 help 157 Say y here to enable read/write access to the Broadcom OTP 158 controller. 159 160 This driver can also be built as a module. If so, the module 161 will be called nvmem-bcm-ocotp. 162 163config NVMEM_STM32_ROMEM 164 tristate "STMicroelectronics STM32 factory-programmed memory support" 165 depends on ARCH_STM32 || COMPILE_TEST 166 help 167 Say y here to enable read-only access for STMicroelectronics STM32 168 factory-programmed memory area. 169 170 This driver can also be built as a module. If so, the module 171 will be called nvmem-stm32-romem. 172 173config NVMEM_SUNXI_SID 174 tristate "Allwinner SoCs SID support" 175 depends on ARCH_SUNXI 176 help 177 This is a driver for the 'security ID' available on various Allwinner 178 devices. 179 180 This driver can also be built as a module. If so, the module 181 will be called nvmem_sunxi_sid. 182 183config UNIPHIER_EFUSE 184 tristate "UniPhier SoCs eFuse support" 185 depends on ARCH_UNIPHIER || COMPILE_TEST 186 depends on HAS_IOMEM 187 help 188 This is a simple driver to dump specified values of UniPhier SoC 189 from eFuse. 190 191 This driver can also be built as a module. If so, the module 192 will be called nvmem-uniphier-efuse. 193 194config NVMEM_VF610_OCOTP 195 tristate "VF610 SoC OCOTP support" 196 depends on SOC_VF610 || COMPILE_TEST 197 depends on HAS_IOMEM 198 help 199 This is a driver for the 'OCOTP' peripheral available on Vybrid 200 devices like VF5xx and VF6xx. 201 202 This driver can also be build as a module. If so, the module will 203 be called nvmem-vf610-ocotp. 204 205config MESON_EFUSE 206 tristate "Amlogic Meson GX eFuse Support" 207 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM 208 help 209 This is a driver to retrieve specific values from the eFuse found on 210 the Amlogic Meson GX SoCs. 211 212 This driver can also be built as a module. If so, the module 213 will be called nvmem_meson_efuse. 214 215config MESON_MX_EFUSE 216 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support" 217 depends on ARCH_MESON || COMPILE_TEST 218 help 219 This is a driver to retrieve specific values from the eFuse found on 220 the Amlogic Meson6, Meson8 and Meson8b SoCs. 221 222 This driver can also be built as a module. If so, the module 223 will be called nvmem_meson_mx_efuse. 224 225config NVMEM_SNVS_LPGPR 226 tristate "Support for Low Power General Purpose Register" 227 depends on ARCH_MXC || COMPILE_TEST 228 help 229 This is a driver for Low Power General Purpose Register (LPGPR) available on 230 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip. 231 232 This driver can also be built as a module. If so, the module 233 will be called nvmem-snvs-lpgpr. 234 235config RAVE_SP_EEPROM 236 tristate "Rave SP EEPROM Support" 237 depends on RAVE_SP_CORE 238 help 239 Say y here to enable Rave SP EEPROM support. 240 241config SC27XX_EFUSE 242 tristate "Spreadtrum SC27XX eFuse Support" 243 depends on MFD_SC27XX_PMIC || COMPILE_TEST 244 depends on HAS_IOMEM 245 help 246 This is a simple driver to dump specified values of Spreadtrum 247 SC27XX PMICs from eFuse. 248 249 This driver can also be built as a module. If so, the module 250 will be called nvmem-sc27xx-efuse. 251 252config NVMEM_ZYNQMP 253 bool "Xilinx ZYNQMP SoC nvmem firmware support" 254 depends on ARCH_ZYNQMP 255 help 256 This is a driver to access hardware related data like 257 soc revision, IDCODE... etc by using the firmware 258 interface. 259 260 If sure, say yes. If unsure, say no. 261 262config SPRD_EFUSE 263 tristate "Spreadtrum SoC eFuse Support" 264 depends on ARCH_SPRD || COMPILE_TEST 265 depends on HAS_IOMEM 266 help 267 This is a simple driver to dump specified values of Spreadtrum 268 SoCs from eFuse. 269 270 This driver can also be built as a module. If so, the module 271 will be called nvmem-sprd-efuse. 272 273config NVMEM_RMEM 274 tristate "Reserved Memory Based Driver Support" 275 help 276 This driver maps reserved memory into an nvmem device. It might be 277 useful to expose information left by firmware in memory. 278 279 This driver can also be built as a module. If so, the module 280 will be called nvmem-rmem. 281endif 282