Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-12-02 Thread Dmitry Torokhov
HI Jeffrey,

On Mon, Dec 01, 2014 at 06:17:11PM +0800, jeffrey.lin wrote:
> From: "jeffrey.lin" 
> 
> This patch is porting Raydium I2C touch driver. Developer can enable
> raydium touch driver by modifying define "CONFIG_TOUCHSCREEN_RM_TS".

Thank you for making the changes requested earlier.

> 
> Change-Id: I5f33cfdf0e895de6e7d535c11dd4b3ce8b49fa48
> Signed-off-by: jeffrey@rad-ic.com
> ---
>  drivers/input/touchscreen/Kconfig  |  12 +
>  drivers/input/touchscreen/Makefile |   1 +
>  drivers/input/touchscreen/rm31100_ts.c | 968 
> +
>  include/linux/input/rm31100_ts.h   |  60 ++
>  4 files changed, 1041 insertions(+)
>  create mode 100644 drivers/input/touchscreen/rm31100_ts.c
>  create mode 100644 include/linux/input/rm31100_ts.h
> 
> diff --git a/drivers/input/touchscreen/Kconfig 
> b/drivers/input/touchscreen/Kconfig
> index 3ce9181..d0324d2 100644
> --- a/drivers/input/touchscreen/Kconfig
> +++ b/drivers/input/touchscreen/Kconfig
> @@ -955,4 +955,16 @@ config TOUCHSCREEN_ZFORCE
> To compile this driver as a module, choose M here: the
> module will be called zforce_ts.
>  
> +config TOUCHSCREEN_RM_TS
> + tristate "Raydium I2C Touchscreen"
> + depends on I2C
> + help
> +   Say Y here if you have Raydium series I2C touchscreen,
> +   such as RM31100 , connected to your system.
> +
> +   If unsure, say N.
> +
> +   To compile this driver as a module, choose M here: the
> +   module will be called rm31100_ts.
> +
>  endif
> diff --git a/drivers/input/touchscreen/Makefile 
> b/drivers/input/touchscreen/Makefile
> index 687d5a7..aae4af2 100644
> --- a/drivers/input/touchscreen/Makefile
> +++ b/drivers/input/touchscreen/Makefile
> @@ -78,3 +78,4 @@ obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE)   += 
> zylonite-wm97xx.o
>  obj-$(CONFIG_TOUCHSCREEN_W90X900)+= w90p910_ts.o
>  obj-$(CONFIG_TOUCHSCREEN_TPS6507X)   += tps6507x-ts.o
>  obj-$(CONFIG_TOUCHSCREEN_ZFORCE) += zforce_ts.o
> +obj-$(CONFIG_TOUCHSCREEN_RM_TS)  += rm31100_ts.o
> diff --git a/drivers/input/touchscreen/rm31100_ts.c 
> b/drivers/input/touchscreen/rm31100_ts.c
> new file mode 100644
> index 000..6cb09a4
> --- /dev/null
> +++ b/drivers/input/touchscreen/rm31100_ts.c
> @@ -0,0 +1,968 @@
> +/* Source for:
> + * Raydium rm31100_ts Prototype touchscreen driver.
> + * drivers/input/touchscreen/rm31100_ts.c

No need for the file name. And we know it is a source. So just say:

Raydium RM31100 touchscreen driver.

Why does it say it's a prototype?

> + *
> + * Copyright (C) 2012,

Whose copyright is this?

> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * version 2, and only version 2, as published by the
> + * Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * Raydium reserves the right to make changes without further notice
> + * to the materials described herein. Raydium does not assume any
> + * liability arising out of the application described herein.
> + *
> + * Contact Raydium Semiconductor Corporation at www.rad-ic.com
> + *
> + * History:
> + *   (C) 2012 Raydium - Update for GPL distribution
> + *   (C) 2009 Enea - Original prototype
> + *
> + */
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 

We are not using workier anymore, please remove.

> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +/*#include */
> +#ifdef CONFIG_MISC_DEV
> +#include 
> +#endif
> +/*#include  copy_to_user() */
> +#include 
> +
> +#define rm31100  0x0
> +#define rm3110x  0x1
> +
> +#define INVALID_DATA 0xff
> +#define MAX_REPORT_TOUCHED_POINTS10
> +
> +#define TOUCHSCREEN_TIMEOUT  (msecs_to_jiffies(10))

Does not seem to be used.

> +#define INITIAL_DELAY(msecs_to_jiffies(25000))

Does not seem to be used.

> +
> +#define EVAL_REPORT_RATE1
> +
> +#define I2C_CLIENT_ADDR 0x39
> +#define I2C_DMA_CLIENT_ADDR 0x5A
> +#undef CONFIG_PM

What on earth is this

