blob: b53629cda0956c43fff775e07a08771f5b733a38 [file] [log] [blame]
Sudip Mukherjee81dee672015-03-03 16:21:06 +05301/*******************************************************************
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 */
Mike Rapoportf2ea7732015-09-12 11:07:38 +030031long sm750_sw_i2c_init(
Mike Rapoportfe820042015-09-12 11:07:47 +030032 unsigned char clk_gpio,
33 unsigned char data_gpio
Sudip Mukherjee81dee672015-03-03 16:21:06 +053034);
35
36/*
37 * This function reads the slave device's register
38 *
39 * Parameters:
Mike Rapoportfe820042015-09-12 11:07:47 +030040 * addr - i2c Slave device address which register
Sudip Mukherjee81dee672015-03-03 16:21:06 +053041 * to be read from
Mike Rapoportfe820042015-09-12 11:07:47 +030042 * reg - Slave device's register to be read
Sudip Mukherjee81dee672015-03-03 16:21:06 +053043 *
44 * Return Value:
45 * Register value
46 */
Mike Rapoport288836b2015-09-12 11:07:39 +030047unsigned char sm750_sw_i2c_read_reg(
Mike Rapoportfe820042015-09-12 11:07:47 +030048 unsigned char addr,
49 unsigned char reg
Sudip Mukherjee81dee672015-03-03 16:21:06 +053050);
51
52/*
53 * This function writes a value to the slave device's register
54 *
55 * Parameters:
Mike Rapoportfe820042015-09-12 11:07:47 +030056 * addr - i2c Slave device address which register
Sudip Mukherjee81dee672015-03-03 16:21:06 +053057 * to be written
Mike Rapoportfe820042015-09-12 11:07:47 +030058 * reg - Slave device's register to be written
Sudip Mukherjee81dee672015-03-03 16:21:06 +053059 * data - Data to be written to the register
60 *
61 * Result:
62 * 0 - Success
63 * -1 - Fail
64 */
Mike Rapoportd33b4202015-09-12 11:07:40 +030065long sm750_sw_i2c_write_reg(
Mike Rapoportfe820042015-09-12 11:07:47 +030066 unsigned char addr,
67 unsigned char reg,
Isaac Assegaibf36fa22015-06-18 21:48:50 -070068 unsigned char data
Sudip Mukherjee81dee672015-03-03 16:21:06 +053069);
70
Sudip Mukherjee81dee672015-03-03 16:21:06 +053071#endif /* _SWI2C_H_ */