From 743ebc2f4b056673efb26f294ab39a661d77d1a8 Mon Sep 17 00:00:00 2001 From: Joshua Oreman Date: Mon, 1 Jun 2009 18:36:25 -0700 Subject: [nvs] Add init function for Atmel 93C66 EEPROM The 93C66 is identical to the 93C56 in programming interface and addressing, but twice as large in data storage (4096 bits). It's used in some RTL8185 wireless cards. Signed-off-by: Michael Brown --- src/include/gpxe/threewire.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/include/gpxe/threewire.h b/src/include/gpxe/threewire.h index 2db67260..e23284af 100644 --- a/src/include/gpxe/threewire.h +++ b/src/include/gpxe/threewire.h @@ -87,6 +87,19 @@ init_at93c56 ( struct spi_device *device, unsigned int organisation ) { init_at93cx6 ( device, organisation ); } +/** + * Initialise Atmel AT93C66 serial EEPROM + * + * @v device SPI device + * @v organisation Word organisation (8 or 16) + */ +static inline __attribute__ (( always_inline )) void +init_at93c66 ( struct spi_device *device, unsigned int organisation ) { + device->nvs.size = ( 4096 / organisation ); + device->address_len = ( ( organisation == 8 ) ? 9 : 8 ); + init_at93cx6 ( device, organisation ); +} + /** @} */ #endif /* _GPXE_THREEWIRE_H */ -- cgit v1.2.3-55-g7522