1f5016082SEric S. Stone /* 281dee67eSSudip Mukherjee * Copyright (c) 2007 by Silicon Motion, Inc. (SMI) 381dee67eSSudip Mukherjee * 481dee67eSSudip Mukherjee * All rights are reserved. Reproduction or in part is prohibited 581dee67eSSudip Mukherjee * without the written consent of the copyright owner. 681dee67eSSudip Mukherjee * 781dee67eSSudip Mukherjee * swi2c.h --- SM750/SM718 DDK 881dee67eSSudip Mukherjee * This file contains the definitions for i2c using software 981dee67eSSudip Mukherjee * implementation. 1081dee67eSSudip Mukherjee * 11f5016082SEric S. Stone */ 12f5016082SEric S. Stone 1381dee67eSSudip Mukherjee #ifndef _SWI2C_H_ 1481dee67eSSudip Mukherjee #define _SWI2C_H_ 1581dee67eSSudip Mukherjee 1681dee67eSSudip Mukherjee /* Default i2c CLK and Data GPIO. These are the default i2c pins */ 1781dee67eSSudip Mukherjee #define DEFAULT_I2C_SCL 30 1881dee67eSSudip Mukherjee #define DEFAULT_I2C_SDA 31 1981dee67eSSudip Mukherjee 2081dee67eSSudip Mukherjee /* 2181dee67eSSudip Mukherjee * This function initializes the i2c attributes and bus 2281dee67eSSudip Mukherjee * 2381dee67eSSudip Mukherjee * Parameters: 2481dee67eSSudip Mukherjee * i2cClkGPIO - The GPIO pin to be used as i2c SCL 2581dee67eSSudip Mukherjee * i2cDataGPIO - The GPIO pin to be used as i2c SDA 2681dee67eSSudip Mukherjee * 2781dee67eSSudip Mukherjee * Return Value: 2881dee67eSSudip Mukherjee * -1 - Fail to initialize the i2c 2981dee67eSSudip Mukherjee * 0 - Success 3081dee67eSSudip Mukherjee */ 31c9750456SMatej Dujava long sm750_sw_i2c_init(unsigned char clk_gpio, unsigned char data_gpio); 3281dee67eSSudip Mukherjee 3381dee67eSSudip Mukherjee /* 3481dee67eSSudip Mukherjee * This function reads the slave device's register 3581dee67eSSudip Mukherjee * 3681dee67eSSudip Mukherjee * Parameters: 37fe820044SMike Rapoport * addr - i2c Slave device address which register 3881dee67eSSudip Mukherjee * to be read from 39fe820044SMike Rapoport * reg - Slave device's register to be read 4081dee67eSSudip Mukherjee * 4181dee67eSSudip Mukherjee * Return Value: 4281dee67eSSudip Mukherjee * Register value 4381dee67eSSudip Mukherjee */ 44c9750456SMatej Dujava unsigned char sm750_sw_i2c_read_reg(unsigned char addr, unsigned char reg); 4581dee67eSSudip Mukherjee 4681dee67eSSudip Mukherjee /* 4781dee67eSSudip Mukherjee * This function writes a value to the slave device's register 4881dee67eSSudip Mukherjee * 4981dee67eSSudip Mukherjee * Parameters: 50fe820044SMike Rapoport * addr - i2c Slave device address which register 5181dee67eSSudip Mukherjee * to be written 52fe820044SMike Rapoport * reg - Slave device's register to be written 5381dee67eSSudip Mukherjee * data - Data to be written to the register 5481dee67eSSudip Mukherjee * 5581dee67eSSudip Mukherjee * Result: 5681dee67eSSudip Mukherjee * 0 - Success 5781dee67eSSudip Mukherjee * -1 - Fail 5881dee67eSSudip Mukherjee */ 59c9750456SMatej Dujava long sm750_sw_i2c_write_reg(unsigned char addr, 60fe820044SMike Rapoport unsigned char reg, 61c9750456SMatej Dujava unsigned char data); 6281dee67eSSudip Mukherjee 6381dee67eSSudip Mukherjee #endif /* _SWI2C_H_ */ 64