summaryrefslogtreecommitdiff
path: root/gpxe/src/include/gpxe/i2c.h
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2016-02-09 18:08:47 -0800
committerH. Peter Anvin <hpa@zytor.com>2016-02-09 18:08:47 -0800
commitf2f897a1762fab84d2905f32b1c15dd7b42abb56 (patch)
treea38f51d3f1fcbf44afddb4736d549c12eaf491be /gpxe/src/include/gpxe/i2c.h
parent72d2959272b4616f17a97667e6dfa9d06bf109a3 (diff)
downloadsyslinux-f2f897a1762fab84d2905f32b1c15dd7b42abb56.tar.gz
gpxe: delete long since obsolete snapshot of gPXE
gPXE has been deprecated in favor of iPXE for many, many years now. It is much better than users get it directly from the iPXE project, since we should no longer need any special modifications for Syslinux use. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'gpxe/src/include/gpxe/i2c.h')
-rw-r--r--gpxe/src/include/gpxe/i2c.h171
1 files changed, 0 insertions, 171 deletions
diff --git a/gpxe/src/include/gpxe/i2c.h b/gpxe/src/include/gpxe/i2c.h
deleted file mode 100644
index 87b89d46..00000000
--- a/gpxe/src/include/gpxe/i2c.h
+++ /dev/null
@@ -1,171 +0,0 @@
-#ifndef _GPXE_I2C_H
-#define _GPXE_I2C_H
-
-/** @file
- *
- * I2C interface
- *
- */
-
-FILE_LICENCE ( GPL2_OR_LATER );
-
-#include <stdint.h>
-#include <gpxe/bitbash.h>
-
-/** An I2C device
- *
- * An I2C device represents a specific slave device on an I2C bus. It
- * is accessed via an I2C interface.
- */
-struct i2c_device {
- /** Address of this device
- *
- * The actual address sent on the bus will look like
- *
- * <start> <device address> <word address overflow> <r/w>
- *
- * The "word address overflow" is any excess bits from the
- * word address, i.e. any portion that does not fit within the
- * defined word address length.
- */
- unsigned int dev_addr;
- /** Device address length, in bytes
- *
- * This is the number of bytes that comprise the device
- * address, defined to be the portion that terminates with the
- * read/write bit.
- */
- unsigned int dev_addr_len;
- /** Word adddress length, in bytes
- *
- * This is the number of bytes that comprise the word address,
- * defined to be the portion that starts after the read/write
- * bit and ends before the first data byte.
- *
- * For some devices, this length will be zero (i.e. the word
- * address is contained entirely within the "word address
- * overflow").
- */
- unsigned int word_addr_len;
-};
-
-/** An I2C interface
- *
- * An I2C interface provides access to an I2C bus, via which I2C
- * devices may be reached.
- */
-struct i2c_interface {
- /**
- * Read data from I2C device
- *
- * @v i2c I2C interface
- * @v i2cdev I2C device
- * @v offset Starting offset within the device
- * @v data Data buffer
- * @v len Length of data buffer
- * @ret rc Return status code
- */
- int ( * read ) ( struct i2c_interface *i2c, struct i2c_device *i2cdev,
- unsigned int offset, uint8_t *data,
- unsigned int len );
- /**
- * Write data to I2C device
- *
- * @v i2c I2C interface
- * @v i2cdev I2C device
- * @v offset Starting offset within the device
- * @v data Data buffer
- * @v len Length of data buffer
- * @ret rc Return status code
- */
- int ( * write ) ( struct i2c_interface *i2c, struct i2c_device *i2cdev,
- unsigned int offset, const uint8_t *data,
- unsigned int len );
-};
-
-/** A bit-bashing I2C interface
- *
- * This provides a standardised way to construct I2C buses via a
- * bit-bashing interface.
- */
-struct i2c_bit_basher {
- /** I2C interface */
- struct i2c_interface i2c;
- /** Bit-bashing interface */
- struct bit_basher basher;
-};
-
-/** Ten-bit address marker
- *
- * This value is ORed with the I2C device address to indicate a
- * ten-bit address format on the bus.
- */
-#define I2C_TENBIT_ADDRESS 0x7800
-
-/** An I2C write command */
-#define I2C_WRITE 0
-
-/** An I2C read command */
-#define I2C_READ 1
-
-/** Bit indices used for I2C bit-bashing interface */
-enum {
- /** Serial clock */
- I2C_BIT_SCL = 0,
- /** Serial data */
- I2C_BIT_SDA,
-};
-
-/** Delay required for bit-bashing operation */
-#define I2C_UDELAY 5
-
-/** Maximum number of cycles to use when attempting a bus reset */
-#define I2C_RESET_MAX_CYCLES 32
-
-/**
- * Check presence of I2C device
- *
- * @v i2c I2C interface
- * @v i2cdev I2C device
- * @ret rc Return status code
- *
- * Checks for the presence of the device on the I2C bus by attempting
- * a zero-length write.
- */
-static inline int i2c_check_presence ( struct i2c_interface *i2c,
- struct i2c_device *i2cdev ) {
- return i2c->write ( i2c, i2cdev, 0, NULL, 0 );
-}
-
-extern int init_i2c_bit_basher ( struct i2c_bit_basher *i2cbit,
- struct bit_basher_operations *bash_op );
-
-/**
- * Initialise generic I2C EEPROM device
- *
- * @v i2cdev I2C device
- */
-static inline __always_inline void
-init_i2c_eeprom ( struct i2c_device *i2cdev, unsigned int dev_addr ) {
- i2cdev->dev_addr = dev_addr;
- i2cdev->dev_addr_len = 1;
- i2cdev->word_addr_len = 1;
-}
-
-/**
- * Initialise Atmel AT24C11
- *
- * @v i2cdev I2C device
- */
-static inline __always_inline void
-init_at24c11 ( struct i2c_device *i2cdev ) {
- /* This chip has no device address; it must be the only chip
- * on the bus. The word address is contained entirely within
- * the device address field.
- */
- i2cdev->dev_addr = 0;
- i2cdev->dev_addr_len = 1;
- i2cdev->word_addr_len = 0;
-}
-
-#endif /* _GPXE_I2C_H */