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