Kconfig 11 KB

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