summaryrefslogtreecommitdiff
path: root/packages/i2c/files/i2c-api.h
diff options
context:
space:
mode:
Diffstat (limited to 'packages/i2c/files/i2c-api.h')
-rw-r--r--packages/i2c/files/i2c-api.h143
1 files changed, 143 insertions, 0 deletions
diff --git a/packages/i2c/files/i2c-api.h b/packages/i2c/files/i2c-api.h
new file mode 100644
index 0000000000..73f9f20990
--- /dev/null
+++ b/packages/i2c/files/i2c-api.h
@@ -0,0 +1,143 @@
+/****************************************************************************
+*
+* 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-api.h
+*
+* @brief This file contains definitions for performing i2c operations
+* on the gumstix.
+*
+****************************************************************************/
+
+#if !defined( I2C_API_H )
+#define I2C_API_H
+
+// ---- Include Files -------------------------------------------------------
+
+#include <inttypes.h>
+#include "i2c.h"
+
+// ---- Constants and Types -------------------------------------------------
+
+#define I2C_USE_CRC 1
+#define I2C_NO_CRC 0
+
+// ---- Variable Externs ----------------------------------------------------
+
+// ---- Function Prototypes -------------------------------------------------
+
+void I2cSetSlaveAddress
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ I2C_Addr_t i2cAddr, ///< 7 bit i2c address to use
+ int useCrc ); ///< Should CRC's be used?
+
+int I2cTransfer
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t cmd, ///< Command to send
+ const void *wrData, ///< Data to write
+ uint8_t wrLen, ///< Number of bytes to write (or in 0x80 for a block write)
+ void *rdData, ///< Place to store data read
+ uint8_t rdLen, ///< Number of bytes to read (or in 0x80 for a block read)
+ uint8_t *bytesReadp ///< Place to store number of bytes read
+);
+
+int I2cProcessBlock
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t cmd, ///< Command to send
+ const void *wrData, ///< Data to write
+ uint8_t wrLen, ///< Number of bytes to write
+ void *rdData, ///< Place to store data read
+ uint8_t rdLen, ///< Number of bytes to read
+ uint8_t *bytesReadp ///< Place to store number of bytes read
+);
+
+int I2cReadBlock
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t cmd, ///< Command to send
+ void *rdData, ///< Place to store data read
+ uint8_t rdLen, ///< Number of bytes to read
+ uint8_t *bytesReadp ///< Place to store number of bytes read
+);
+
+int I2cReadByte
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t cmd, ///< Command to send
+ uint8_t *rdByte ///< Place to store byte to read
+);
+
+int I2cReadBytes
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t cmd, ///< Command to send
+ void *rdByte, ///< Place to store bytes read
+ uint8_t rdLen ///< Number of bytes to read
+);
+
+int I2cWriteBlock
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t cmd, ///< Command to send
+ const void *wrData, ///< Data to write
+ uint8_t wrLen ///< Number of bytes to write
+);
+
+int I2cWriteByte
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t cmd, ///< Command to send
+ uint8_t wrByte ///< Byte to write
+);
+
+int I2cWriteBytes
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t cmd, ///< Command to send
+ const void *wrByte, ///< Bytes to write
+ uint8_t wrLen ///< Number of bytes to write
+);
+
+int I2cReceiveByte
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t *rdByte ///< Place to store byte read
+);
+
+int I2cReceiveBytes
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t *rdData, ///< Place to store byte read
+ uint8_t rdLen ///< Number of bytes to read
+);
+
+int I2cSendByte
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t wrByte ///< Byte to write
+);
+
+int I2cSendBytes
+(
+ int i2cDev, ///< Handle to i2c-dev file
+ uint8_t *wrData, ///< Pointer to data to write.
+ uint8_t wrLen ///< Number of bytes to write.
+);
+
+#endif // I2C_API_H
+