From: Alistair Francis <alistair@alistair23.me>
To: dmitry.torokhov@gmail.com, linux-input@vger.kernel.org,
linux-imx@nxp.com, kernel@pengutronix.de, pinglinux@gmail.com,
tatsunosuke.tobita@wacom.com, junkpainting@gmail.com,
ping.cheng@wacom.com
Cc: linux-kernel@vger.kernel.org, alistair23@gmail.com,
robh+dt@kernel.org, devicetree@vger.kernel.org,
Alistair Francis <alistair@alistair23.me>
Subject: [PATCH v10 07/12] Input: wacom_i2c - Clean up the query device fields
Date: Sun, 29 Aug 2021 19:19:20 +1000 [thread overview]
Message-ID: <20210829091925.190-9-alistair@alistair23.me> (raw)
In-Reply-To: <20210829091925.190-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 | 63 ++++++++++++++++++---------
1 file changed, 43 insertions(+), 20 deletions(-)
diff --git a/drivers/input/touchscreen/wacom_i2c.c b/drivers/input/touchscreen/wacom_i2c.c
index d6036406a9f3..a35d8fda7e7b 100644
--- a/drivers/input/touchscreen/wacom_i2c.c
+++ b/drivers/input/touchscreen/wacom_i2c.c
@@ -13,16 +13,33 @@
#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>
+// Registers
#define WACOM_DESC_REG 0x01
-#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
+#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_MAX_DATA_SIZE_BG9 10
@@ -85,27 +102,30 @@ static int wacom_query_device(struct i2c_client *client,
{
int ret;
u8 cmd_wac_desc[] = {WACOM_DESC_REG, 0x00};
- 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,
},
};
@@ -158,9 +178,12 @@ 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, 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->tilt_x_max, features->tilt_y_max);
return 0;
}
--
2.31.1
next prev parent reply other threads:[~2021-08-29 9:20 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-29 9:19 [PATCH v10 00/12] Add Wacom I2C support to rM2 Alistair Francis
2021-08-29 9:19 ` [PATCH v10 01/12] dt-bindings: Add Wacom to vendor bindings Alistair Francis
2021-08-29 9:19 ` [PATCH] Input: wacom_i2c - Allow flipping the values from the DT Alistair Francis
2021-08-29 9:19 ` [PATCH v10 02/12] dt-bindings: touchscreen: Initial commit of wacom,i2c Alistair Francis
2021-08-29 9:19 ` [PATCH v10 03/12] Input: wacom_i2c - Add device tree support to wacom_i2c Alistair Francis
2021-08-29 9:19 ` [PATCH v10 04/12] Input: wacom_i2c - Add touchscren properties Alistair Francis
2021-08-29 9:19 ` [PATCH v10 05/12] Input: wacom_i2c - Read the descriptor values Alistair Francis
2021-08-30 20:44 ` Dmitry Torokhov
[not found] ` <PA4PR07MB7407FE9FE271191AC52F7EA387CE9@PA4PR07MB7407.eurprd07.prod.outlook.com>
2021-09-07 6:05 ` Dmitry Torokhov
[not found] ` <CAF8JNh+PcYuaLL=ToS0hOT62YbVmMWY9BCT-CGx_x+AkKuO_Tw@mail.gmail.com>
2021-09-08 5:55 ` Dmitry Torokhov
2021-09-10 4:10 ` Tobita, Tatsunosuke
2021-10-06 7:08 ` Tobita, Tatsunosuke
2021-10-06 18:02 ` Dmitry Torokhov
2021-10-12 23:41 ` Tobita, Tatsunosuke
2021-09-17 20:43 ` Ping Cheng
2021-09-21 4:35 ` Dmitry Torokhov
2021-09-29 7:50 ` Alistair Francis
2021-08-29 9:19 ` [PATCH v10 06/12] Input: wacom_i2c - Add support for distance and tilt x/y Alistair Francis
2021-08-29 9:19 ` Alistair Francis [this message]
2021-08-31 22:28 ` [PATCH v10 07/12] Input: wacom_i2c - Clean up the query device fields Kari Argillander
2021-08-29 9:19 ` [PATCH v10 08/12] Input: wacom_i2c - Add support for vdd regulator Alistair Francis
2021-08-29 9:19 ` [PATCH v10 09/12] Input: wacom_i2c - Use macros for the bit masks Alistair Francis
2021-08-29 9:19 ` [PATCH v10 10/12] Input: wacom_i2c - Allow flipping the values from the DT Alistair Francis
2021-08-31 21:54 ` Rob Herring
2021-08-29 9:19 ` [PATCH v10 11/12] ARM: imx_v6_v7_defconfig: Enable Wacom I2C Alistair Francis
2021-08-29 9:19 ` [PATCH v10 12/12] 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=20210829091925.190-9-alistair@alistair23.me \
--to=alistair@alistair23.me \
--cc=alistair23@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=junkpainting@gmail.com \
--cc=kernel@pengutronix.de \
--cc=linux-imx@nxp.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ping.cheng@wacom.com \
--cc=pinglinux@gmail.com \
--cc=robh+dt@kernel.org \
--cc=tatsunosuke.tobita@wacom.com \
/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.