Kconfig 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. menuconfig NVMEM
  3. bool "NVMEM Support"
  4. imply NVMEM_LAYOUTS
  5. help
  6. Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
  7. This framework is designed to provide a generic interface to NVMEM
  8. from both the Linux Kernel and the userspace.
  9. If unsure, say no.
  10. if NVMEM
  11. config NVMEM_SYSFS
  12. bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
  13. depends on SYSFS
  14. default y
  15. help
  16. Say Y here to add a sysfs interface for NVMEM.
  17. This interface is mostly used by userspace applications to
  18. read/write directly into nvmem.
  19. # Layouts
  20. source "drivers/nvmem/layouts/Kconfig"
  21. # Devices
  22. config NVMEM_APPLE_EFUSES
  23. tristate "Apple eFuse support"
  24. depends on ARCH_APPLE || COMPILE_TEST
  25. default ARCH_APPLE
  26. help
  27. Say y here to enable support for reading eFuses on Apple SoCs
  28. such as the M1. These are e.g. used to store factory programmed
  29. calibration data required for the PCIe or the USB-C PHY.
  30. This driver can also be built as a module. If so, the module will
  31. be called nvmem-apple-efuses.
  32. config NVMEM_BCM_OCOTP
  33. tristate "Broadcom On-Chip OTP Controller support"
  34. depends on ARCH_BCM_IPROC || COMPILE_TEST
  35. depends on HAS_IOMEM
  36. default ARCH_BCM_IPROC
  37. help
  38. Say y here to enable read/write access to the Broadcom OTP
  39. controller.
  40. This driver can also be built as a module. If so, the module
  41. will be called nvmem-bcm-ocotp.
  42. config NVMEM_BRCM_NVRAM
  43. tristate "Broadcom's NVRAM support"
  44. depends on ARCH_BCM_5301X || COMPILE_TEST
  45. depends on HAS_IOMEM
  46. select GENERIC_NET_UTILS
  47. help
  48. This driver provides support for Broadcom's NVRAM that can be accessed
  49. using I/O mapping.
  50. config NVMEM_IMX_IIM
  51. tristate "i.MX IC Identification Module support"
  52. depends on ARCH_MXC || COMPILE_TEST
  53. help
  54. This is a driver for the IC Identification Module (IIM) available on
  55. i.MX SoCs, providing access to 4 Kbits of programmable
  56. eFuses.
  57. This driver can also be built as a module. If so, the module
  58. will be called nvmem-imx-iim.
  59. config NVMEM_IMX_OCOTP
  60. tristate "i.MX 6/7/8 On-Chip OTP Controller support"
  61. depends on ARCH_MXC || COMPILE_TEST
  62. depends on HAS_IOMEM
  63. help
  64. This is a driver for the On-Chip OTP Controller (OCOTP) available on
  65. i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
  66. eFuses.
  67. This driver can also be built as a module. If so, the module
  68. will be called nvmem-imx-ocotp.
  69. config NVMEM_IMX_OCOTP_ELE
  70. tristate "i.MX On-Chip OTP Controller support"
  71. depends on ARCH_MXC || COMPILE_TEST
  72. depends on HAS_IOMEM
  73. depends on OF
  74. help
  75. This is a driver for the On-Chip OTP Controller (OCOTP)
  76. available on i.MX SoCs which has ELE.
  77. config NVMEM_IMX_OCOTP_SCU
  78. tristate "i.MX8 SCU On-Chip OTP Controller support"
  79. depends on IMX_SCU
  80. depends on HAVE_ARM_SMCCC
  81. help
  82. This is a driver for the SCU On-Chip OTP Controller (OCOTP)
  83. available on i.MX8 SoCs.
  84. config NVMEM_JZ4780_EFUSE
  85. tristate "JZ4780 EFUSE Memory Support"
  86. depends on MACH_INGENIC || COMPILE_TEST
  87. depends on HAS_IOMEM
  88. depends on OF
  89. select REGMAP_MMIO
  90. help
  91. Say Y here to include support for JZ4780 efuse memory found on
  92. all JZ4780 SoC based devices.
  93. To compile this driver as a module, choose M here: the module
  94. will be called nvmem_jz4780_efuse.
  95. config NVMEM_LAN9662_OTPC
  96. tristate "Microchip LAN9662 OTP controller support"
  97. depends on SOC_LAN966 || COMPILE_TEST
  98. depends on HAS_IOMEM
  99. help
  100. This driver enables the OTP controller available on Microchip LAN9662
  101. SoCs. It controls the access to the OTP memory connected to it.
  102. config NVMEM_LAYERSCAPE_SFP
  103. tristate "Layerscape SFP (Security Fuse Processor) support"
  104. depends on ARCH_LAYERSCAPE || COMPILE_TEST
  105. depends on HAS_IOMEM
  106. select REGMAP_MMIO
  107. help
  108. This driver provides support to read the eFuses on Freescale
  109. Layerscape SoC's. For example, the vendor provides a per part
  110. unique ID there.
  111. This driver can also be built as a module. If so, the module
  112. will be called layerscape-sfp.
  113. config NVMEM_LPC18XX_EEPROM
  114. tristate "NXP LPC18XX EEPROM Memory Support"
  115. depends on ARCH_LPC18XX || COMPILE_TEST
  116. depends on HAS_IOMEM
  117. help
  118. Say Y here to include support for NXP LPC18xx EEPROM memory found in
  119. NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
  120. To compile this driver as a module, choose M here: the module
  121. will be called nvmem_lpc18xx_eeprom.
  122. config NVMEM_LPC18XX_OTP
  123. tristate "NXP LPC18XX OTP Memory Support"
  124. depends on ARCH_LPC18XX || COMPILE_TEST
  125. depends on HAS_IOMEM
  126. help
  127. Say Y here to include support for NXP LPC18xx OTP memory found on
  128. all LPC18xx and LPC43xx devices.
  129. To compile this driver as a module, choose M here: the module
  130. will be called nvmem_lpc18xx_otp.
  131. config NVMEM_MESON_EFUSE
  132. tristate "Amlogic Meson GX eFuse Support"
  133. depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
  134. help
  135. This is a driver to retrieve specific values from the eFuse found on
  136. the Amlogic Meson GX SoCs.
  137. This driver can also be built as a module. If so, the module
  138. will be called nvmem_meson_efuse.
  139. config NVMEM_MESON_MX_EFUSE
  140. tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
  141. depends on ARCH_MESON || COMPILE_TEST
  142. help
  143. This is a driver to retrieve specific values from the eFuse found on
  144. the Amlogic Meson6, Meson8 and Meson8b SoCs.
  145. This driver can also be built as a module. If so, the module
  146. will be called nvmem_meson_mx_efuse.
  147. config NVMEM_MICROCHIP_OTPC
  148. tristate "Microchip OTPC support"
  149. depends on ARCH_AT91 || COMPILE_TEST
  150. help
  151. This driver enable the OTP controller available on Microchip SAMA7G5
  152. SoCs. It controls the access to the OTP memory connected to it.
  153. config NVMEM_MTK_EFUSE
  154. tristate "Mediatek SoCs EFUSE support"
  155. depends on ARCH_MEDIATEK || COMPILE_TEST
  156. depends on HAS_IOMEM
  157. help
  158. This is a driver to access hardware related data like sensor
  159. calibration, HDMI impedance etc.
  160. This driver can also be built as a module. If so, the module
  161. will be called efuse-mtk.
  162. config NVMEM_MXS_OCOTP
  163. tristate "Freescale MXS On-Chip OTP Memory Support"
  164. depends on ARCH_MXS || COMPILE_TEST
  165. depends on HAS_IOMEM
  166. help
  167. If you say Y here, you will get readonly access to the
  168. One Time Programmable memory pages that are stored
  169. on the Freescale i.MX23/i.MX28 processor.
  170. This driver can also be built as a module. If so, the module
  171. will be called nvmem-mxs-ocotp.
  172. config NVMEM_NINTENDO_OTP
  173. tristate "Nintendo Wii and Wii U OTP Support"
  174. depends on WII || COMPILE_TEST
  175. help
  176. This is a driver exposing the OTP of a Nintendo Wii or Wii U console.
  177. This memory contains common and per-console keys, signatures and
  178. related data required to access peripherals.
  179. This driver can also be built as a module. If so, the module
  180. will be called nvmem-nintendo-otp.
  181. config NVMEM_QCOM_QFPROM
  182. tristate "QCOM QFPROM Support"
  183. depends on ARCH_QCOM || COMPILE_TEST
  184. depends on HAS_IOMEM
  185. help
  186. Say y here to enable QFPROM support. The QFPROM provides access
  187. functions for QFPROM data to rest of the drivers via nvmem interface.
  188. This driver can also be built as a module. If so, the module
  189. will be called nvmem_qfprom.
  190. config NVMEM_QCOM_SEC_QFPROM
  191. tristate "QCOM SECURE QFPROM Support"
  192. depends on ARCH_QCOM || COMPILE_TEST
  193. depends on HAS_IOMEM
  194. depends on OF
  195. select QCOM_SCM
  196. help
  197. Say y here to enable secure QFPROM support. The secure QFPROM provides access
  198. functions for QFPROM data to rest of the drivers via nvmem interface.
  199. This driver can also be built as a module. If so, the module will be called
  200. nvmem_sec_qfprom.
  201. config NVMEM_RAVE_SP_EEPROM
  202. tristate "Rave SP EEPROM Support"
  203. depends on RAVE_SP_CORE
  204. help
  205. Say y here to enable Rave SP EEPROM support.
  206. config NVMEM_RMEM
  207. tristate "Reserved Memory Based Driver Support"
  208. depends on HAS_IOMEM
  209. help
  210. This driver maps reserved memory into an nvmem device. It might be
  211. useful to expose information left by firmware in memory.
  212. This driver can also be built as a module. If so, the module
  213. will be called nvmem-rmem.
  214. config NVMEM_ROCKCHIP_EFUSE
  215. tristate "Rockchip eFuse Support"
  216. depends on ARCH_ROCKCHIP || COMPILE_TEST
  217. depends on HAS_IOMEM
  218. help
  219. This is a simple driver to dump specified values of Rockchip SoC
  220. from eFuse, such as cpu-leakage.
  221. This driver can also be built as a module. If so, the module
  222. will be called nvmem_rockchip_efuse.
  223. config NVMEM_ROCKCHIP_OTP
  224. tristate "Rockchip OTP controller support"
  225. depends on ARCH_ROCKCHIP || COMPILE_TEST
  226. depends on HAS_IOMEM
  227. help
  228. This is a simple driver to dump specified values of Rockchip SoC
  229. from OTP, such as cpu-leakage.
  230. This driver can also be built as a module. If so, the module
  231. will be called nvmem_rockchip_otp.
  232. config NVMEM_SC27XX_EFUSE
  233. tristate "Spreadtrum SC27XX eFuse Support"
  234. depends on MFD_SC27XX_PMIC || COMPILE_TEST
  235. depends on HAS_IOMEM
  236. help
  237. This is a simple driver to dump specified values of Spreadtrum
  238. SC27XX PMICs from eFuse.
  239. This driver can also be built as a module. If so, the module
  240. will be called nvmem-sc27xx-efuse.
  241. config NVMEM_SNVS_LPGPR
  242. tristate "Support for Low Power General Purpose Register"
  243. depends on ARCH_MXC || COMPILE_TEST
  244. help
  245. This is a driver for Low Power General Purpose Register (LPGPR) available on
  246. i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
  247. This driver can also be built as a module. If so, the module
  248. will be called nvmem-snvs-lpgpr.
  249. config NVMEM_SPMI_SDAM
  250. tristate "SPMI SDAM Support"
  251. depends on SPMI
  252. help
  253. This driver supports the Shared Direct Access Memory Module on
  254. Qualcomm Technologies, Inc. PMICs. It provides the clients
  255. an interface to read/write to the SDAM module's shared memory.
  256. config NVMEM_SPRD_EFUSE
  257. tristate "Spreadtrum SoC eFuse Support"
  258. depends on ARCH_SPRD || COMPILE_TEST
  259. depends on HAS_IOMEM
  260. help
  261. This is a simple driver to dump specified values of Spreadtrum
  262. SoCs from eFuse.
  263. This driver can also be built as a module. If so, the module
  264. will be called nvmem-sprd-efuse.
  265. config NVMEM_STM32_BSEC_OPTEE_TA
  266. def_bool NVMEM_STM32_ROMEM && OPTEE
  267. help
  268. Say y here to enable the accesses to STM32MP SoC OTPs by the OP-TEE
  269. trusted application STM32MP BSEC.
  270. This library is a used by stm32-romem driver or included in the module
  271. called nvmem-stm32-romem.
  272. config NVMEM_STM32_ROMEM
  273. tristate "STMicroelectronics STM32 factory-programmed memory support"
  274. depends on ARCH_STM32 || COMPILE_TEST
  275. depends on OPTEE || !OPTEE
  276. help
  277. Say y here to enable read-only access for STMicroelectronics STM32
  278. factory-programmed memory area.
  279. This driver can also be built as a module. If so, the module
  280. will be called nvmem-stm32-romem.
  281. config NVMEM_SUNPLUS_OCOTP
  282. tristate "Sunplus SoC OTP support"
  283. depends on SOC_SP7021 || COMPILE_TEST
  284. depends on HAS_IOMEM
  285. help
  286. This is a driver for the On-chip OTP controller (OCOTP) available
  287. on Sunplus SoCs. It provides access to 128 bytes of one-time
  288. programmable eFuse.
  289. This driver can also be built as a module. If so, the module
  290. will be called nvmem-sunplus-ocotp.
  291. config NVMEM_SUNXI_SID
  292. tristate "Allwinner SoCs SID support"
  293. depends on ARCH_SUNXI
  294. help
  295. This is a driver for the 'security ID' available on various Allwinner
  296. devices.
  297. This driver can also be built as a module. If so, the module
  298. will be called nvmem_sunxi_sid.
  299. config NVMEM_U_BOOT_ENV
  300. tristate "U-Boot environment variables support"
  301. depends on OF && MTD
  302. select NVMEM_LAYOUT_U_BOOT_ENV
  303. help
  304. U-Boot stores its setup as environment variables. This driver adds
  305. support for verifying & exporting such data. It also exposes variables
  306. as NVMEM cells so they can be referenced by other drivers.
  307. Currently this drivers works only with env variables on top of MTD.
  308. If compiled as module it will be called nvmem_u-boot-env.
  309. config NVMEM_UNIPHIER_EFUSE
  310. tristate "UniPhier SoCs eFuse support"
  311. depends on ARCH_UNIPHIER || COMPILE_TEST
  312. depends on HAS_IOMEM
  313. help
  314. This is a simple driver to dump specified values of UniPhier SoC
  315. from eFuse.
  316. This driver can also be built as a module. If so, the module
  317. will be called nvmem-uniphier-efuse.
  318. config NVMEM_VF610_OCOTP
  319. tristate "VF610 SoC OCOTP support"
  320. depends on SOC_VF610 || COMPILE_TEST
  321. depends on HAS_IOMEM
  322. help
  323. This is a driver for the 'OCOTP' peripheral available on Vybrid
  324. devices like VF5xx and VF6xx.
  325. This driver can also be build as a module. If so, the module will
  326. be called nvmem-vf610-ocotp.
  327. config NVMEM_ZYNQMP
  328. tristate "Xilinx ZYNQMP SoC nvmem firmware support"
  329. depends on ARCH_ZYNQMP
  330. help
  331. This is a driver to access hardware related data like
  332. soc revision, IDCODE... etc by using the firmware
  333. interface.
  334. If sure, say yes. If unsure, say no.
  335. config NVMEM_QORIQ_EFUSE
  336. tristate "NXP QorIQ eFuse support"
  337. depends on PPC_85xx || COMPILE_TEST
  338. depends on HAS_IOMEM
  339. help
  340. This driver provides read support for the eFuses (SFP) on NXP QorIQ
  341. series SoC's. This includes secure boot settings, the globally unique
  342. NXP ID 'FUIDR' and the OEM unique ID 'OUIDR'.
  343. This driver can also be built as a module. If so, the module
  344. will be called nvmem_qoriq_efuse.
  345. endif