> +struct rm31100_ts_data {
> + u8 x_index;
> + u8 y_index;
> + u8 z_index;
> + u8 id_index;
> + u8 touch_index;
> + u8 data_reg;
> + u8 status_reg;
> + u8 data_size;
> + u8 touch_bytes;
> + u8 update_data;
> + u8 touch_meta_data;
> + u8 finger_size;
> +};
> +
> +static struct rm31100_ts_data devices[] = {
> + [0] = {
> + .x_index = 2,
> + .y_index = 4,
> + .z_index = 6,
> + .id_index = 1,
> + .data_reg = 0x1,
> + .status_reg = 0,
> + .update_data = 0x0,/*0x4*/

Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-12-02 Thread Dmitry Torokhov
HI Jeffrey,

On Mon, Dec 01, 2014 at 06:17:11PM +0800, jeffrey.lin wrote:
 From: jeffrey.lin jeffrey@rad-ic.com
 
 This patch is porting Raydium I2C touch driver. Developer can enable
 raydium touch driver by modifying define CONFIG_TOUCHSCREEN_RM_TS.

Thank you for making the changes requested earlier.

 
 Change-Id: I5f33cfdf0e895de6e7d535c11dd4b3ce8b49fa48
 Signed-off-by: jeffrey@rad-ic.com
 ---
  drivers/input/touchscreen/Kconfig  |  12 +
  drivers/input/touchscreen/Makefile |   1 +
  drivers/input/touchscreen/rm31100_ts.c | 968 
 +
  include/linux/input/rm31100_ts.h   |  60 ++
  4 files changed, 1041 insertions(+)
  create mode 100644 drivers/input/touchscreen/rm31100_ts.c
  create mode 100644 include/linux/input/rm31100_ts.h
 
 diff --git a/drivers/input/touchscreen/Kconfig 
 b/drivers/input/touchscreen/Kconfig
 index 3ce9181..d0324d2 100644
 --- a/drivers/input/touchscreen/Kconfig
 +++ b/drivers/input/touchscreen/Kconfig
 @@ -955,4 +955,16 @@ config TOUCHSCREEN_ZFORCE
 To compile this driver as a module, choose M here: the
 module will be called zforce_ts.
  
 +config TOUCHSCREEN_RM_TS
 + tristate Raydium I2C Touchscreen
 + depends on I2C
 + help
 +   Say Y here if you have Raydium series I2C touchscreen,
 +   such as RM31100 , connected to your system.
 +
 +   If unsure, say N.
 +
 +   To compile this driver as a module, choose M here: the
 +   module will be called rm31100_ts.
 +
  endif
 diff --git a/drivers/input/touchscreen/Makefile 
 b/drivers/input/touchscreen/Makefile
 index 687d5a7..aae4af2 100644
 --- a/drivers/input/touchscreen/Makefile
 +++ b/drivers/input/touchscreen/Makefile
 @@ -78,3 +78,4 @@ obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE)   += 
 zylonite-wm97xx.o
  obj-$(CONFIG_TOUCHSCREEN_W90X900)+= w90p910_ts.o
  obj-$(CONFIG_TOUCHSCREEN_TPS6507X)   += tps6507x-ts.o
  obj-$(CONFIG_TOUCHSCREEN_ZFORCE) += zforce_ts.o
 +obj-$(CONFIG_TOUCHSCREEN_RM_TS)  += rm31100_ts.o
 diff --git a/drivers/input/touchscreen/rm31100_ts.c 
 b/drivers/input/touchscreen/rm31100_ts.c
 new file mode 100644
 index 000..6cb09a4
 --- /dev/null
 +++ b/drivers/input/touchscreen/rm31100_ts.c
 @@ -0,0 +1,968 @@
 +/* Source for:
 + * Raydium rm31100_ts Prototype touchscreen driver.
 + * drivers/input/touchscreen/rm31100_ts.c

No need for the file name. And we know it is a source. So just say:

Raydium RM31100 touchscreen driver.

Why does it say it's a prototype?

 + *
 + * Copyright (C) 2012,

Whose copyright is this?

 + *
 + * This program is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU General Public License
 + * version 2, and only version 2, as published by the
 + * Free Software Foundation.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + * GNU General Public License for more details.
 + *
 + * Raydium reserves the right to make changes without further notice
 + * to the materials described herein. Raydium does not assume any
 + * liability arising out of the application described herein.
 + *
 + * Contact Raydium Semiconductor Corporation at www.rad-ic.com
 + *
 + * History:
 + *   (C) 2012 Raydium - Update for GPL distribution
 + *   (C) 2009 Enea - Original prototype
 + *
 + */
 +#include linux/async.h
 +#include linux/init.h
 +#include linux/module.h
 +#include linux/i2c.h
 +#include linux/input.h
 +#include linux/slab.h
 +#include linux/interrupt.h
 +#include linux/irq.h
 +#include linux/gpio.h
 +#include linux/workqueue.h

We are not using workier anymore, please remove.

 +#include linux/mutex.h
 +#include linux/delay.h
 +#include linux/input/rm31100_ts.h
 +#include linux/pm.h
 +#include linux/pm_runtime.h
 +/*#include plat/gpio-cfg.h*/
 +#ifdef CONFIG_MISC_DEV
 +#include linux/miscdevice.h
 +#endif
 +/*#include asm/uaccess.h copy_to_user() */
 +#include linux/uaccess.h
 +
 +#define rm31100  0x0
 +#define rm3110x  0x1
 +
 +#define INVALID_DATA 0xff
 +#define MAX_REPORT_TOUCHED_POINTS10
 +
 +#define TOUCHSCREEN_TIMEOUT  (msecs_to_jiffies(10))

Does not seem to be used.

 +#define INITIAL_DELAY(msecs_to_jiffies(25000))

Does not seem to be used.

 +
 +#define EVAL_REPORT_RATE1
 +
 +#define I2C_CLIENT_ADDR 0x39
 +#define I2C_DMA_CLIENT_ADDR 0x5A
 +#undef CONFIG_PM

What on earth is this

 +struct rm31100_ts_data {
 + u8 x_index;
 + u8 y_index;
 + u8 z_index;
 + u8 id_index;
 + u8 touch_index;
 + u8 data_reg;
 + u8 status_reg;
 + u8 data_size;
 + u8 touch_bytes;
 + u8 update_data;
 + u8 touch_meta_data;
 + u8 finger_size;
 +};
 +
 +static struct rm31100_ts_data devices[] = {
 + [0] = {
 + .x_index = 2,
 + .y_index = 4,
 + 

Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-12-01 Thread Benson Leung
On Mon, Dec 1, 2014 at 2:17 AM, jeffrey.lin  wrote:
> From: "jeffrey.lin" 
>
> This patch is porting Raydium I2C touch driver. Developer can enable
> raydium touch driver by modifying define "CONFIG_TOUCHSCREEN_RM_TS".
>
> Change-Id: I5f33cfdf0e895de6e7d535c11dd4b3ce8b49fa48

Once again, please remove this bit of Gerrit change-id from your patch
submissions in the future.

> Signed-off-by: jeffrey@rad-ic.com




-- 
Benson Leung
Software Engineer, Chrom* OS
ble...@chromium.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-12-01 Thread jeffrey.lin
From: "jeffrey.lin" 

This patch is porting Raydium I2C touch driver. Developer can enable
raydium touch driver by modifying define "CONFIG_TOUCHSCREEN_RM_TS".

Change-Id: I5f33cfdf0e895de6e7d535c11dd4b3ce8b49fa48
Signed-off-by: jeffrey@rad-ic.com
---
 drivers/input/touchscreen/Kconfig  |  12 +
 drivers/input/touchscreen/Makefile |   1 +
 drivers/input/touchscreen/rm31100_ts.c | 968 +
 include/linux/input/rm31100_ts.h   |  60 ++
 4 files changed, 1041 insertions(+)
 create mode 100644 drivers/input/touchscreen/rm31100_ts.c
 create mode 100644 include/linux/input/rm31100_ts.h

diff --git a/drivers/input/touchscreen/Kconfig 
b/drivers/input/touchscreen/Kconfig
index 3ce9181..d0324d2 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -955,4 +955,16 @@ config TOUCHSCREEN_ZFORCE
  To compile this driver as a module, choose M here: the
  module will be called zforce_ts.
 
+config TOUCHSCREEN_RM_TS
+   tristate "Raydium I2C Touchscreen"
+   depends on I2C
+   help
+ Say Y here if you have Raydium series I2C touchscreen,
+ such as RM31100 , connected to your system.
+
+ If unsure, say N.
+
+ To compile this driver as a module, choose M here: the
+ module will be called rm31100_ts.
+
 endif
diff --git a/drivers/input/touchscreen/Makefile 
b/drivers/input/touchscreen/Makefile
index 687d5a7..aae4af2 100644
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
@@ -78,3 +78,4 @@ obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE) += 
zylonite-wm97xx.o
 obj-$(CONFIG_TOUCHSCREEN_W90X900)  += w90p910_ts.o
 obj-$(CONFIG_TOUCHSCREEN_TPS6507X) += tps6507x-ts.o
 obj-$(CONFIG_TOUCHSCREEN_ZFORCE)   += zforce_ts.o
+obj-$(CONFIG_TOUCHSCREEN_RM_TS)+= rm31100_ts.o
diff --git a/drivers/input/touchscreen/rm31100_ts.c 
b/drivers/input/touchscreen/rm31100_ts.c
new file mode 100644
index 000..6cb09a4
--- /dev/null
+++ b/drivers/input/touchscreen/rm31100_ts.c
@@ -0,0 +1,968 @@
+/* Source for:
+ * Raydium rm31100_ts Prototype touchscreen driver.
+ * drivers/input/touchscreen/rm31100_ts.c
+ *
+ * Copyright (C) 2012,
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2, and only version 2, as published by the
+ * Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * Raydium reserves the right to make changes without further notice
+ * to the materials described herein. Raydium does not assume any
+ * liability arising out of the application described herein.
+ *
+ * Contact Raydium Semiconductor Corporation at www.rad-ic.com
+ *
+ * History:
+ * (C) 2012 Raydium - Update for GPL distribution
+ * (C) 2009 Enea - Original prototype
+ *
+ */
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+/*#include */
+#ifdef CONFIG_MISC_DEV
+#include 
+#endif
+/*#include  copy_to_user() */
+#include 
+
+#define rm311000x0
+#define rm3110x0x1
+
+#define INVALID_DATA   0xff
+#define MAX_REPORT_TOUCHED_POINTS  10
+
+#define TOUCHSCREEN_TIMEOUT(msecs_to_jiffies(10))
+#define INITIAL_DELAY  (msecs_to_jiffies(25000))
+
+#define EVAL_REPORT_RATE1
+
+#define I2C_CLIENT_ADDR 0x39
+#define I2C_DMA_CLIENT_ADDR 0x5A
+#undef CONFIG_PM
+struct rm31100_ts_data {
+   u8 x_index;
+   u8 y_index;
+   u8 z_index;
+   u8 id_index;
+   u8 touch_index;
+   u8 data_reg;
+   u8 status_reg;
+   u8 data_size;
+   u8 touch_bytes;
+   u8 update_data;
+   u8 touch_meta_data;
+   u8 finger_size;
+};
+
+static struct rm31100_ts_data devices[] = {
+   [0] = {
+   .x_index = 2,
+   .y_index = 4,
+   .z_index = 6,
+   .id_index = 1,
+   .data_reg = 0x1,
+   .status_reg = 0,
+   .update_data = 0x0,/*0x4*/
+   .touch_bytes = 6,
+   .touch_meta_data = 1,
+   .finger_size = 70,
+   },
+};
+
+struct rm31100_ts {
+   struct i2c_client *client;
+   struct input_dev *input;
+   struct delayed_work work;
+   struct rm3110x_ts_platform_data *pdata;
+   struct rm31100_ts_data *dd;
+   u8 *touch_data;
+   u8 device_id;
+   u8 prev_touches;
+   bool is_suspended;
+   bool int_pending;
+   struct mutex sus_lock;
+   struct mutex access_lock;
+   u32 pen_irq;
+};
+
+struct rm31100_ts *pts;
+/*
+static inline u16 join_bytes(u8 a, u8 b)
+{
+   u16 ab = 0;
+  

[PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-12-01 Thread jeffrey.lin
From: jeffrey.lin jeffrey@rad-ic.com

This patch is porting Raydium I2C touch driver. Developer can enable
raydium touch driver by modifying define CONFIG_TOUCHSCREEN_RM_TS.

Change-Id: I5f33cfdf0e895de6e7d535c11dd4b3ce8b49fa48
Signed-off-by: jeffrey@rad-ic.com
---
 drivers/input/touchscreen/Kconfig  |  12 +
 drivers/input/touchscreen/Makefile |   1 +
 drivers/input/touchscreen/rm31100_ts.c | 968 +
 include/linux/input/rm31100_ts.h   |  60 ++
 4 files changed, 1041 insertions(+)
 create mode 100644 drivers/input/touchscreen/rm31100_ts.c
 create mode 100644 include/linux/input/rm31100_ts.h

diff --git a/drivers/input/touchscreen/Kconfig 
b/drivers/input/touchscreen/Kconfig
index 3ce9181..d0324d2 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -955,4 +955,16 @@ config TOUCHSCREEN_ZFORCE
  To compile this driver as a module, choose M here: the
  module will be called zforce_ts.
 
+config TOUCHSCREEN_RM_TS
+   tristate Raydium I2C Touchscreen
+   depends on I2C
+   help
+ Say Y here if you have Raydium series I2C touchscreen,
+ such as RM31100 , connected to your system.
+
+ If unsure, say N.
+
+ To compile this driver as a module, choose M here: the
+ module will be called rm31100_ts.
+
 endif
diff --git a/drivers/input/touchscreen/Makefile 
b/drivers/input/touchscreen/Makefile
index 687d5a7..aae4af2 100644
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
@@ -78,3 +78,4 @@ obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE) += 
zylonite-wm97xx.o
 obj-$(CONFIG_TOUCHSCREEN_W90X900)  += w90p910_ts.o
 obj-$(CONFIG_TOUCHSCREEN_TPS6507X) += tps6507x-ts.o
 obj-$(CONFIG_TOUCHSCREEN_ZFORCE)   += zforce_ts.o
+obj-$(CONFIG_TOUCHSCREEN_RM_TS)+= rm31100_ts.o
diff --git a/drivers/input/touchscreen/rm31100_ts.c 
b/drivers/input/touchscreen/rm31100_ts.c
new file mode 100644
index 000..6cb09a4
--- /dev/null
+++ b/drivers/input/touchscreen/rm31100_ts.c
@@ -0,0 +1,968 @@
+/* Source for:
+ * Raydium rm31100_ts Prototype touchscreen driver.
+ * drivers/input/touchscreen/rm31100_ts.c
+ *
+ * Copyright (C) 2012,
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2, and only version 2, as published by the
+ * Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * Raydium reserves the right to make changes without further notice
+ * to the materials described herein. Raydium does not assume any
+ * liability arising out of the application described herein.
+ *
+ * Contact Raydium Semiconductor Corporation at www.rad-ic.com
+ *
+ * History:
+ * (C) 2012 Raydium - Update for GPL distribution
+ * (C) 2009 Enea - Original prototype
+ *
+ */
+#include linux/async.h
+#include linux/init.h
+#include linux/module.h
+#include linux/i2c.h
+#include linux/input.h
+#include linux/slab.h
+#include linux/interrupt.h
+#include linux/irq.h
+#include linux/gpio.h
+#include linux/workqueue.h
+#include linux/mutex.h
+#include linux/delay.h
+#include linux/input/rm31100_ts.h
+#include linux/pm.h
+#include linux/pm_runtime.h
+/*#include plat/gpio-cfg.h*/
+#ifdef CONFIG_MISC_DEV
+#include linux/miscdevice.h
+#endif
+/*#include asm/uaccess.h copy_to_user() */
+#include linux/uaccess.h
+
+#define rm311000x0
+#define rm3110x0x1
+
+#define INVALID_DATA   0xff
+#define MAX_REPORT_TOUCHED_POINTS  10
+
+#define TOUCHSCREEN_TIMEOUT(msecs_to_jiffies(10))
+#define INITIAL_DELAY  (msecs_to_jiffies(25000))
+
+#define EVAL_REPORT_RATE1
+
+#define I2C_CLIENT_ADDR 0x39
+#define I2C_DMA_CLIENT_ADDR 0x5A
+#undef CONFIG_PM
+struct rm31100_ts_data {
+   u8 x_index;
+   u8 y_index;
+   u8 z_index;
+   u8 id_index;
+   u8 touch_index;
+   u8 data_reg;
+   u8 status_reg;
+   u8 data_size;
+   u8 touch_bytes;
+   u8 update_data;
+   u8 touch_meta_data;
+   u8 finger_size;
+};
+
+static struct rm31100_ts_data devices[] = {
+   [0] = {
+   .x_index = 2,
+   .y_index = 4,
+   .z_index = 6,
+   .id_index = 1,
+   .data_reg = 0x1,
+   .status_reg = 0,
+   .update_data = 0x0,/*0x4*/
+   .touch_bytes = 6,
+   .touch_meta_data = 1,
+   .finger_size = 70,
+   },
+};
+
+struct rm31100_ts {
+   struct i2c_client *client;
+   struct input_dev *input;
+   struct delayed_work work;
+   struct rm3110x_ts_platform_data *pdata;
+   struct rm31100_ts_data *dd;
+   u8 *touch_data;
+ 

Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-12-01 Thread Benson Leung
On Mon, Dec 1, 2014 at 2:17 AM, jeffrey.lin yaj...@gmail.com wrote:
 From: jeffrey.lin jeffrey@rad-ic.com

 This patch is porting Raydium I2C touch driver. Developer can enable
 raydium touch driver by modifying define CONFIG_TOUCHSCREEN_RM_TS.

 Change-Id: I5f33cfdf0e895de6e7d535c11dd4b3ce8b49fa48

Once again, please remove this bit of Gerrit change-id from your patch
submissions in the future.

 Signed-off-by: jeffrey@rad-ic.com




-- 
Benson Leung
Software Engineer, Chrom* OS
ble...@chromium.org
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-11-19 Thread Benson Leung
On Wed, Nov 19, 2014 at 7:30 AM, jeffrey.lin  wrote:
> From: "jeffrey.lin" 
Also, this email address appears to not be active. Please do not list
dead email addresses as the author.

>
> this patch is porting Raydium I2C touch driver. Developer can enable
> raydium touch driver by modifying define "CONFIG_TOUCHSCREEN_RM_TS".
>
> BUG: None
> TEST: built and test with peppy
>
> Signed-off-by: jeffrey@rad-ic.com
> Change-Id: I05d54e5ef29249d2a6eae97222c90bed11e839f9
> ---




-- 
Benson Leung
Software Engineer, Chrom* OS
ble...@chromium.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-11-19 Thread Dmitry Torokhov
On Wed, Nov 19, 2014 at 05:44:48PM +0100, Daniel Mack wrote:
> On 11/19/2014 04:30 PM, jeffrey.lin wrote:
> > From: "jeffrey.lin" 
> > 
> > this patch is porting Raydium I2C touch driver. Developer can enable
> > raydium touch driver by modifying define "CONFIG_TOUCHSCREEN_RM_TS".
> > 
> > BUG: None
> > TEST: built and test with peppy
> > 
> > Signed-off-by: jeffrey@rad-ic.com
> > Change-Id: I05d54e5ef29249d2a6eae97222c90bed11e839f9
> > ---
> 
> Just some general remarks that IMO need to be addressed before a more
> thorough review can happen:
> 
> 
> * Please remove all dead code, such as code in comments and in #if 0
>   blocks.
> 
> * Use the regmap framework to abstract the hardware access on the I2C
>   layer (see drivers/input/keyboard/cap1106.c and many other drivers
>   as an example, and check include/linux/regmap.h). That makes the code
>   a lot shorter and more comprehensible to read.
> 
> * By using request_threaded_irq(), you don't have to manually control
>   your worker and can simplify your code quite a bit.
> 
> * See if you can claim all the resources the driver needs by using
>   devm_* variants.
> 
> * Don't use uppercase names for filenames, structs, functions and IDs
> 
> * Why do you need a miscdevice for this? Isn't the input event layer
>   enough?
> 
> * Also, run scripts/checkpatch.pl on the new patch, which will help
>   you find some more typical pitfalls.

Also please convert driver to MT-B (slotted) protocol (you are currently
using MT-Ai version).

And please remove join_bytes(). It is called get_unaligned_le16().

Most of the things that need fixing have already been listed in response
to your original submission, please do address them before posting the
driver again.

Thanks.

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-11-19 Thread Benson Leung
Hi Jeffrey,

On Wed, Nov 19, 2014 at 7:30 AM, jeffrey.lin  wrote:
> From: "jeffrey.lin" 
>
> this patch is porting Raydium I2C touch driver. Developer can enable
> raydium touch driver by modifying define "CONFIG_TOUCHSCREEN_RM_TS".
>
> BUG: None
> TEST: built and test with peppy
These two lines serve no purpose in the upstream kernel. Please remove them.

>
> Signed-off-by: jeffrey@rad-ic.com
> Change-Id: I05d54e5ef29249d2a6eae97222c90bed11e839f9
The Change-Id: line is an artifact of the gerrit code review system.
Please remove it before sending patches upstream.




-- 
Benson Leung
Software Engineer, Chrom* OS
ble...@chromium.org
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-11-19 Thread Daniel Mack
On 11/19/2014 04:30 PM, jeffrey.lin wrote:
> From: "jeffrey.lin" 
> 
> this patch is porting Raydium I2C touch driver. Developer can enable
> raydium touch driver by modifying define "CONFIG_TOUCHSCREEN_RM_TS".
> 
> BUG: None
> TEST: built and test with peppy
> 
> Signed-off-by: jeffrey@rad-ic.com
> Change-Id: I05d54e5ef29249d2a6eae97222c90bed11e839f9
> ---

Just some general remarks that IMO need to be addressed before a more
thorough review can happen:


* Please remove all dead code, such as code in comments and in #if 0
  blocks.

* Use the regmap framework to abstract the hardware access on the I2C
  layer (see drivers/input/keyboard/cap1106.c and many other drivers
  as an example, and check include/linux/regmap.h). That makes the code
  a lot shorter and more comprehensible to read.

* By using request_threaded_irq(), you don't have to manually control
  your worker and can simplify your code quite a bit.

* See if you can claim all the resources the driver needs by using
  devm_* variants.

* Don't use uppercase names for filenames, structs, functions and IDs

* Why do you need a miscdevice for this? Isn't the input event layer
  enough?

* Also, run scripts/checkpatch.pl on the new patch, which will help
  you find some more typical pitfalls.



Thanks,
Daniel


>  drivers/input/touchscreen/Kconfig   |  12 +
>  drivers/input/touchscreen/Makefile  |   1 +
>  drivers/input/touchscreen/RM31100.c | 972 
> 
>  include/linux/input/RM31100.h   |  60 +++
>  4 files changed, 1045 insertions(+)
>  create mode 100644 drivers/input/touchscreen/RM31100.c
>  create mode 100644 include/linux/input/RM31100.h
> 
> diff --git a/drivers/input/touchscreen/Kconfig 
> b/drivers/input/touchscreen/Kconfig
> index 3ce9181..b692036 100644
> --- a/drivers/input/touchscreen/Kconfig
> +++ b/drivers/input/touchscreen/Kconfig
> @@ -98,6 +98,18 @@ config TOUCHSCREEN_ATMEL_MXT
> To compile this driver as a module, choose M here: the
> module will be called atmel_mxt_ts.
>  
> +config TOUCHSCREEN_RM_TS
> + tristate "Raydium I2C Touchscreen"
> + depends on I2C
> + help
> +   Say Y here if you have Raydium series I2C touchscreen,
> +   such as RM31100 , connected to your system.
> +
> +   If unsure, say N.
> +
> +   To compile this driver as a module, choose M here: the
> +   module will be called RM31100.
> +
>  config TOUCHSCREEN_AUO_PIXCIR
>   tristate "AUO in-cell touchscreen using Pixcir ICs"
>   depends on I2C
> diff --git a/drivers/input/touchscreen/Makefile 
> b/drivers/input/touchscreen/Makefile
> index 687d5a7..d991815 100644
> --- a/drivers/input/touchscreen/Makefile
> +++ b/drivers/input/touchscreen/Makefile
> @@ -73,6 +73,7 @@ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9705)  += wm9705.o
>  wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9712)   += wm9712.o
>  wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9713)   += wm9713.o
>  obj-$(CONFIG_TOUCHSCREEN_WM97XX_ATMEL)   += atmel-wm97xx.o
> +obj-$(CONFIG_TOUCHSCREEN_RM_TS)  += RM31100.o
>  obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE)   += mainstone-wm97xx.o
>  obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE)+= zylonite-wm97xx.o
>  obj-$(CONFIG_TOUCHSCREEN_W90X900)+= w90p910_ts.o
> diff --git a/drivers/input/touchscreen/RM31100.c 
> b/drivers/input/touchscreen/RM31100.c
> new file mode 100644
> index 000..78cc80d
> --- /dev/null
> +++ b/drivers/input/touchscreen/RM31100.c
> @@ -0,0 +1,972 @@
> +/* Source for:
> + * Raydium RM31100 Prototype touchscreen driver.
> + * drivers/input/touchscreen/RM31100.c
> + *
> + * Copyright (C) 2012,
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * version 2, and only version 2, as published by the
> + * Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * Raydium reserves the right to make changes without further notice
> + * to the materials described herein. Raydium does not assume any
> + * liability arising out of the application described herein.
> + *
> + * Contact Raydium Semiconductor Corporation at www.rad-ic.com
> + *
> + * History:
> + *   (C) 2012 Raydium - Update for GPL distribution
> + *   (C) 2009 Enea - Original prototype
> + *
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +/*#include */
> +#include 
> +/*#include  copy_to_user() */
> +#include 
> +
> +
> +#if 0/*defined(CONFIG_HAS_EARLYSUSPEND)*/
> +#include 
> +
> +/* Early-suspend level */
> +#define RM31100_TS_SUSPEND_LEVEL 1
> +#endif
> +
> +#define RM31100  

[PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-11-19 Thread jeffrey.lin
From: "jeffrey.lin" 

this patch is porting Raydium I2C touch driver. Developer can enable
raydium touch driver by modifying define "CONFIG_TOUCHSCREEN_RM_TS".

BUG: None
TEST: built and test with peppy

Signed-off-by: jeffrey@rad-ic.com
Change-Id: I05d54e5ef29249d2a6eae97222c90bed11e839f9
---
 drivers/input/touchscreen/Kconfig   |  12 +
 drivers/input/touchscreen/Makefile  |   1 +
 drivers/input/touchscreen/RM31100.c | 972 
 include/linux/input/RM31100.h   |  60 +++
 4 files changed, 1045 insertions(+)
 create mode 100644 drivers/input/touchscreen/RM31100.c
 create mode 100644 include/linux/input/RM31100.h

diff --git a/drivers/input/touchscreen/Kconfig 
b/drivers/input/touchscreen/Kconfig
index 3ce9181..b692036 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -98,6 +98,18 @@ config TOUCHSCREEN_ATMEL_MXT
  To compile this driver as a module, choose M here: the
  module will be called atmel_mxt_ts.
 
+config TOUCHSCREEN_RM_TS
+   tristate "Raydium I2C Touchscreen"
+   depends on I2C
+   help
+ Say Y here if you have Raydium series I2C touchscreen,
+ such as RM31100 , connected to your system.
+
+ If unsure, say N.
+
+ To compile this driver as a module, choose M here: the
+ module will be called RM31100.
+
 config TOUCHSCREEN_AUO_PIXCIR
tristate "AUO in-cell touchscreen using Pixcir ICs"
depends on I2C
diff --git a/drivers/input/touchscreen/Makefile 
b/drivers/input/touchscreen/Makefile
index 687d5a7..d991815 100644
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
@@ -73,6 +73,7 @@ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9705)+= wm9705.o
 wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9712) += wm9712.o
 wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9713) += wm9713.o
 obj-$(CONFIG_TOUCHSCREEN_WM97XX_ATMEL) += atmel-wm97xx.o
