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 * All rights are reserved. Reproduction or in part is prohibited 681dee67eSSudip Mukherjee * without the written consent of the copyright owner. 781dee67eSSudip Mukherjee * 881dee67eSSudip Mukherjee * swi2c.h --- SM750/SM718 DDK 981dee67eSSudip Mukherjee * This file contains the definitions for i2c using software 1081dee67eSSudip Mukherjee * implementation. 1181dee67eSSudip Mukherjee * 12f5016082SEric S. Stone */ 13f5016082SEric S. Stone 1481dee67eSSudip Mukherjee #ifndef _SWI2C_H_ 1581dee67eSSudip Mukherjee #define _SWI2C_H_ 1681dee67eSSudip Mukherjee 1781dee67eSSudip Mukherjee /* Default i2c CLK and Data GPIO. These are the default i2c pins */ 1881dee67eSSudip Mukherjee #define DEFAULT_I2C_SCL 30 1981dee67eSSudip Mukherjee #define DEFAULT_I2C_SDA 31 2081dee67eSSudip Mukherjee 2181dee67eSSudip Mukherjee /* 2281dee67eSSudip Mukherjee * This function initializes the i2c attributes and bus 2381dee67eSSudip Mukherjee * 2481dee67eSSudip Mukherjee * Parameters: 2581dee67eSSudip Mukherjee * i2cClkGPIO - The GPIO pin to be used as i2c SCL 2681dee67eSSudip Mukherjee * i2cDataGPIO - The GPIO pin to be used as i2c SDA 2781dee67eSSudip Mukherjee * 2881dee67eSSudip Mukherjee * Return Value: 2981dee67eSSudip Mukherjee * -1 - Fail to initialize the i2c 3081dee67eSSudip Mukherjee * 0 - Success 3181dee67eSSudip Mukherjee */ 32c9750456SMatej Dujava long sm750_sw_i2c_init(unsigned char clk_gpio, unsigned char data_gpio); 3381dee67eSSudip Mukherjee 3481dee67eSSudip Mukherjee /* 3581dee67eSSudip Mukherjee * This function reads the slave device's register 3681dee67eSSudip Mukherjee * 3781dee67eSSudip Mukherjee * Parameters: 38fe820044SMike Rapoport * addr - i2c Slave device address which register 3981dee67eSSudip Mukherjee * to be read from 40fe820044SMike Rapoport * reg - Slave device's register to be read 4181dee67eSSudip Mukherjee * 4281dee67eSSudip Mukherjee * Return Value: 4381dee67eSSudip Mukherjee * Register value 4481dee67eSSudip Mukherjee */ 45c9750456SMatej Dujava unsigned char sm750_sw_i2c_read_reg(unsigned char addr, unsigned char reg); 4681dee67eSSudip Mukherjee 4781dee67eSSudip Mukherjee /* 4881dee67eSSudip Mukherjee * This function writes a value to the slave device's register 4981dee67eSSudip Mukherjee * 5081dee67eSSudip Mukherjee * Parameters: 51fe820044SMike Rapoport * addr - i2c Slave device address which register 5281dee67eSSudip Mukherjee * to be written 53fe820044SMike Rapoport * reg - Slave device's register to be written 5481dee67eSSudip Mukherjee * data - Data to be written to the register 5581dee67eSSudip Mukherjee * 5681dee67eSSudip Mukherjee * Result: 5781dee67eSSudip Mukherjee * 0 - Success 5881dee67eSSudip Mukherjee * -1 - Fail 5981dee67eSSudip Mukherjee */ 60c9750456SMatej Dujava long sm750_sw_i2c_write_reg(unsigned char addr, 61fe820044SMike Rapoport unsigned char reg, 62c9750456SMatej Dujava unsigned char data); 6381dee67eSSudip Mukherjee 6481dee67eSSudip Mukherjee #endif /* _SWI2C_H_ */ 65