1 /******************************************************************* 2 * 3 * Copyright (c) 2007 by Silicon Motion, Inc. (SMI) 4 * 5 * All rights are reserved. Reproduction or in part is prohibited 6 * without the written consent of the copyright owner. 7 * 8 * swi2c.h --- SM750/SM718 DDK 9 * This file contains the definitions for i2c using software 10 * implementation. 11 * 12 *******************************************************************/ 13 #ifndef _SWI2C_H_ 14 #define _SWI2C_H_ 15 16 /* Default i2c CLK and Data GPIO. These are the default i2c pins */ 17 #define DEFAULT_I2C_SCL 30 18 #define DEFAULT_I2C_SDA 31 19 20 /* 21 * This function initializes the i2c attributes and bus 22 * 23 * Parameters: 24 * i2cClkGPIO - The GPIO pin to be used as i2c SCL 25 * i2cDataGPIO - The GPIO pin to be used as i2c SDA 26 * 27 * Return Value: 28 * -1 - Fail to initialize the i2c 29 * 0 - Success 30 */ 31 long swI2CInit( 32 unsigned char i2cClkGPIO, 33 unsigned char i2cDataGPIO 34 ); 35 36 /* 37 * This function reads the slave device's register 38 * 39 * Parameters: 40 * deviceAddress - i2c Slave device address which register 41 * to be read from 42 * registerIndex - Slave device's register to be read 43 * 44 * Return Value: 45 * Register value 46 */ 47 unsigned char swI2CReadReg( 48 unsigned char deviceAddress, 49 unsigned char registerIndex 50 ); 51 52 /* 53 * This function writes a value to the slave device's register 54 * 55 * Parameters: 56 * deviceAddress - i2c Slave device address which register 57 * to be written 58 * registerIndex - Slave device's register to be written 59 * data - Data to be written to the register 60 * 61 * Result: 62 * 0 - Success 63 * -1 - Fail 64 */ 65 long swI2CWriteReg( 66 unsigned char deviceAddress, 67 unsigned char registerIndex, 68 unsigned char data 69 ); 70 71 /* 72 * These two functions are used to toggle the data on the SCL and SDA I2C lines. 73 * The used of these two functions are not recommended unless it is necessary. 74 */ 75 76 /* 77 * This function set/reset the SCL GPIO pin 78 * 79 * Parameters: 80 * value - Bit value to set to the SCL or SDA (0 = low, 1 = high) 81 */ 82 void swI2CSCL(unsigned char value); 83 84 /* 85 * This function set/reset the SDA GPIO pin 86 * 87 * Parameters: 88 * value - Bit value to set to the SCL or SDA (0 = low, 1 = high) 89 */ 90 void swI2CSDA(unsigned char value); 91 92 #endif /* _SWI2C_H_ */ 93