/**************************************************************************** * * Copyright (c) 2006 Dave Hylands * * 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 #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