]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - drivers/staging/sm750fb/ddk750_swi2c.h
Merge tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git...
[mirror_ubuntu-artful-kernel.git] / drivers / staging / sm750fb / ddk750_swi2c.h
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_ */