1 // SPDX-License-Identifier: GPL-2.0 2 /******************************************************************************** 3 * 4 * Copyright (C) 2017 NEXTCHIP Inc. All rights reserved. 5 * Module : i2c.c 6 * Description : 7 * Author : 8 * Date : 9 * Version : Version 1.0 10 * 11 ******************************************************************************** 12 * History : 13 * 14 * 15 ********************************************************************************/ 16 #include <linux/string.h> 17 #include <linux/delay.h> 18 #include <linux/i2c.h> 19 #include <linux/i2c-dev.h> 20 #include "jaguar1_common.h" 21 22 extern struct i2c_client* jaguar1_client; 23 jaguar1_I2CWriteByte8(unsigned char chip_addr,unsigned char reg_addr,unsigned char value)24void jaguar1_I2CWriteByte8(unsigned char chip_addr, unsigned char reg_addr, unsigned char value) 25 { 26 int ret; 27 unsigned char buf[2]; 28 struct i2c_client* client = jaguar1_client; 29 30 client->addr = chip_addr>>1; 31 32 buf[0] = reg_addr; 33 buf[1] = value; 34 35 ret = i2c_master_send(client, buf, 2); 36 udelay(300); 37 } 38 jaguar1_I2CReadByte8(unsigned char chip_addr,unsigned char reg_addr)39unsigned char jaguar1_I2CReadByte8(unsigned char chip_addr, unsigned char reg_addr) 40 { 41 struct i2c_client* client = jaguar1_client; 42 43 client->addr = chip_addr>>1; 44 45 return i2c_smbus_read_byte_data(client, reg_addr); 46 } 47