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