rk: gcc-wrapper.py ignore memcontrol.c:5355
[firefly-linux-kernel-4.4.55.git] / include / linux / ts-auto.h
index 3d5661997d1ac36e0391a3da4f70f68cd27fe81b..459a06960d3dde873fd405c5f4810ee56631f936 100755 (executable)
@@ -8,6 +8,17 @@
 #define        TS_MAX_POINT    20\r
 #define        TS_MAX_VER_LEN  64\r
 \r
+struct ts_private_data;\r
+\r
+enum ts_bus_type{\r
+       TS_BUS_TYPE_INVALID = 0,\r
+               \r
+       TS_BUS_TYPE_I2C,\r
+       TS_BUS_TYPE_SPI,\r
+       TS_BUS_TYPE_SERIAL,\r
+       \r
+       TS_BUS_TYPE_NUM_ID,\r
+};\r
 \r
 enum ts_id {\r
        TS_ID_INVALID = 0,\r
@@ -16,6 +27,7 @@ enum ts_id {
        TS_ID_CT360,\r
        TS_ID_GT8110,\r
        TS_ID_GT828,\r
+       TS_ID_GT8005,\r
        \r
        TS_NUM_ID,\r
 };\r
@@ -53,7 +65,8 @@ struct ts_max_pixel{
 struct ts_operate {\r
        char *name;\r
        char slave_addr;\r
-       int id_i2c;\r
+       int ts_id;\r
+       int bus_type;\r
        struct ts_max_pixel pixel;\r
        int reg_size;\r
        int id_reg;\r
@@ -72,20 +85,27 @@ struct ts_operate {
        int irq_enable;         //if irq_enable=1 then use irq else use polling  \r
        int poll_delay_ms;      //polling\r
        int gpio_level_no_int;\r
-       int (*active)(struct i2c_client *client, int enable);\r
-       int (*init)(struct i2c_client *client); \r
-       int (*check_irq)(struct i2c_client *client);\r
-       int (*report)(struct i2c_client *client);\r
-       int (*firmware)(struct i2c_client *client);\r
-       int (*suspend)(struct i2c_client *client);\r
-       int (*resume)(struct i2c_client *client);       \r
+       int (*active)(struct ts_private_data *ts, int enable);\r
+       int (*init)(struct ts_private_data *ts);        \r
+       int (*check_irq)(struct ts_private_data *ts);\r
+       int (*report)(struct ts_private_data *ts);\r
+       int (*firmware)(struct ts_private_data *ts);\r
+       int (*suspend)(struct ts_private_data *ts);\r
+       int (*resume)(struct ts_private_data *ts);      \r
        struct miscdevice *misc_dev;\r
-\r
 };\r
 \r
 \r
 struct ts_private_data {\r
-       struct i2c_client *client;      \r
+       struct mutex io_lock;\r
+       struct device *dev;\r
+       int (*read_dev)(struct ts_private_data *ts, unsigned short reg,\r
+                       int bytes, void *dest, int reg_size);\r
+       int (*write_dev)(struct ts_private_data *ts, unsigned short reg,\r
+                        int bytes, void *src, int reg_size);\r
+       void *control_data;\r
+       int irq;\r
+       //struct i2c_client *client;    \r
        struct input_dev *input_dev;\r
        struct ts_event event;\r
        struct work_struct work;\r
@@ -93,8 +113,7 @@ struct ts_private_data {
        struct delayed_work poll_work;  /*poll at last*/        \r
        char ts_data[40];               //max support40 bytes data\r
        struct mutex data_mutex;\r
-       struct mutex ts_mutex;\r
-       struct mutex i2c_mutex;\r
+       struct mutex ts_lock;\r
        int devid;\r
        struct i2c_device_id *i2c_id;\r
        struct ts_platform_data *pdata;\r
@@ -106,24 +125,27 @@ struct ts_private_data {
 #endif\r
 };\r
 \r
-\r
-extern int ts_register_slave(struct i2c_client *client,\r
+extern int ts_device_init(struct ts_private_data *ts, int type, int irq);\r
+extern void ts_device_exit(struct ts_private_data *ts);\r
+extern int ts_register_slave(struct ts_private_data *ts,\r
                        struct ts_platform_data *slave_pdata,\r
                        struct ts_operate *(*get_ts_ops)(void));\r
-\r
-\r
-extern int ts_unregister_slave(struct i2c_client *client,\r
+extern int ts_unregister_slave(struct ts_private_data *ts,\r
                        struct ts_platform_data *slave_pdata,\r
                        struct ts_operate *(*get_ts_ops)(void));\r
-\r
-extern int ts_rx_data(struct i2c_client *client, char *rxData, int length);\r
-extern int ts_tx_data(struct i2c_client *client, char *txData, int length);\r
-extern int ts_rx_data_word(struct i2c_client *client, char *rxData, int length);\r
-extern int ts_write_reg(struct i2c_client *client, int addr, int value);\r
-extern int ts_read_reg(struct i2c_client *client, int addr);\r
-extern int ts_tx_data_normal(struct i2c_client *client, char *buf, int num);\r
-extern int ts_rx_data_normal(struct i2c_client *client, char *buf, int num);\r
-extern int ts_write_reg_normal(struct i2c_client *client, char value);\r
-extern int ts_read_reg_normal(struct i2c_client *client);\r
+extern int ts_reg_read(struct ts_private_data *ts, unsigned short reg);\r
+extern int ts_reg_write(struct ts_private_data *ts, unsigned short reg,\r
+                    unsigned short val);\r
+extern int ts_bulk_read(struct ts_private_data *ts, unsigned short reg,\r
+                    int count, unsigned char *buf);\r
+extern int ts_bulk_read_normal(struct ts_private_data *ts, int count, unsigned char *buf, int rate);\r
+extern int ts_bulk_write(struct ts_private_data *ts, unsigned short reg,\r
+                    int count, unsigned char *buf);\r
+extern int ts_bulk_write_normal(struct ts_private_data *ts, int count, unsigned char *buf, int rate);\r
+extern int ts_set_bits(struct ts_private_data *ts, unsigned short reg,\r
+                   unsigned short mask, unsigned short val);\r
+extern int ts_device_suspend(struct ts_private_data *ts);\r
+\r
+extern int ts_device_resume(struct ts_private_data *ts);\r
 \r
 #endif\r