1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright (c) 2007 by Silicon Motion, Inc. (SMI) 4 * 5 * swi2c.h --- SM750/SM718 DDK 6 * This file contains the definitions for i2c using software 7 * implementation. 8 * 9 */ 10 11 #ifndef _SWI2C_H_ 12 #define _SWI2C_H_ 13 14 /* Default i2c CLK and Data GPIO. These are the default i2c pins */ 15 #define DEFAULT_I2C_SCL 30 16 #define DEFAULT_I2C_SDA 31 17 18 /* 19 * This function initializes the i2c attributes and bus 20 * 21 * Parameters: 22 * i2cClkGPIO - The GPIO pin to be used as i2c SCL 23 * i2cDataGPIO - The GPIO pin to be used as i2c SDA 24 * 25 * Return Value: 26 * -1 - Fail to initialize the i2c 27 * 0 - Success 28 */ 29 long sm750_sw_i2c_init(unsigned char clk_gpio, unsigned char data_gpio); 30 31 /* 32 * This function reads the slave device's register 33 * 34 * Parameters: 35 * addr - i2c Slave device address which register 36 * to be read from 37 * reg - Slave device's register to be read 38 * 39 * Return Value: 40 * Register value 41 */ 42 unsigned char sm750_sw_i2c_read_reg(unsigned char addr, unsigned char reg); 43 44 /* 45 * This function writes a value to the slave device's register 46 * 47 * Parameters: 48 * addr - i2c Slave device address which register 49 * to be written 50 * reg - Slave device's register to be written 51 * data - Data to be written to the register 52 * 53 * Result: 54 * 0 - Success 55 * -1 - Fail 56 */ 57 long sm750_sw_i2c_write_reg(unsigned char addr, 58 unsigned char reg, 59 unsigned char data); 60 61 #endif /* _SWI2C_H_ */ 62