+obj-$(CONFIG_TOUCHSCREEN_RM_TS)+= RM31100.o
 obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE) += mainstone-wm97xx.o
 obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE)  += zylonite-wm97xx.o
 obj-$(CONFIG_TOUCHSCREEN_W90X900)  += w90p910_ts.o
diff --git a/drivers/input/touchscreen/RM31100.c 
b/drivers/input/touchscreen/RM31100.c
new file mode 100644
index 000..78cc80d
--- /dev/null
+++ b/drivers/input/touchscreen/RM31100.c
@@ -0,0 +1,972 @@
+/* Source for:
+ * Raydium RM31100 Prototype touchscreen driver.
+ * drivers/input/touchscreen/RM31100.c
+ *
+ * Copyright (C) 2012,
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2, and only version 2, as published by the
+ * Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * Raydium reserves the right to make changes without further notice
+ * to the materials described herein. Raydium does not assume any
+ * liability arising out of the application described herein.
+ *
+ * Contact Raydium Semiconductor Corporation at www.rad-ic.com
+ *
+ * History:
+ * (C) 2012 Raydium - Update for GPL distribution
+ * (C) 2009 Enea - Original prototype
+ *
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+/*#include */
+#include 
+/*#include  copy_to_user() */
+#include 
+
+
+#if 0/*defined(CONFIG_HAS_EARLYSUSPEND)*/
+#include 
+
+/* Early-suspend level */
+#define RM31100_TS_SUSPEND_LEVEL 1
+#endif
+
+#define RM311000x0
+#define RM3110x0x1
+
+#define INVALID_DATA   0xff
+
+#define TOUCHSCREEN_TIMEOUT(msecs_to_jiffies(10))
+#define INITIAL_DELAY  (msecs_to_jiffies(25000))
+
+#define EVAL_REPORT_RATE1
+
+#define I2C_CLIENT_ADDR 0x39
+#define I2C_DMA_CLIENT_ADDR 0x5A
+#undef CONFIG_PM
+struct RM31100_ts_data {
+   u8 x_index;
+   u8 y_index;
+   u8 z_index;
+   u8 id_index;
+   u8 touch_index;
+   u8 data_reg;
+   u8 status_reg;
+   u8 data_size;
+   u8 touch_bytes;
+   u8 update_data;
+   u8 touch_meta_data;
+   u8 finger_size;
+};
+
+static struct RM31100_ts_data devices[] = {
+   [0] = {
+   .x_index = 2,
+   .y_index = 4,
+   .z_index = 6,
+   .id_index = 1,
+   .data_reg = 0x1,
+   .status_reg = 0,
+   .update_data = 0x0,/*0x4*/
+   .touch_bytes = 6,
+   .touch_meta_data = 1,
+   .finger_size = 70,
+   },
+};
+
+struct RM31100_ts {
+   struct i2c_client *client;
+   struct input_dev *input;
+   struct delayed_work work;
+   struct workqueue_struct *wq;
+  

[PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-11-19 Thread jeffrey.lin
From: jeffrey.lin jeffrey@gmail.com

this patch is porting Raydium I2C touch driver. Developer can enable
raydium touch driver by modifying define CONFIG_TOUCHSCREEN_RM_TS.

BUG: None
TEST: built and test with peppy

Signed-off-by: jeffrey@rad-ic.com
Change-Id: I05d54e5ef29249d2a6eae97222c90bed11e839f9
---
 drivers/input/touchscreen/Kconfig   |  12 +
 drivers/input/touchscreen/Makefile  |   1 +
 drivers/input/touchscreen/RM31100.c | 972 
 include/linux/input/RM31100.h   |  60 +++
 4 files changed, 1045 insertions(+)
 create mode 100644 drivers/input/touchscreen/RM31100.c
 create mode 100644 include/linux/input/RM31100.h

diff --git a/drivers/input/touchscreen/Kconfig 
b/drivers/input/touchscreen/Kconfig
index 3ce9181..b692036 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -98,6 +98,18 @@ config TOUCHSCREEN_ATMEL_MXT
  To compile this driver as a module, choose M here: the
  module will be called atmel_mxt_ts.
 
+config TOUCHSCREEN_RM_TS
+   tristate Raydium I2C Touchscreen
+   depends on I2C
+   help
+ Say Y here if you have Raydium series I2C touchscreen,
+ such as RM31100 , connected to your system.
+
+ If unsure, say N.
+
+ To compile this driver as a module, choose M here: the
+ module will be called RM31100.
+
 config TOUCHSCREEN_AUO_PIXCIR
tristate AUO in-cell touchscreen using Pixcir ICs
depends on I2C
diff --git a/drivers/input/touchscreen/Makefile 
b/drivers/input/touchscreen/Makefile
index 687d5a7..d991815 100644
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
@@ -73,6 +73,7 @@ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9705)+= wm9705.o
 wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9712) += wm9712.o
 wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9713) += wm9713.o
 obj-$(CONFIG_TOUCHSCREEN_WM97XX_ATMEL) += atmel-wm97xx.o
