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