1 /*
2  *         Copyright (c) 2007 by Silicon Motion, Inc. (SMI)
3  *
4  *  All rights are reserved. Reproduction or in part is prohibited
5  *  without the written consent of the copyright owner.
6  *
7  *  swi2c.h --- SM750/SM718 DDK
8  *  This file contains the definitions for i2c using software
9  *  implementation.
10  *
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 sm750_sw_i2c_init(
32 	unsigned char clk_gpio,
33 	unsigned char data_gpio
34 );
35 
36 /*
37  *  This function reads the slave device's register
38  *
39  *  Parameters:
40  *      addr   - i2c Slave device address which register
41  *                        to be read from
42  *      reg    - Slave device's register to be read
43  *
44  *  Return Value:
45  *      Register value
46  */
47 unsigned char sm750_sw_i2c_read_reg(
48 	unsigned char addr,
49 	unsigned char reg
50 );
51 
52 /*
53  *  This function writes a value to the slave device's register
54  *
55  *  Parameters:
56  *      addr            - i2c Slave device address which register
57  *                        to be written
58  *      reg             - 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 sm750_sw_i2c_write_reg(
66 	unsigned char addr,
67 	unsigned char reg,
68 	unsigned char data
69 );
70 
71 #endif  /* _SWI2C_H_ */
72