+obj-$(CONFIG_TOUCHSCREEN_RM_TS)+= RM31100.o
 obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE) += mainstone-wm97xx.o
 obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE)  += zylonite-wm97xx.o
 obj-$(CONFIG_TOUCHSCREEN_W90X900)  += w90p910_ts.o
diff --git a/drivers/input/touchscreen/RM31100.c 
b/drivers/input/touchscreen/RM31100.c
new file mode 100644
index 000..78cc80d
--- /dev/null
+++ b/drivers/input/touchscreen/RM31100.c
@@ -0,0 +1,972 @@
+/* Source for:
+ * Raydium RM31100 Prototype touchscreen driver.
+ * drivers/input/touchscreen/RM31100.c
+ *
+ * Copyright (C) 2012,
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2, and only version 2, as published by the
+ * Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * Raydium reserves the right to make changes without further notice
+ * to the materials described herein. Raydium does not assume any
+ * liability arising out of the application described herein.
+ *
+ * Contact Raydium Semiconductor Corporation at www.rad-ic.com
+ *
+ * History:
+ * (C) 2012 Raydium - Update for GPL distribution
+ * (C) 2009 Enea - Original prototype
+ *
+ */
+
+#include linux/init.h
+#include linux/module.h
+#include linux/i2c.h
+#include linux/input.h
+#include linux/slab.h
+#include linux/interrupt.h
+#include linux/irq.h
+#include linux/gpio.h
+#include linux/workqueue.h
+#include linux/mutex.h
+#include linux/delay.h
+#include linux/input/RM31100.h
+#include linux/pm.h
+#include linux/pm_runtime.h
+/*#include plat/gpio-cfg.h*/
+#include linux/miscdevice.h
+/*#include asm/uaccess.h copy_to_user() */
+#include linux/uaccess.h
+
+
+#if 0/*defined(CONFIG_HAS_EARLYSUSPEND)*/
+#include linux/earlysuspend.h
+
+/* Early-suspend level */
+#define RM31100_TS_SUSPEND_LEVEL 1
+#endif
+
+#define RM311000x0
+#define RM3110x0x1
+
+#define INVALID_DATA   0xff
+
+#define TOUCHSCREEN_TIMEOUT(msecs_to_jiffies(10))
+#define INITIAL_DELAY  (msecs_to_jiffies(25000))
+
+#define EVAL_REPORT_RATE1
+
+#define I2C_CLIENT_ADDR 0x39
+#define I2C_DMA_CLIENT_ADDR 0x5A
+#undef CONFIG_PM
+struct RM31100_ts_data {
+   u8 x_index;
+   u8 y_index;
+   u8 z_index;
+   u8 id_index;
+   u8 touch_index;
+   u8 data_reg;
+   u8 status_reg;
+   u8 data_size;
+   u8 touch_bytes;
+   u8 update_data;
+   u8 touch_meta_data;
+   u8 finger_size;
+};
+
+static struct RM31100_ts_data devices[] = {
+   [0] = {
+   .x_index = 2,
+   .y_index = 4,
+   .z_index = 6,
+   .id_index = 1,
+   .data_reg = 0x1,
+   .status_reg = 0,
+   .update_data = 0x0,/*0x4*/
+  

Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-11-19 Thread Daniel Mack
On 11/19/2014 04:30 PM, jeffrey.lin wrote:
 From: jeffrey.lin jeffrey@gmail.com
 
 this patch is porting Raydium I2C touch driver. Developer can enable
 raydium touch driver by modifying define CONFIG_TOUCHSCREEN_RM_TS.
 
 BUG: None
 TEST: built and test with peppy
 
 Signed-off-by: jeffrey@rad-ic.com
 Change-Id: I05d54e5ef29249d2a6eae97222c90bed11e839f9
 ---

Just some general remarks that IMO need to be addressed before a more
thorough review can happen:


* Please remove all dead code, such as code in comments and in #if 0
  blocks.

* Use the regmap framework to abstract the hardware access on the I2C
  layer (see drivers/input/keyboard/cap1106.c and many other drivers
  as an example, and check include/linux/regmap.h). That makes the code
  a lot shorter and more comprehensible to read.

* By using request_threaded_irq(), you don't have to manually control
  your worker and can simplify your code quite a bit.

* See if you can claim all the resources the driver needs by using
  devm_* variants.

* Don't use uppercase names for filenames, structs, functions and IDs

* Why do you need a miscdevice for this? Isn't the input event layer
  enough?

* Also, run scripts/checkpatch.pl on the new patch, which will help
  you find some more typical pitfalls.



Thanks,
Daniel


  drivers/input/touchscreen/Kconfig   |  12 +
  drivers/input/touchscreen/Makefile  |   1 +
  drivers/input/touchscreen/RM31100.c | 972 
 
  include/linux/input/RM31100.h   |  60 +++
  4 files changed, 1045 insertions(+)
  create mode 100644 drivers/input/touchscreen/RM31100.c
  create mode 100644 include/linux/input/RM31100.h
 
 diff --git a/drivers/input/touchscreen/Kconfig 
 b/drivers/input/touchscreen/Kconfig
 index 3ce9181..b692036 100644
 --- a/drivers/input/touchscreen/Kconfig
 +++ b/drivers/input/touchscreen/Kconfig
 @@ -98,6 +98,18 @@ config TOUCHSCREEN_ATMEL_MXT
 To compile this driver as a module, choose M here: the
 module will be called atmel_mxt_ts.
  
 +config TOUCHSCREEN_RM_TS
 + tristate Raydium I2C Touchscreen
 + depends on I2C
 + help
 +   Say Y here if you have Raydium series I2C touchscreen,
 +   such as RM31100 , connected to your system.
 +
 +   If unsure, say N.
 +
 +   To compile this driver as a module, choose M here: the
 +   module will be called RM31100.
 +
  config TOUCHSCREEN_AUO_PIXCIR
   tristate AUO in-cell touchscreen using Pixcir ICs
   depends on I2C
 diff --git a/drivers/input/touchscreen/Makefile 
 b/drivers/input/touchscreen/Makefile
 index 687d5a7..d991815 100644
 --- a/drivers/input/touchscreen/Makefile
 +++ b/drivers/input/touchscreen/Makefile
 @@ -73,6 +73,7 @@ wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9705)  += wm9705.o
  wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9712)   += wm9712.o
  wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9713)   += wm9713.o
  obj-$(CONFIG_TOUCHSCREEN_WM97XX_ATMEL)   += atmel-wm97xx.o
 +obj-$(CONFIG_TOUCHSCREEN_RM_TS)  += RM31100.o
  obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE)   += mainstone-wm97xx.o
  obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE)+= zylonite-wm97xx.o
  obj-$(CONFIG_TOUCHSCREEN_W90X900)+= w90p910_ts.o
 diff --git a/drivers/input/touchscreen/RM31100.c 
 b/drivers/input/touchscreen/RM31100.c
 new file mode 100644
 index 000..78cc80d
 --- /dev/null
 +++ b/drivers/input/touchscreen/RM31100.c
 @@ -0,0 +1,972 @@
 +/* Source for:
 + * Raydium RM31100 Prototype touchscreen driver.
 + * drivers/input/touchscreen/RM31100.c
 + *
 + * Copyright (C) 2012,
 + *
 + * This program is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU General Public License
 + * version 2, and only version 2, as published by the
 + * Free Software Foundation.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + * GNU General Public License for more details.
 + *
 + * Raydium reserves the right to make changes without further notice
 + * to the materials described herein. Raydium does not assume any
 + * liability arising out of the application described herein.
 + *
 + * Contact Raydium Semiconductor Corporation at www.rad-ic.com
 + *
 + * History:
 + *   (C) 2012 Raydium - Update for GPL distribution
 + *   (C) 2009 Enea - Original prototype
 + *
 + */
 +
 +#include linux/init.h
 +#include linux/module.h
 +#include linux/i2c.h
 +#include linux/input.h
 +#include linux/slab.h
 +#include linux/interrupt.h
 +#include linux/irq.h
 +#include linux/gpio.h
 +#include linux/workqueue.h
 +#include linux/mutex.h
 +#include linux/delay.h
 +#include linux/input/RM31100.h
 +#include linux/pm.h
 +#include linux/pm_runtime.h
 +/*#include plat/gpio-cfg.h*/
 +#include linux/miscdevice.h
 +/*#include asm/uaccess.h copy_to_user() */
 +#include linux/uaccess.h
 +
 +
 +#if 

Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-11-19 Thread Benson Leung
Hi Jeffrey,

