xref: /linux/drivers/nvmem/Kconfig (revision 4a2addc28769183ff1162c408b4cda55b8c75495)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2eace75cfSSrinivas Kandagatlamenuconfig NVMEM
32a37ce25SArnd Bergmann	bool "NVMEM Support"
4eace75cfSSrinivas Kandagatla	help
5eace75cfSSrinivas Kandagatla	  Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES...
6eace75cfSSrinivas Kandagatla
7eace75cfSSrinivas Kandagatla	  This framework is designed to provide a generic interface to NVMEM
8eace75cfSSrinivas Kandagatla	  from both the Linux Kernel and the userspace.
9eace75cfSSrinivas Kandagatla
10eace75cfSSrinivas Kandagatla	  This driver can also be built as a module. If so, the module
11eace75cfSSrinivas Kandagatla	  will be called nvmem_core.
12eace75cfSSrinivas Kandagatla
13eace75cfSSrinivas Kandagatla	  If unsure, say no.
144ab11996SSrinivas Kandagatla
154ab11996SSrinivas Kandagatlaif NVMEM
164ab11996SSrinivas Kandagatla
17ae0c2d72SSrinivas Kandagatlaconfig NVMEM_SYSFS
18ae0c2d72SSrinivas Kandagatla	bool "/sys/bus/nvmem/devices/*/nvmem (sysfs interface)"
19ae0c2d72SSrinivas Kandagatla	depends on SYSFS
20ae0c2d72SSrinivas Kandagatla	default y
21ae0c2d72SSrinivas Kandagatla	help
22ae0c2d72SSrinivas Kandagatla	 Say Y here to add a sysfs interface for NVMEM.
23ae0c2d72SSrinivas Kandagatla
24ae0c2d72SSrinivas Kandagatla	 This interface is mostly used by userspace applications to
25ae0c2d72SSrinivas Kandagatla	 read/write directly into nvmem.
26ae0c2d72SSrinivas Kandagatla
27c066c1c0SMichael Grzeschikconfig NVMEM_IMX_IIM
28c066c1c0SMichael Grzeschik	tristate "i.MX IC Identification Module support"
29c066c1c0SMichael Grzeschik	depends on ARCH_MXC || COMPILE_TEST
30c066c1c0SMichael Grzeschik	help
31c066c1c0SMichael Grzeschik	  This is a driver for the IC Identification Module (IIM) available on
32c066c1c0SMichael Grzeschik	  i.MX SoCs, providing access to 4 Kbits of programmable
33c066c1c0SMichael Grzeschik	  eFuses.
34c066c1c0SMichael Grzeschik
35c066c1c0SMichael Grzeschik	  This driver can also be built as a module. If so, the module
36c066c1c0SMichael Grzeschik	  will be called nvmem-imx-iim.
37c066c1c0SMichael Grzeschik
383edba6b4SPhilipp Zabelconfig NVMEM_IMX_OCOTP
39dd4c1047SLucas Stach	tristate "i.MX 6/7/8 On-Chip OTP Controller support"
40dd4c1047SLucas Stach	depends on ARCH_MXC || COMPILE_TEST
4163c0c076SSrinivas Kandagatla	depends on HAS_IOMEM
423edba6b4SPhilipp Zabel	help
433edba6b4SPhilipp Zabel	  This is a driver for the On-Chip OTP Controller (OCOTP) available on
443edba6b4SPhilipp Zabel	  i.MX6 SoCs, providing access to 4 Kbits of one-time programmable
453edba6b4SPhilipp Zabel	  eFuses.
463edba6b4SPhilipp Zabel
473edba6b4SPhilipp Zabel	  This driver can also be built as a module. If so, the module
483edba6b4SPhilipp Zabel	  will be called nvmem-imx-ocotp.
493edba6b4SPhilipp Zabel
5067ff708bSPeng Fanconfig NVMEM_IMX_OCOTP_SCU
5167ff708bSPeng Fan	tristate "i.MX8 SCU On-Chip OTP Controller support"
5267ff708bSPeng Fan	depends on IMX_SCU
53b210fac7SSrinivas Kandagatla	depends on HAVE_ARM_SMCCC
5467ff708bSPeng Fan	help
5567ff708bSPeng Fan	  This is a driver for the SCU On-Chip OTP Controller (OCOTP)
5667ff708bSPeng Fan	  available on i.MX8 SoCs.
5767ff708bSPeng Fan
58*4a2addc2SPrasannaKumar Muralidharanconfig JZ4780_EFUSE
59*4a2addc2SPrasannaKumar Muralidharan	tristate "JZ4780 EFUSE Memory Support"
60*4a2addc2SPrasannaKumar Muralidharan	depends on MACH_INGENIC || COMPILE_TEST
61*4a2addc2SPrasannaKumar Muralidharan	depends on HAS_IOMEM
62*4a2addc2SPrasannaKumar Muralidharan	depends on OF
63*4a2addc2SPrasannaKumar Muralidharan	select REGMAP_MMIO
64*4a2addc2SPrasannaKumar Muralidharan	help
65*4a2addc2SPrasannaKumar Muralidharan	  Say Y here to include support for JZ4780 efuse memory found on
66*4a2addc2SPrasannaKumar Muralidharan	  all JZ4780 SoC based devices.
67*4a2addc2SPrasannaKumar Muralidharan	  To compile this driver as a module, choose M here: the module
68*4a2addc2SPrasannaKumar Muralidharan	  will be called nvmem_jz4780_efuse.
69*4a2addc2SPrasannaKumar Muralidharan
70f02f8aeeSAriel D'Alessandroconfig NVMEM_LPC18XX_EEPROM
71f02f8aeeSAriel D'Alessandro	tristate "NXP LPC18XX EEPROM Memory Support"
72f02f8aeeSAriel D'Alessandro	depends on ARCH_LPC18XX || COMPILE_TEST
732ce7aed6SKrzysztof Kozlowski	depends on HAS_IOMEM
74f02f8aeeSAriel D'Alessandro	help
75f02f8aeeSAriel D'Alessandro	  Say Y here to include support for NXP LPC18xx EEPROM memory found in
76f02f8aeeSAriel D'Alessandro	  NXP LPC185x/3x and LPC435x/3x/2x/1x devices.
77f02f8aeeSAriel D'Alessandro	  To compile this driver as a module, choose M here: the module
78f02f8aeeSAriel D'Alessandro	  will be called nvmem_lpc18xx_eeprom.
79f02f8aeeSAriel D'Alessandro
8088806dafSJoachim Eastwoodconfig NVMEM_LPC18XX_OTP
8188806dafSJoachim Eastwood	tristate "NXP LPC18XX OTP Memory Support"
8288806dafSJoachim Eastwood	depends on ARCH_LPC18XX || COMPILE_TEST
8388806dafSJoachim Eastwood	depends on HAS_IOMEM
8488806dafSJoachim Eastwood	help
8588806dafSJoachim Eastwood	  Say Y here to include support for NXP LPC18xx OTP memory found on
8688806dafSJoachim Eastwood	  all LPC18xx and LPC43xx devices.
8788806dafSJoachim Eastwood	  To compile this driver as a module, choose M here: the module
8888806dafSJoachim Eastwood	  will be called nvmem_lpc18xx_otp.
8988806dafSJoachim Eastwood
90c01e9a11SStefan Wahrenconfig NVMEM_MXS_OCOTP
91c01e9a11SStefan Wahren	tristate "Freescale MXS On-Chip OTP Memory Support"
92c01e9a11SStefan Wahren	depends on ARCH_MXS || COMPILE_TEST
935685e244SRichard Weinberger	depends on HAS_IOMEM
94c01e9a11SStefan Wahren	help
95c01e9a11SStefan Wahren	  If you say Y here, you will get readonly access to the
96c01e9a11SStefan Wahren	  One Time Programmable memory pages that are stored
97c01e9a11SStefan Wahren	  on the Freescale i.MX23/i.MX28 processor.
98c01e9a11SStefan Wahren
99c01e9a11SStefan Wahren	  This driver can also be built as a module. If so, the module
100c01e9a11SStefan Wahren	  will be called nvmem-mxs-ocotp.
101c01e9a11SStefan Wahren
1024c7e4fe3SAndrew-CT Chenconfig MTK_EFUSE
1034c7e4fe3SAndrew-CT Chen	tristate "Mediatek SoCs EFUSE support"
1044c7e4fe3SAndrew-CT Chen	depends on ARCH_MEDIATEK || COMPILE_TEST
1052ce7aed6SKrzysztof Kozlowski	depends on HAS_IOMEM
1064c7e4fe3SAndrew-CT Chen	help
1074c7e4fe3SAndrew-CT Chen	  This is a driver to access hardware related data like sensor
1084c7e4fe3SAndrew-CT Chen	  calibration, HDMI impedance etc.
1094c7e4fe3SAndrew-CT Chen
1104c7e4fe3SAndrew-CT Chen	  This driver can also be built as a module. If so, the module
1114c7e4fe3SAndrew-CT Chen	  will be called efuse-mtk.
1124c7e4fe3SAndrew-CT Chen
1134ab11996SSrinivas Kandagatlaconfig QCOM_QFPROM
1144ab11996SSrinivas Kandagatla	tristate "QCOM QFPROM Support"
1154ab11996SSrinivas Kandagatla	depends on ARCH_QCOM || COMPILE_TEST
1165685e244SRichard Weinberger	depends on HAS_IOMEM
1174ab11996SSrinivas Kandagatla	help
1184ab11996SSrinivas Kandagatla	  Say y here to enable QFPROM support. The QFPROM provides access
1194ab11996SSrinivas Kandagatla	  functions for QFPROM data to rest of the drivers via nvmem interface.
1204ab11996SSrinivas Kandagatla
1214ab11996SSrinivas Kandagatla	  This driver can also be built as a module. If so, the module
1224ab11996SSrinivas Kandagatla	  will be called nvmem_qfprom.
1234ab11996SSrinivas Kandagatla
12440ce9798SAnirudh Ghayalconfig NVMEM_SPMI_SDAM
12540ce9798SAnirudh Ghayal	tristate "SPMI SDAM Support"
12640ce9798SAnirudh Ghayal	depends on SPMI
12740ce9798SAnirudh Ghayal	help
12840ce9798SAnirudh Ghayal	  This driver supports the Shared Direct Access Memory Module on
12940ce9798SAnirudh Ghayal	  Qualcomm Technologies, Inc. PMICs. It provides the clients
13040ce9798SAnirudh Ghayal	  an interface to read/write to the SDAM module's shared memory.
13140ce9798SAnirudh Ghayal
13203a69568SZhengShunQianconfig ROCKCHIP_EFUSE
13303a69568SZhengShunQian	tristate "Rockchip eFuse Support"
13403a69568SZhengShunQian	depends on ARCH_ROCKCHIP || COMPILE_TEST
1355685e244SRichard Weinberger	depends on HAS_IOMEM
13603a69568SZhengShunQian	help
13703a69568SZhengShunQian	  This is a simple drive to dump specified values of Rockchip SoC
13803a69568SZhengShunQian	  from eFuse, such as cpu-leakage.
13903a69568SZhengShunQian
14003a69568SZhengShunQian	  This driver can also be built as a module. If so, the module
14103a69568SZhengShunQian	  will be called nvmem_rockchip_efuse.
14203a69568SZhengShunQian
143755864feSFinley Xiaoconfig ROCKCHIP_OTP
144755864feSFinley Xiao	tristate "Rockchip OTP controller support"
145755864feSFinley Xiao	depends on ARCH_ROCKCHIP || COMPILE_TEST
146755864feSFinley Xiao	depends on HAS_IOMEM
147755864feSFinley Xiao	help
148755864feSFinley Xiao	  This is a simple drive to dump specified values of Rockchip SoC
149755864feSFinley Xiao	  from otp, such as cpu-leakage.
150755864feSFinley Xiao
151755864feSFinley Xiao	  This driver can also be built as a module. If so, the module
152755864feSFinley Xiao	  will be called nvmem_rockchip_otp.
153755864feSFinley Xiao
1549d59c6e8SJonathan Richardsonconfig NVMEM_BCM_OCOTP
1559d59c6e8SJonathan Richardson	tristate "Broadcom On-Chip OTP Controller support"
1569d59c6e8SJonathan Richardson	depends on ARCH_BCM_IPROC || COMPILE_TEST
1579d59c6e8SJonathan Richardson	depends on HAS_IOMEM
1589d59c6e8SJonathan Richardson	default ARCH_BCM_IPROC
1599d59c6e8SJonathan Richardson	help
1609d59c6e8SJonathan Richardson	  Say y here to enable read/write access to the Broadcom OTP
1619d59c6e8SJonathan Richardson	  controller.
1629d59c6e8SJonathan Richardson
1639d59c6e8SJonathan Richardson	  This driver can also be built as a module. If so, the module
1649d59c6e8SJonathan Richardson	  will be called nvmem-bcm-ocotp.
1659d59c6e8SJonathan Richardson
166ded1b7fcSFabrice Gasnierconfig NVMEM_STM32_ROMEM
167ded1b7fcSFabrice Gasnier	tristate "STMicroelectronics STM32 factory-programmed memory support"
168ded1b7fcSFabrice Gasnier	depends on ARCH_STM32 || COMPILE_TEST
169ded1b7fcSFabrice Gasnier	help
170ded1b7fcSFabrice Gasnier	  Say y here to enable read-only access for STMicroelectronics STM32
171ded1b7fcSFabrice Gasnier	  factory-programmed memory area.
172ded1b7fcSFabrice Gasnier
173ded1b7fcSFabrice Gasnier	  This driver can also be built as a module. If so, the module
174ded1b7fcSFabrice Gasnier	  will be called nvmem-stm32-romem.
175ded1b7fcSFabrice Gasnier
1763d0b16a6SMaxime Ripardconfig NVMEM_SUNXI_SID
1773d0b16a6SMaxime Ripard	tristate "Allwinner SoCs SID support"
1783d0b16a6SMaxime Ripard	depends on ARCH_SUNXI
1793d0b16a6SMaxime Ripard	help
1803d0b16a6SMaxime Ripard	  This is a driver for the 'security ID' available on various Allwinner
1813d0b16a6SMaxime Ripard	  devices.
1823d0b16a6SMaxime Ripard
1833d0b16a6SMaxime Ripard	  This driver can also be built as a module. If so, the module
1843d0b16a6SMaxime Ripard	  will be called nvmem_sunxi_sid.
1853d0b16a6SMaxime Ripard
18671c5dd50SKeiji Hayashibaraconfig UNIPHIER_EFUSE
18771c5dd50SKeiji Hayashibara	tristate "UniPhier SoCs eFuse support"
18871c5dd50SKeiji Hayashibara	depends on ARCH_UNIPHIER || COMPILE_TEST
18971c5dd50SKeiji Hayashibara	depends on HAS_IOMEM
19071c5dd50SKeiji Hayashibara	help
19171c5dd50SKeiji Hayashibara	  This is a simple driver to dump specified values of UniPhier SoC
19271c5dd50SKeiji Hayashibara	  from eFuse.
19371c5dd50SKeiji Hayashibara
19471c5dd50SKeiji Hayashibara	  This driver can also be built as a module. If so, the module
19571c5dd50SKeiji Hayashibara	  will be called nvmem-uniphier-efuse.
19671c5dd50SKeiji Hayashibara
19722dbdb7cSSanchayan Maityconfig NVMEM_VF610_OCOTP
19822dbdb7cSSanchayan Maity	tristate "VF610 SoC OCOTP support"
19922dbdb7cSSanchayan Maity	depends on SOC_VF610 || COMPILE_TEST
2005685e244SRichard Weinberger	depends on HAS_IOMEM
20122dbdb7cSSanchayan Maity	help
20222dbdb7cSSanchayan Maity	  This is a driver for the 'OCOTP' peripheral available on Vybrid
20322dbdb7cSSanchayan Maity	  devices like VF5xx and VF6xx.
20422dbdb7cSSanchayan Maity
20522dbdb7cSSanchayan Maity	  This driver can also be build as a module. If so, the module will
20622dbdb7cSSanchayan Maity	  be called nvmem-vf610-ocotp.
20722dbdb7cSSanchayan Maity
208ad855eaeSCarlo Caioneconfig MESON_EFUSE
2099593ad32SMartin Blumenstingl	tristate "Amlogic Meson GX eFuse Support"
210ad855eaeSCarlo Caione	depends on (ARCH_MESON || COMPILE_TEST) && MESON_SM
211ad855eaeSCarlo Caione	help
212ad855eaeSCarlo Caione	  This is a driver to retrieve specific values from the eFuse found on
2139593ad32SMartin Blumenstingl	  the Amlogic Meson GX SoCs.
214ad855eaeSCarlo Caione
215ad855eaeSCarlo Caione	  This driver can also be built as a module. If so, the module
216ad855eaeSCarlo Caione	  will be called nvmem_meson_efuse.
217ad855eaeSCarlo Caione
2188caef1faSMartin Blumenstinglconfig MESON_MX_EFUSE
2198caef1faSMartin Blumenstingl	tristate "Amlogic Meson6/Meson8/Meson8b eFuse Support"
2208caef1faSMartin Blumenstingl	depends on ARCH_MESON || COMPILE_TEST
2218caef1faSMartin Blumenstingl	help
2228caef1faSMartin Blumenstingl	  This is a driver to retrieve specific values from the eFuse found on
2238caef1faSMartin Blumenstingl	  the Amlogic Meson6, Meson8 and Meson8b SoCs.
2248caef1faSMartin Blumenstingl
2258caef1faSMartin Blumenstingl	  This driver can also be built as a module. If so, the module
2268caef1faSMartin Blumenstingl	  will be called nvmem_meson_mx_efuse.
2278caef1faSMartin Blumenstingl
228988437aeSOleksij Rempelconfig NVMEM_SNVS_LPGPR
229988437aeSOleksij Rempel	tristate "Support for Low Power General Purpose Register"
2302d1c1939SFabio Estevam	depends on ARCH_MXC || COMPILE_TEST
231988437aeSOleksij Rempel	help
232988437aeSOleksij Rempel	  This is a driver for Low Power General Purpose Register (LPGPR) available on
23380b820caSAndrey Yurovsky	  i.MX6 and i.MX7 SoCs in Secure Non-Volatile Storage (SNVS) of this chip.
234988437aeSOleksij Rempel
235988437aeSOleksij Rempel	  This driver can also be built as a module. If so, the module
236988437aeSOleksij Rempel	  will be called nvmem-snvs-lpgpr.
237988437aeSOleksij Rempel
2383b51f47bSAndrey Smirnovconfig RAVE_SP_EEPROM
2393b51f47bSAndrey Smirnov	tristate "Rave SP EEPROM Support"
2403b51f47bSAndrey Smirnov	depends on RAVE_SP_CORE
2413b51f47bSAndrey Smirnov	help
2423b51f47bSAndrey Smirnov	  Say y here to enable Rave SP EEPROM support.
2433b51f47bSAndrey Smirnov
24419c54468SFreeman Liuconfig SC27XX_EFUSE
24519c54468SFreeman Liu	tristate "Spreadtrum SC27XX eFuse Support"
24619c54468SFreeman Liu	depends on MFD_SC27XX_PMIC || COMPILE_TEST
24719c54468SFreeman Liu	depends on HAS_IOMEM
24819c54468SFreeman Liu	help
24919c54468SFreeman Liu	  This is a simple driver to dump specified values of Spreadtrum
25019c54468SFreeman Liu	  SC27XX PMICs from eFuse.
25119c54468SFreeman Liu
25219c54468SFreeman Liu	  This driver can also be built as a module. If so, the module
25319c54468SFreeman Liu	  will be called nvmem-sc27xx-efuse.
25419c54468SFreeman Liu
2554640fa18SNava kishore Manneconfig NVMEM_ZYNQMP
2564640fa18SNava kishore Manne	bool "Xilinx ZYNQMP SoC nvmem firmware support"
2574640fa18SNava kishore Manne	depends on ARCH_ZYNQMP
2584640fa18SNava kishore Manne	help
2594640fa18SNava kishore Manne	  This is a driver to access hardware related data like
2604640fa18SNava kishore Manne	  soc revision, IDCODE... etc by using the firmware
2614640fa18SNava kishore Manne	  interface.
2624640fa18SNava kishore Manne
2634640fa18SNava kishore Manne	  If sure, say yes. If unsure, say no.
2644640fa18SNava kishore Manne
265096030e7SFreeman Liuconfig SPRD_EFUSE
266096030e7SFreeman Liu	tristate "Spreadtrum SoC eFuse Support"
267096030e7SFreeman Liu	depends on ARCH_SPRD || COMPILE_TEST
268096030e7SFreeman Liu	depends on HAS_IOMEM
269096030e7SFreeman Liu	help
270096030e7SFreeman Liu	  This is a simple driver to dump specified values of Spreadtrum
271096030e7SFreeman Liu	  SoCs from eFuse.
272096030e7SFreeman Liu
273096030e7SFreeman Liu	  This driver can also be built as a module. If so, the module
274096030e7SFreeman Liu	  will be called nvmem-sprd-efuse.
275096030e7SFreeman Liu
2764ab11996SSrinivas Kandagatlaendif
277