Some times ago the eeprom and max6875 drivers moved to drivers/misc/eeprom, but their documentation did not follow. It's finally time to get rid of Documentation/i2c/chips. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Ben Gardner <gardner.ben@gmail.com> Acked-by: Wolfram Sang <w.sang@pengutronix.de>
		
			
				
	
	
		
			96 lines
		
	
	
	
		
			4.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			4.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
Kernel driver eeprom
 | 
						|
====================
 | 
						|
 | 
						|
Supported chips:
 | 
						|
  * Any EEPROM chip in the designated address range
 | 
						|
    Prefix: 'eeprom'
 | 
						|
    Addresses scanned: I2C 0x50 - 0x57
 | 
						|
    Datasheets: Publicly available from:
 | 
						|
                Atmel (www.atmel.com),
 | 
						|
                Catalyst (www.catsemi.com),
 | 
						|
                Fairchild (www.fairchildsemi.com),
 | 
						|
                Microchip (www.microchip.com),
 | 
						|
                Philips (www.semiconductor.philips.com),
 | 
						|
                Rohm (www.rohm.com),
 | 
						|
                ST (www.st.com),
 | 
						|
                Xicor (www.xicor.com),
 | 
						|
                and others.
 | 
						|
 | 
						|
        Chip     Size (bits)    Address
 | 
						|
        24C01     1K            0x50 (shadows at 0x51 - 0x57)
 | 
						|
        24C01A    1K            0x50 - 0x57 (Typical device on DIMMs)
 | 
						|
        24C02     2K            0x50 - 0x57
 | 
						|
        24C04     4K            0x50, 0x52, 0x54, 0x56
 | 
						|
                                (additional data at 0x51, 0x53, 0x55, 0x57)
 | 
						|
        24C08     8K            0x50, 0x54 (additional data at 0x51, 0x52,
 | 
						|
                                0x53, 0x55, 0x56, 0x57)
 | 
						|
        24C16    16K            0x50 (additional data at 0x51 - 0x57)
 | 
						|
        Sony      2K            0x57
 | 
						|
 | 
						|
        Atmel     34C02B  2K    0x50 - 0x57, SW write protect at 0x30-37
 | 
						|
        Catalyst  34FC02  2K    0x50 - 0x57, SW write protect at 0x30-37
 | 
						|
        Catalyst  34RC02  2K    0x50 - 0x57, SW write protect at 0x30-37
 | 
						|
        Fairchild 34W02   2K    0x50 - 0x57, SW write protect at 0x30-37
 | 
						|
        Microchip 24AA52  2K    0x50 - 0x57, SW write protect at 0x30-37
 | 
						|
        ST        M34C02  2K    0x50 - 0x57, SW write protect at 0x30-37
 | 
						|
 | 
						|
 | 
						|
Authors:
 | 
						|
        Frodo Looijaard <frodol@dds.nl>,
 | 
						|
        Philip Edelbrock <phil@netroedge.com>,
 | 
						|
        Jean Delvare <khali@linux-fr.org>,
 | 
						|
        Greg Kroah-Hartman <greg@kroah.com>,
 | 
						|
        IBM Corp.
 | 
						|
 | 
						|
Description
 | 
						|
-----------
 | 
						|
 | 
						|
This is a simple EEPROM module meant to enable reading the first 256 bytes
 | 
						|
of an EEPROM (on a SDRAM DIMM for example). However, it will access serial
 | 
						|
EEPROMs on any I2C adapter. The supported devices are generically called
 | 
						|
24Cxx, and are listed above; however the numbering for these
 | 
						|
industry-standard devices may vary by manufacturer.
 | 
						|
 | 
						|
This module was a programming exercise to get used to the new project
 | 
						|
organization laid out by Frodo, but it should be at least completely
 | 
						|
effective for decoding the contents of EEPROMs on DIMMs.
 | 
						|
 | 
						|
DIMMS will typically contain a 24C01A or 24C02, or the 34C02 variants.
 | 
						|
The other devices will not be found on a DIMM because they respond to more
 | 
						|
than one address.
 | 
						|
 | 
						|
DDC Monitors may contain any device. Often a 24C01, which responds to all 8
 | 
						|
addresses, is found.
 | 
						|
 | 
						|
Recent Sony Vaio laptops have an EEPROM at 0x57. We couldn't get the
 | 
						|
specification, so it is guess work and far from being complete.
 | 
						|
 | 
						|
The Microchip 24AA52/24LCS52, ST M34C02, and others support an additional
 | 
						|
software write protect register at 0x30 - 0x37 (0x20 less than the memory
 | 
						|
location). The chip responds to "write quick" detection at this address but
 | 
						|
does not respond to byte reads. If this register is present, the lower 128
 | 
						|
bytes of the memory array are not write protected. Any byte data write to
 | 
						|
this address will write protect the memory array permanently, and the
 | 
						|
device will no longer respond at the 0x30-37 address. The eeprom driver
 | 
						|
does not support this register.
 | 
						|
 | 
						|
Lacking functionality:
 | 
						|
 | 
						|
* Full support for larger devices (24C04, 24C08, 24C16). These are not
 | 
						|
typically found on a PC. These devices will appear as separate devices at
 | 
						|
multiple addresses.
 | 
						|
 | 
						|
* Support for really large devices (24C32, 24C64, 24C128, 24C256, 24C512).
 | 
						|
These devices require two-byte address fields and are not supported.
 | 
						|
 | 
						|
* Enable Writing. Again, no technical reason why not, but making it easy
 | 
						|
to change the contents of the EEPROMs (on DIMMs anyway) also makes it easy
 | 
						|
to disable the DIMMs (potentially preventing the computer from booting)
 | 
						|
until the values are restored somehow.
 | 
						|
 | 
						|
Use:
 | 
						|
 | 
						|
After inserting the module (and any other required SMBus/i2c modules), you
 | 
						|
should have some EEPROM directories in /sys/bus/i2c/devices/* of names such
 | 
						|
as "0-0050". Inside each of these is a series of files, the eeprom file
 | 
						|
contains the binary data from EEPROM.
 |