On Wed, Nov 19, 2014 at 7:30 AM, jeffrey.lin yaj...@gmail.com wrote:
 From: jeffrey.lin jeffrey@gmail.com

 this patch is porting Raydium I2C touch driver. Developer can enable
 raydium touch driver by modifying define CONFIG_TOUCHSCREEN_RM_TS.

 BUG: None
 TEST: built and test with peppy
These two lines serve no purpose in the upstream kernel. Please remove them.


 Signed-off-by: jeffrey@rad-ic.com
 Change-Id: I05d54e5ef29249d2a6eae97222c90bed11e839f9
The Change-Id: line is an artifact of the gerrit code review system.
Please remove it before sending patches upstream.




-- 
Benson Leung
Software Engineer, Chrom* OS
ble...@chromium.org
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-11-19 Thread Dmitry Torokhov
On Wed, Nov 19, 2014 at 05:44:48PM +0100, Daniel Mack wrote:
 On 11/19/2014 04:30 PM, jeffrey.lin wrote:
  From: jeffrey.lin jeffrey@gmail.com
  
  this patch is porting Raydium I2C touch driver. Developer can enable
  raydium touch driver by modifying define CONFIG_TOUCHSCREEN_RM_TS.
  
  BUG: None
  TEST: built and test with peppy
  
  Signed-off-by: jeffrey@rad-ic.com
  Change-Id: I05d54e5ef29249d2a6eae97222c90bed11e839f9
  ---
 
 Just some general remarks that IMO need to be addressed before a more
 thorough review can happen:
 
 
 * Please remove all dead code, such as code in comments and in #if 0
   blocks.
 
 * Use the regmap framework to abstract the hardware access on the I2C
   layer (see drivers/input/keyboard/cap1106.c and many other drivers
   as an example, and check include/linux/regmap.h). That makes the code
   a lot shorter and more comprehensible to read.
 
 * By using request_threaded_irq(), you don't have to manually control
   your worker and can simplify your code quite a bit.
 
 * See if you can claim all the resources the driver needs by using
   devm_* variants.
 
 * Don't use uppercase names for filenames, structs, functions and IDs
 
 * Why do you need a miscdevice for this? Isn't the input event layer
   enough?
 
 * Also, run scripts/checkpatch.pl on the new patch, which will help
   you find some more typical pitfalls.

Also please convert driver to MT-B (slotted) protocol (you are currently
using MT-Ai version).

And please remove join_bytes(). It is called get_unaligned_le16().

Most of the things that need fixing have already been listed in response
to your original submission, please do address them before posting the
driver again.

Thanks.

-- 
Dmitry
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] driver: input: touchscreen: add Raydium i2c touchscreen driver

2014-11-19 Thread Benson Leung
On Wed, Nov 19, 2014 at 7:30 AM, jeffrey.lin yaj...@gmail.com wrote:
 From: jeffrey.lin jeffrey@gmail.com
Also, this email address appears to not be active. Please do not list
dead email addresses as the author.


 this patch is porting Raydium I2C touch driver. Developer can enable
 raydium touch driver by modifying define CONFIG_TOUCHSCREEN_RM_TS.

 BUG: None
 TEST: built and test with peppy

 Signed-off-by: jeffrey@rad-ic.com
 Change-Id: I05d54e5ef29249d2a6eae97222c90bed11e839f9
 ---




-- 
Benson Leung
Software Engineer, Chrom* OS
ble...@chromium.org
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/