[nvs] Add init function for Atmel 93C66 EEPROM
authorJoshua Oreman <oremanj@xenon.get-linux.org>
Tue, 2 Jun 2009 01:36:25 +0000 (18:36 -0700)
committerJoshua Oreman <oremanj@xenon.get-linux.org>
Mon, 15 Jun 2009 18:22:31 +0000 (11:22 -0700)
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.

src/include/gpxe/threewire.h

index 2db6726..e23284a 100644 (file)
@@ -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 */