--- linux-4.9.37/include/linux/i2c.h	2017-07-12 16:42:41.000000000 +0300
+++ linux-4.9.y/include/linux/i2c.h	2021-06-07 13:01:34.000000000 +0300
@@ -68,6 +68,20 @@
  */
 extern int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs,
 			int num);
+
+#ifdef CONFIG_ARCH_GOKE
+
+extern int gk_i2c_master_send(const struct i2c_client *client, const char *buf,
+					int count);
+
+extern int gk_i2c_master_recv(const struct i2c_client *client, char *buf,
+					int count);
+
+extern int gk_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs,
+					int num);
+
+#endif
+
 /* Unlocked flavor */
 extern int __i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs,
 			  int num);
@@ -553,6 +567,9 @@
 	const struct i2c_lock_operations *lock_ops;
 	struct rt_mutex bus_lock;
 	struct rt_mutex mux_lock;
+#ifdef CONFIG_ARCH_GOKE
+	spinlock_t spinlock;
+#endif
 
 	int timeout;			/* in jiffies */
 	int retries;