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 RK628_EFUSE 130 tristate "RK628 eFuse Support" 131 depends on ARCH_ROCKCHIP || COMPILE_TEST 132 depends on HAS_IOMEM 133 depends on MFD_RK628 134 help 135 This is a simple drive to dump specified values of Rk628 SoC 136 from eFuse, such as cpu-leakage. 137 138 This driver can also be built as a module. If so, the module 139 will be called nvmem_rk628_efuse. 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_ROCKCHIP_SEC_OTP 164 tristate "Rockchip Secure OTP controller support" 165 depends on ARCH_ROCKCHIP || COMPILE_TEST 166 depends on TEE && OPTEE 167 help 168 This is a simple drive to read and write non-protected 169 oem zone in secure otp. 170 171 This driver can also be built as a module. If so, the module 172 will be called nvmem-rockchip-secure-otp. 173 174config NVMEM_BCM_OCOTP 175 tristate "Broadcom On-Chip OTP Controller support" 176 depends on ARCH_BCM_IPROC || COMPILE_TEST 177 depends on HAS_IOMEM 178 default ARCH_BCM_IPROC 179 help 180 Say y here to enable read/write access to the Broadcom OTP 181 controller. 182 183 This driver can also be built as a module. If so, the module 184 will be called nvmem-bcm-ocotp. 185 186config NVMEM_STM32_ROMEM 187 tristate "STMicroelectronics STM32 factory-programmed memory support" 188 depends on ARCH_STM32 || COMPILE_TEST 189 help 190 Say y here to enable read-only access for STMicroelectronics STM32 191 factory-programmed memory area. 192 193 This driver can also be built as a module. If so, the module 194 will be called nvmem-stm32-romem. 195 196config NVMEM_SUNXI_SID 197 tristate "Allwinner SoCs SID support" 198 depends on ARCH_SUNXI 199 help 200 This is a driver for the 'security ID' available on various Allwinner 201 devices. 202 203 This driver can also be built as a module. If so, the module 204 will be called nvmem_sunxi_sid. 205 206config UNIPHIER_EFUSE 207 tristate "UniPhier SoCs eFuse support" 208 depends on ARCH_UNIPHIER || COMPILE_TEST 209 depends on HAS_IOMEM 210 help 211 This is a simple driver to dump specified values of UniPhier SoC 212 from eFuse. 213 214 This driver can also be built as a module. If so, the module 215 will be called nvmem-uniphier-efuse. 216 217config NVMEM_VF610_OCOTP 218 tristate "VF610 SoC OCOTP support" 219 depends on SOC_VF610 || COMPILE_TEST 220 depends on HAS_IOMEM 221 help 222 This is a driver for the 'OCOTP' peripheral available on Vybrid 223 devices like VF5xx and VF6xx. 224 225 This driver can also be build as a module. If so, the module will 226 be called nvmem-vf610-ocotp. 227 228config MESON_EFUSE 229 tristate "Amlogic Meson GX eFuse Support" 230 depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM 231 help 232 This is a driver to retrieve specific values from the eFuse found on 233 the Amlogic Meson GX SoCs. 234 235 This driver can also be built as a module. If so, the module 236 will be called nvmem_meson_efuse. 237 238config MESON_MX_EFUSE 239 tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support" 240 depends on ARCH_MESON || COMPILE_TEST 241 help 242 This is a driver to retrieve specific values from the eFuse found on 243 the Amlogic Meson6, Meson8 and Meson8b SoCs. 244 245 This driver can also be built as a module. If so, the module 246 will be called nvmem_meson_mx_efuse. 247 248config NVMEM_SNVS_LPGPR 249 tristate "Support for Low Power General Purpose Register" 250 depends on ARCH_MXC || COMPILE_TEST 251 help 252 This is a driver for Low Power General Purpose Register (LPGPR) available on 253 i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip. 254 255 This driver can also be built as a module. If so, the module 256 will be called nvmem-snvs-lpgpr. 257 258config RAVE_SP_EEPROM 259 tristate "Rave SP EEPROM Support" 260 depends on RAVE_SP_CORE 261 help 262 Say y here to enable Rave SP EEPROM support. 263 264config SC27XX_EFUSE 265 tristate "Spreadtrum SC27XX eFuse Support" 266 depends on MFD_SC27XX_PMIC || COMPILE_TEST 267 depends on HAS_IOMEM 268 help 269 This is a simple driver to dump specified values of Spreadtrum 270 SC27XX PMICs from eFuse. 271 272 This driver can also be built as a module. If so, the module 273 will be called nvmem-sc27xx-efuse. 274 275config NVMEM_ZYNQMP 276 bool "Xilinx ZYNQMP SoC nvmem firmware support" 277 depends on ARCH_ZYNQMP 278 help 279 This is a driver to access hardware related data like 280 soc revision, IDCODE... etc by using the firmware 281 interface. 282 283 If sure, say yes. If unsure, say no. 284 285config SPRD_EFUSE 286 tristate "Spreadtrum SoC eFuse Support" 287 depends on ARCH_SPRD || COMPILE_TEST 288 depends on HAS_IOMEM 289 help 290 This is a simple driver to dump specified values of Spreadtrum 291 SoCs from eFuse. 292 293 This driver can also be built as a module. If so, the module 294 will be called nvmem-sprd-efuse. 295 296endif 297