125338628SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2f5016082SEric S. Stone /* 381dee67eSSudip Mukherjee * Copyright (c) 2007 by Silicon Motion, Inc. (SMI) 481dee67eSSudip Mukherjee * 581dee67eSSudip Mukherjee * swi2c.h --- SM750/SM718 DDK 681dee67eSSudip Mukherjee * This file contains the definitions for i2c using software 781dee67eSSudip Mukherjee * implementation. 881dee67eSSudip Mukherjee * 9f5016082SEric S. Stone */ 10f5016082SEric S. Stone 1181dee67eSSudip Mukherjee #ifndef _SWI2C_H_ 1281dee67eSSudip Mukherjee #define _SWI2C_H_ 1381dee67eSSudip Mukherjee 1481dee67eSSudip Mukherjee /* Default i2c CLK and Data GPIO. These are the default i2c pins */ 1581dee67eSSudip Mukherjee #define DEFAULT_I2C_SCL 30 1681dee67eSSudip Mukherjee #define DEFAULT_I2C_SDA 31 1781dee67eSSudip Mukherjee 1881dee67eSSudip Mukherjee /* 1981dee67eSSudip Mukherjee * This function initializes the i2c attributes and bus 2081dee67eSSudip Mukherjee * 2181dee67eSSudip Mukherjee * Parameters: 2281dee67eSSudip Mukherjee * i2cClkGPIO - The GPIO pin to be used as i2c SCL 2381dee67eSSudip Mukherjee * i2cDataGPIO - The GPIO pin to be used as i2c SDA 2481dee67eSSudip Mukherjee * 2581dee67eSSudip Mukherjee * Return Value: 2681dee67eSSudip Mukherjee * -1 - Fail to initialize the i2c 2781dee67eSSudip Mukherjee * 0 - Success 2881dee67eSSudip Mukherjee */ 29c9750456SMatej Dujava long sm750_sw_i2c_init(unsigned char clk_gpio, unsigned char data_gpio); 3081dee67eSSudip Mukherjee 3181dee67eSSudip Mukherjee /* 3281dee67eSSudip Mukherjee * This function reads the slave device's register 3381dee67eSSudip Mukherjee * 3481dee67eSSudip Mukherjee * Parameters: 35fe820044SMike Rapoport * addr - i2c Slave device address which register 3681dee67eSSudip Mukherjee * to be read from 37fe820044SMike Rapoport * reg - Slave device's register to be read 3881dee67eSSudip Mukherjee * 3981dee67eSSudip Mukherjee * Return Value: 4081dee67eSSudip Mukherjee * Register value 4181dee67eSSudip Mukherjee */ 42c9750456SMatej Dujava unsigned char sm750_sw_i2c_read_reg(unsigned char addr, unsigned char reg); 4381dee67eSSudip Mukherjee 4481dee67eSSudip Mukherjee /* 4581dee67eSSudip Mukherjee * This function writes a value to the slave device's register 4681dee67eSSudip Mukherjee * 4781dee67eSSudip Mukherjee * Parameters: 48fe820044SMike Rapoport * addr - i2c Slave device address which register 4981dee67eSSudip Mukherjee * to be written 50fe820044SMike Rapoport * reg - Slave device's register to be written 5181dee67eSSudip Mukherjee * data - Data to be written to the register 5281dee67eSSudip Mukherjee * 5381dee67eSSudip Mukherjee * Result: 5481dee67eSSudip Mukherjee * 0 - Success 5581dee67eSSudip Mukherjee * -1 - Fail 5681dee67eSSudip Mukherjee */ 57c9750456SMatej Dujava long sm750_sw_i2c_write_reg(unsigned char addr, 58fe820044SMike Rapoport unsigned char reg, 59c9750456SMatej Dujava unsigned char data); 6081dee67eSSudip Mukherjee 6181dee67eSSudip Mukherjee #endif /* _SWI2C_H_ */ 62