diff options
Diffstat (limited to 'packages/i2c/files/i2c.h')
-rw-r--r-- | packages/i2c/files/i2c.h | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/packages/i2c/files/i2c.h b/packages/i2c/files/i2c.h deleted file mode 100644 index bbfd276cec..0000000000 --- a/packages/i2c/files/i2c.h +++ /dev/null @@ -1,135 +0,0 @@ -/**************************************************************************** -* -* Copyright (c) 2006 Dave Hylands <dhylands@gmail.com> -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -* -* Alternatively, this software may be distributed under the terms of BSD -* license. -* -* See README and COPYING for more details. -* -****************************************************************************/ -/** -* -* @file i2c.h -* -* @brief Global definitions for interfacing with the AVR TWI (aka I2C) -* hardware -* -****************************************************************************/ -/** -* @defgroup xxx Readable version of xxx. -* -* @brief Brief description of what xxx does. -* -* Longer description of what xxx does. -* -****************************************************************************/ - -#if !defined( I2C_H ) -#define I2C_H /**< Include Guard */ - -/* ---- Include Files ---------------------------------------------------- */ - -#include <inttypes.h> - -#if !defined( CONFIG_H ) -# include "Config.h" -#endif - - -/** - * @addtogroup I2C - * @{ - */ - -/* ---- Constants and Types ---------------------------------------------- */ - -/** - * Error Codes - */ - -#define I2C_ERROR_NONE 0 // No Error -#define I2C_ERROR_ADDR_NACK -1 // No response to SLA+R/W -#define I2C_ERROR_DATA_NACK -2 // NACK during data transmission -#define I2C_ERROR_ARBITRATION_LOST -3 // Lost arbitration -#define I2C_ERROR_BAD_LEN -4 // Length is wonky -#define I2C_ERROR_BAD_CRC -5 // CRC failed -#define I2C_ERROR_BUS_ERROR -6 // Someting weird on the i2c bus - -typedef int8_t I2C_Error_t; - -/** - * Since we're loosely following the SMBus spec, we restrict the amount - * of data in each transaction to 32 bytes. - */ - -#define I2C_MAX_DATA_LEN 32 - -/** - * I2C_Addr_t can contain the address of any device on the bus. This - * module only supports 7 bit addressing. - */ - -typedef uint8_t I2C_Addr_t; - -/** - * The I2C_CRC macro can be used to remove all CRC support at compile time. - */ - -#if CFG_I2C_USE_CRC -# define I2C_CRC(x) x -#else - -# define I2C_CRC(x) -#endif - - -/** - * I2C_Data_t encapsulates the data being read or written on the i2c bus. - * This module follows the SMBus spec, whihch specifies a maximum payload - * of 32 bytes. - */ - -typedef struct -{ -#if CFG_I2C_USE_CRC - uint8_t m_crc; -#endif - - - // For reads, m_len is the number of bytes actually read (doesn't include - // the CRC - if present). If a block transfer was performed which has a - // length byte, this length will include the length byte. - - uint8_t m_len; - - // Note: Under SMBus, a block write can consist of a command, a length, - // 32 bytes of payload, and a CRC. - // - // A read response can consist of a length, 32 bytes of data, and a CRC. - - uint8_t m_data[ I2C_MAX_DATA_LEN + 2]; // +1 for the command, +1 for length - -} I2C_Data_t; - -/* ---- Variable Externs ------------------------------------------------- */ - -/** - * Description of variable. - */ - -/* ---- Function Prototypes ---------------------------------------------- */ - -/* - * Just include prototypes here. Put full descriptions in the .c files. - */ - -/** @} */ - -#endif /* I2C_H */ - - |