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 NVMEM_NINTENDO_OTP 111 tristate "Nintendo Wii and Wii U OTP Support" 112 help 113 This is a driver exposing the OTP of a Nintendo Wii or Wii U console. 114 115 This memory contains common and per-console keys, signatures and 116 related data required to access peripherals. 117 118 This driver can also be built as a module. If so, the module 119 will be called nvmem-nintendo-otp. 120 121config QCOM_QFPROM 122 tristate "QCOM QFPROM Support" 123 depends on ARCH_QCOM || COMPILE_TEST 124 depends on HAS_IOMEM 125 help 126 Say y here to enable QFPROM support. The QFPROM provides access 127 functions for QFPROM data to rest of the drivers via nvmem interface. 128 129 This driver can also be built as a module. If so, the module 130 will be called nvmem_qfprom. 131 132config NVMEM_SPMI_SDAM 133 tristate "SPMI SDAM Support" 134 depends on SPMI 135 help 136 This driver supports the Shared Direct Access Memory Module on 137 Qualcomm Technologies, Inc. PMICs. It provides the clients 138 an interface to read/write to the SDAM module's shared memory. 139 140config ROCKCHIP_EFUSE 141 tristate "Rockchip eFuse 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 eFuse, 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_efuse. 150 151config ROCKCHIP_OTP 152 tristate "Rockchip OTP controller support" 153 depends on ARCH_ROCKCHIP || COMPILE_TEST 154 depends on HAS_IOMEM 155 help 156 This is a simple drive to dump specified values of Rockchip SoC 157 from otp, such as cpu-leakage. 158 159 This driver can also be built as a module. If so, the module 160 will be called nvmem_rockchip_otp. 161 162config NVMEM_BCM_OCOTP 163 tristate "Broadcom On-Chip OTP Controller support" 164 depends on ARCH_BCM_IPROC || COMPILE_TEST 165 depends on HAS_IOMEM 166 default ARCH_BCM_IPROC 167 help 168 Say y here to enable read/write access to the Broadcom OTP 169 controller. 170 171 This driver can also be built as a module. If so, the module 172 will be called nvmem-bcm-ocotp. 173 174config NVMEM_STM32_ROMEM 175 tristate "STMicroelectronics STM32 factory-programmed memory support" 176 depends on ARCH_STM32 || COMPILE_TEST 177 help 178 Say y here to enable read-only access for STMicroelectronics STM32 179 factory-programmed memory area. 180 181 This driver can also be built as a module. If so, the module 182 will be called nvmem-stm32-romem. 183 184config NVMEM_SUNXI_SID 185 tristate "Allwinner SoCs SID support" 186 depends on ARCH_SUNXI 187 help 188 This is a driver for the 'security ID' available on various Allwinner 189 devices. 190 191 This driver can also be built as a module. If so, the module 192 will be called nvmem_sunxi_sid. 193 194config UNIPHIER_EFUSE 195 tristate "UniPhier SoCs eFuse support" 196 depends on ARCH_UNIPHIER || COMPILE_TEST 197 depends on HAS_IOMEM 198 help 199 This is a simple driver to dump specified values of UniPhier SoC 200 from eFuse. 201 202 This driver can also be built as a module. If so, the module 203 will be called nvmem-uniphier-efuse. 204 205config NVMEM_VF610_OCOTP 206 tristate "VF610 SoC OCOTP support" 207 depends on SOC_VF610 || COMPILE_TEST 208 depends on HAS_IOMEM 209 help 210 This is a driver for the 'OCOTP' peripheral available on Vybrid 211 devices like VF5xx and VF6xx. 212 213 This driver can also be build as a module. If so, the module will 214 be called nvmem-vf610-ocotp. 215 216config MESON_EFUSE 217 tristate "Amlogic Meson GX eFuse Support" 218 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM 219 help 220 This is a driver to retrieve specific values from the eFuse found on 221 the Amlogic Meson GX SoCs. 222 223 This driver can also be built as a module. If so, the module 224 will be called nvmem_meson_efuse. 225 226config MESON_MX_EFUSE 227 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support" 228 depends on ARCH_MESON || COMPILE_TEST 229 help 230 This is a driver to retrieve specific values from the eFuse found on 231 the Amlogic Meson6, Meson8 and Meson8b SoCs. 232 233 This driver can also be built as a module. If so, the module 234 will be called nvmem_meson_mx_efuse. 235 236config NVMEM_SNVS_LPGPR 237 tristate "Support for Low Power General Purpose Register" 238 depends on ARCH_MXC || COMPILE_TEST 239 help 240 This is a driver for Low Power General Purpose Register (LPGPR) available on 241 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip. 242 243 This driver can also be built as a module. If so, the module 244 will be called nvmem-snvs-lpgpr. 245 246config RAVE_SP_EEPROM 247 tristate "Rave SP EEPROM Support" 248 depends on RAVE_SP_CORE 249 help 250 Say y here to enable Rave SP EEPROM support. 251 252config SC27XX_EFUSE 253 tristate "Spreadtrum SC27XX eFuse Support" 254 depends on MFD_SC27XX_PMIC || COMPILE_TEST 255 depends on HAS_IOMEM 256 help 257 This is a simple driver to dump specified values of Spreadtrum 258 SC27XX PMICs from eFuse. 259 260 This driver can also be built as a module. If so, the module 261 will be called nvmem-sc27xx-efuse. 262 263config NVMEM_ZYNQMP 264 bool "Xilinx ZYNQMP SoC nvmem firmware support" 265 depends on ARCH_ZYNQMP 266 help 267 This is a driver to access hardware related data like 268 soc revision, IDCODE... etc by using the firmware 269 interface. 270 271 If sure, say yes. If unsure, say no. 272 273config SPRD_EFUSE 274 tristate "Spreadtrum SoC eFuse Support" 275 depends on ARCH_SPRD || COMPILE_TEST 276 depends on HAS_IOMEM 277 help 278 This is a simple driver to dump specified values of Spreadtrum 279 SoCs from eFuse. 280 281 This driver can also be built as a module. If so, the module 282 will be called nvmem-sprd-efuse. 283 284config NVMEM_RMEM 285 tristate "Reserved Memory Based Driver Support" 286 depends on HAS_IOMEM 287 help 288 This driver maps reserved memory into an nvmem device. It might be 289 useful to expose information left by firmware in memory. 290 291 This driver can also be built as a module. If so, the module 292 will be called nvmem-rmem. 293 294config NVMEM_BRCM_NVRAM 295 tristate "Broadcom's NVRAM support" 296 depends on ARCH_BCM_5301X || COMPILE_TEST 297 depends on HAS_IOMEM 298 help 299 This driver provides support for Broadcom's NVRAM that can be accessed 300 using I/O mapping. 301 302endif 303