From: Alistair Francis <alistair@alistair23.me>
To: dmitry.torokhov@gmail.com, linux-input@vger.kernel.org,
linux-imx@nxp.com, kernel@pengutronix.de
Cc: linux-kernel@vger.kernel.org, alistair23@gmail.com,
Alistair Francis <alistair@alistair23.me>
Subject: [PATCH v5 6/9] Input: wacom_i2c - Clean up the query device fields
Date: Mon, 19 Apr 2021 07:01:01 +1000 [thread overview]
Message-ID: <20210418210104.2876-6-alistair@alistair23.me> (raw)
In-Reply-To: <20210418210104.2876-1-alistair@alistair23.me>
Improve the query device fields to be more verbose.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
---
drivers/input/touchscreen/wacom_i2c.c | 64 ++++++++++++++++++---------
1 file changed, 44 insertions(+), 20 deletions(-)
diff --git a/drivers/input/touchscreen/wacom_i2c.c b/drivers/input/touchscreen/wacom_i2c.c
index e0a69e63204d..26881149d509 100644
--- a/drivers/input/touchscreen/wacom_i2c.c
+++ b/drivers/input/touchscreen/wacom_i2c.c
@@ -13,15 +13,32 @@
#include <linux/irq.h>
#include <linux/input/touchscreen.h>
#include <linux/interrupt.h>
+#include <linux/reset.h>
#include <linux/of.h>
#include <asm/unaligned.h>
-#define WACOM_CMD_QUERY0 0x04
-#define WACOM_CMD_QUERY1 0x00
-#define WACOM_CMD_QUERY2 0x33
-#define WACOM_CMD_QUERY3 0x02
-#define WACOM_CMD_THROW0 0x05
-#define WACOM_CMD_THROW1 0x00
+// Registers
+#define WACOM_COMMAND_LSB 0x04
+#define WACOM_COMMAND_MSB 0x00
+
+#define WACOM_DATA_LSB 0x05
+#define WACOM_DATA_MSB 0x00
+
+// Report types
+#define REPORT_FEATURE 0x30
+
+// Requests / operations
+#define OPCODE_GET_REPORT 0x02
+
+// Power settings
+#define POWER_ON 0x00
+#define POWER_SLEEP 0x01
+
+// Input report ids
+#define WACOM_PEN_DATA_REPORT 2
+#define WACOM_SHINONOME_REPORT 26
+
+#define WACOM_QUERY_REPORT 3
#define WACOM_QUERY_SIZE 22
#define WACOM_DISTANCE_TILT_VERSION 0x30
@@ -50,27 +67,30 @@ static int wacom_query_device(struct i2c_client *client,
struct wacom_features *features)
{
int ret;
- u8 cmd1[] = { WACOM_CMD_QUERY0, WACOM_CMD_QUERY1,
- WACOM_CMD_QUERY2, WACOM_CMD_QUERY3 };
- u8 cmd2[] = { WACOM_CMD_THROW0, WACOM_CMD_THROW1 };
u8 data[WACOM_QUERY_SIZE];
+
+ u8 get_query_data_cmd[] = {
+ WACOM_COMMAND_LSB,
+ WACOM_COMMAND_MSB,
+ REPORT_FEATURE | WACOM_QUERY_REPORT,
+ OPCODE_GET_REPORT,
+ WACOM_DATA_LSB,
+ WACOM_DATA_MSB,
+ };
+
struct i2c_msg msgs[] = {
+ // Request reading of feature ReportID: 3 (Pen Query Data)
{
.addr = client->addr,
.flags = 0,
- .len = sizeof(cmd1),
- .buf = cmd1,
- },
- {
- .addr = client->addr,
- .flags = 0,
- .len = sizeof(cmd2),
- .buf = cmd2,
+ .len = sizeof(get_query_data_cmd),
+ .buf = get_query_data_cmd,
},
+ // Read 21 bytes
{
.addr = client->addr,
.flags = I2C_M_RD,
- .len = sizeof(data),
+ .len = WACOM_QUERY_SIZE - 1,
.buf = data,
},
};
@@ -98,9 +118,13 @@ static int wacom_query_device(struct i2c_client *client,
}
dev_dbg(&client->dev,
- "x_max:%d, y_max:%d, pressure:%d, fw:%d\n",
+ "x_max:%d, y_max:%d, pressure:%d, fw:%d, "
+ "distance: %d, phys distance: %d, "
+ "tilt_x_max: %d, tilt_y_max: %d\n",
features->x_max, features->y_max,
- features->pressure_max, features->fw_version);
+ features->pressure_max, features->fw_version,
+ features->distance_max, features->distance_physical_max,
+ features->tilt_x_max, features->tilt_y_max);
return 0;
}
--
2.31.1
next prev parent reply other threads:[~2021-04-19 8:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-18 21:00 [PATCH v5 1/9] dt-bindings: Add Wacom to vendor bindings Alistair Francis
2021-04-18 21:00 ` [PATCH v5 2/9] dt-bindings: touchscreen: Initial commit of wacom,generic Alistair Francis
2021-04-18 21:00 ` [PATCH v5 3/9] Input: wacom_i2c - Add device tree support to wacom_i2c Alistair Francis
2021-04-18 21:00 ` [PATCH v5 4/9] Input: wacom_i2c - Add touchscren properties Alistair Francis
2021-04-18 21:01 ` [PATCH v5 5/9] Input: wacom_i2c - Add support for distance and tilt x/y Alistair Francis
2021-04-18 21:01 ` Alistair Francis [this message]
2021-04-18 21:01 ` [PATCH v5 7/9] Input: wacom_i2c - Add support for vdd regulator Alistair Francis
2021-04-18 21:01 ` [PATCH v5 8/9] ARM: imx_v6_v7_defconfig: Enable Wacom I2C Alistair Francis
2021-04-18 21:01 ` [PATCH v5 9/9] ARM: dts: imx7d: remarkable2: add wacom digitizer device Alistair Francis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210418210104.2876-6-alistair@alistair23.me \
--to=alistair@alistair23.me \
--cc=alistair23@gmail.com \
--cc=dmitry.torokhov@gmail.com \
--cc=kernel@pengutronix.de \
--cc=linux-imx@nxp.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.