162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_cimenu "EEPROM support"
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciconfig EEPROM_AT24
562306a36Sopenharmony_ci	tristate "I2C EEPROMs / RAMs / ROMs from most vendors"
662306a36Sopenharmony_ci	depends on I2C && SYSFS
762306a36Sopenharmony_ci	select NVMEM
862306a36Sopenharmony_ci	select NVMEM_SYSFS
962306a36Sopenharmony_ci	select REGMAP
1062306a36Sopenharmony_ci	select REGMAP_I2C
1162306a36Sopenharmony_ci	help
1262306a36Sopenharmony_ci	  Enable this driver to get read/write support to most I2C EEPROMs
1362306a36Sopenharmony_ci	  and compatible devices like FRAMs, SRAMs, ROMs etc. After you
1462306a36Sopenharmony_ci	  configure the driver to know about each chip on your target
1562306a36Sopenharmony_ci	  board.  Use these generic chip names, instead of vendor-specific
1662306a36Sopenharmony_ci	  ones like at24c64, 24lc02 or fm24c04:
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	     24c00, 24c01, 24c02, spd (readonly 24c02), 24c04, 24c08,
1962306a36Sopenharmony_ci	     24c16, 24c32, 24c64, 24c128, 24c256, 24c512, 24c1024, 24c2048
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci	  Unless you like data loss puzzles, always be sure that any chip
2262306a36Sopenharmony_ci	  you configure as a 24c32 (32 kbit) or larger is NOT really a
2362306a36Sopenharmony_ci	  24c16 (16 kbit) or smaller, and vice versa. Marking the chip
2462306a36Sopenharmony_ci	  as read-only won't help recover from this. Also, if your chip
2562306a36Sopenharmony_ci	  has any software write-protect mechanism you may want to review the
2662306a36Sopenharmony_ci	  code to make sure this driver won't turn it on by accident.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci	  If you use this with an SMBus adapter instead of an I2C adapter,
2962306a36Sopenharmony_ci	  full functionality is not available.  Only smaller devices are
3062306a36Sopenharmony_ci	  supported (24c16 and below, max 4 kByte).
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
3362306a36Sopenharmony_ci	  will be called at24.
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciconfig EEPROM_AT25
3662306a36Sopenharmony_ci	tristate "SPI EEPROMs (FRAMs) from most vendors"
3762306a36Sopenharmony_ci	depends on SPI && SYSFS
3862306a36Sopenharmony_ci	select NVMEM
3962306a36Sopenharmony_ci	select NVMEM_SYSFS
4062306a36Sopenharmony_ci	help
4162306a36Sopenharmony_ci	  Enable this driver to get read/write support to most SPI EEPROMs
4262306a36Sopenharmony_ci	  and Cypress FRAMs,
4362306a36Sopenharmony_ci	  after you configure the board init code to know about each eeprom
4462306a36Sopenharmony_ci	  on your target board.
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
4762306a36Sopenharmony_ci	  will be called at25.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciconfig EEPROM_LEGACY
5062306a36Sopenharmony_ci	tristate "Old I2C EEPROM reader (DEPRECATED)"
5162306a36Sopenharmony_ci	depends on I2C && SYSFS
5262306a36Sopenharmony_ci	help
5362306a36Sopenharmony_ci	  If you say yes here you get read-only access to the EEPROM data
5462306a36Sopenharmony_ci	  available on modern memory DIMMs and Sony Vaio laptops via I2C. Such
5562306a36Sopenharmony_ci	  EEPROMs could theoretically be available on other devices as well.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci	  This driver is deprecated and will be removed soon, please use the
5862306a36Sopenharmony_ci	  better at24 driver instead.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
6162306a36Sopenharmony_ci	  will be called eeprom.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciconfig EEPROM_MAX6875
6462306a36Sopenharmony_ci	tristate "Maxim MAX6874/5 power supply supervisor"
6562306a36Sopenharmony_ci	depends on I2C
6662306a36Sopenharmony_ci	help
6762306a36Sopenharmony_ci	  If you say yes here you get read-only support for the user EEPROM of
6862306a36Sopenharmony_ci	  the Maxim MAX6874/5 EEPROM-programmable, quad power-supply
6962306a36Sopenharmony_ci	  sequencer/supervisor.
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci	  All other features of this chip should be accessed via i2c-dev.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
7462306a36Sopenharmony_ci	  will be called max6875.
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ciconfig EEPROM_93CX6
7862306a36Sopenharmony_ci	tristate "EEPROM 93CX6 support"
7962306a36Sopenharmony_ci	help
8062306a36Sopenharmony_ci	  This is a driver for the EEPROM chipsets 93c46 and 93c66.
8162306a36Sopenharmony_ci	  The driver supports both read as well as write commands.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci	  If unsure, say N.
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ciconfig EEPROM_93XX46
8662306a36Sopenharmony_ci	tristate "Microwire EEPROM 93XX46 support"
8762306a36Sopenharmony_ci	depends on SPI && SYSFS
8862306a36Sopenharmony_ci	select REGMAP
8962306a36Sopenharmony_ci	select NVMEM
9062306a36Sopenharmony_ci	select NVMEM_SYSFS
9162306a36Sopenharmony_ci	help
9262306a36Sopenharmony_ci	  Driver for the microwire EEPROM chipsets 93xx46x. The driver
9362306a36Sopenharmony_ci	  supports both read and write commands and also the command to
9462306a36Sopenharmony_ci	  erase the whole EEPROM.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
9762306a36Sopenharmony_ci	  will be called eeprom_93xx46.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	  If unsure, say N.
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ciconfig EEPROM_DIGSY_MTC_CFG
10262306a36Sopenharmony_ci	bool "DigsyMTC display configuration EEPROMs device"
10362306a36Sopenharmony_ci	depends on GPIO_MPC5200 && SPI_GPIO
10462306a36Sopenharmony_ci	help
10562306a36Sopenharmony_ci	  This option enables access to display configuration EEPROMs
10662306a36Sopenharmony_ci	  on digsy_mtc board. You have to additionally select Microwire
10762306a36Sopenharmony_ci	  EEPROM 93XX46 driver. sysfs entries will be created for that
10862306a36Sopenharmony_ci	  EEPROM allowing to read/write the configuration data or to
10962306a36Sopenharmony_ci	  erase the whole EEPROM.
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci	  If unsure, say N.
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciconfig EEPROM_IDT_89HPESX
11462306a36Sopenharmony_ci	tristate "IDT 89HPESx PCIe-swtiches EEPROM / CSR support"
11562306a36Sopenharmony_ci	depends on I2C && SYSFS
11662306a36Sopenharmony_ci	help
11762306a36Sopenharmony_ci	  Enable this driver to get read/write access to EEPROM / CSRs
11862306a36Sopenharmony_ci	  over IDT PCIe-swtich i2c-slave interface.
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module
12162306a36Sopenharmony_ci	  will be called idt_89hpesx.
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ciconfig EEPROM_EE1004
12462306a36Sopenharmony_ci	tristate "SPD EEPROMs on DDR4 memory modules"
12562306a36Sopenharmony_ci	depends on I2C && SYSFS
12662306a36Sopenharmony_ci	help
12762306a36Sopenharmony_ci	  Enable this driver to get read support to SPD EEPROMs following
12862306a36Sopenharmony_ci	  the JEDEC EE1004 standard. These are typically found on DDR4
12962306a36Sopenharmony_ci	  SDRAM memory modules.
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
13262306a36Sopenharmony_ci	  will be called ee1004.
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ciendmenu
135