xref: /OK3568_Linux_fs/kernel/drivers/media/i2c/jaguar1_drv/jaguar1_i2c.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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)24 void 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)39 unsigned 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