| David Brownell | b587b13 | 2007-02-12 00:52:48 -0800 | [diff] [blame] | 1 | #ifndef __LINUX_SPI_EEPROM_H | 
|  | 2 | #define __LINUX_SPI_EEPROM_H | 
|  | 3 |  | 
| David Brownell | 14dd1ff | 2009-04-02 16:56:58 -0700 | [diff] [blame] | 4 | #include <linux/memory.h> | 
|  | 5 |  | 
| David Brownell | b587b13 | 2007-02-12 00:52:48 -0800 | [diff] [blame] | 6 | /* | 
|  | 7 | * Put one of these structures in platform_data for SPI EEPROMS handled | 
|  | 8 | * by the "at25" driver.  On SPI, most EEPROMS understand the same core | 
|  | 9 | * command set.  If you need to support EEPROMs that don't yet fit, add | 
|  | 10 | * flags to support those protocol options.  These values all come from | 
|  | 11 | * the chip datasheets. | 
|  | 12 | */ | 
|  | 13 | struct spi_eeprom { | 
|  | 14 | u32		byte_len; | 
|  | 15 | char		name[10]; | 
|  | 16 | u16		page_size;		/* for writes */ | 
|  | 17 | u16		flags; | 
|  | 18 | #define	EE_ADDR1	0x0001			/*  8 bit addrs */ | 
|  | 19 | #define	EE_ADDR2	0x0002			/* 16 bit addrs */ | 
|  | 20 | #define	EE_ADDR3	0x0004			/* 24 bit addrs */ | 
|  | 21 | #define	EE_READONLY	0x0008			/* disallow writes */ | 
| David Brownell | 14dd1ff | 2009-04-02 16:56:58 -0700 | [diff] [blame] | 22 |  | 
|  | 23 | /* for exporting this chip's data to other kernel code */ | 
|  | 24 | void (*setup)(struct memory_accessor *mem, void *context); | 
|  | 25 | void *context; | 
| David Brownell | b587b13 | 2007-02-12 00:52:48 -0800 | [diff] [blame] | 26 | }; | 
|  | 27 |  | 
|  | 28 | #endif /* __LINUX_SPI_EEPROM_H */ |