From patchwork Sat Oct 9 11:43:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 12547529 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4A8C9C433F5 for ; Sat, 9 Oct 2021 11:43:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 31B6F60FE3 for ; Sat, 9 Oct 2021 11:43:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233006AbhJILp0 (ORCPT ); Sat, 9 Oct 2021 07:45:26 -0400 Received: from new3-smtp.messagingengine.com ([66.111.4.229]:38751 "EHLO new3-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232933AbhJILp0 (ORCPT ); Sat, 9 Oct 2021 07:45:26 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailnew.nyi.internal (Postfix) with ESMTP id CAC1C580542; Sat, 9 Oct 2021 07:43:28 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Sat, 09 Oct 2021 07:43:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alistair23.me; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; s=fm2; bh=qaUqksoNnwhMxXafs7u0XKkHPB HK7yNaTZWp2E6vOls=; b=kyQ/cjvn6eLjCAl6YrSnePFJgYbrpUPjRkXwz/0QKE sztVjBCw1CCdcgEuGmqgf0ykBpxu3Jhdann+bf1hDd24o0tfC+chWvb/rNUWTBto VnTt4PH6WuqXMrWTug71fkTIXGv7wzl0q6aJyIbEv4wFwozr+/JhpWS3SmM81AAi 072O26LosPXvflS94e7H5c7xei0i87aIKkh6Ke7WMMBisBIWLOxzL9X8SF1RNNxK 7NBsAnRnbeh8tWkbQhktZ4ZbaqZKg/na/0Nf1mqwq8SMT93CWQf0A9MHOl0l90VT q5Zb30k1wMMl8EzPvG7P1H7EQAwIhL2BEcux5jf2Ypsw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=qaUqksoNnwhMxXafs 7u0XKkHPBHK7yNaTZWp2E6vOls=; b=EffMQS3TXAU6XNrR4+YDXk8+T15LrU5Dl ocwDQZimm5fHy9yM2N9d7xuwkGt0cQArlV51XuR4fXjZEJicCqL2Gbc4ciug66Bl Q0BLiIbkCBAES8KRZtSAITz87ReO5YR+FWfy5JbZWksPa8GxAnaw9DOawxiGchCP rRv12f8aB9Uqm234sVi5oCnepzA72nfOlItGNZStZhhyheZKIDTaF0JmkK5pjmXE J7GHaitYYNwXlvCllRf0kuS/5CeChIOcT2Ib+HzURekcvb4yIQ0AEJiD5XMPQXme MJnv14x1aMrny8zp/WV1hCnnH+mCl+0n3BEr4z/3osiSRbxiNfpJQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrvddtvddggedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgggfestdekredtre dttdenucfhrhhomheptehlihhsthgrihhrucfhrhgrnhgtihhsuceorghlihhsthgrihhr segrlhhishhtrghirhdvfedrmhgvqeenucggtffrrghtthgvrhhnpeejleeihfdvtefgtd ethfdtgefftdeiffefjeeiffefveeuleejheejvefhffeukeenucevlhhushhtvghrufhi iigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrlhhishhtrghirhesrghlihhsth grihhrvdefrdhmvg X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 9 Oct 2021 07:43:24 -0400 (EDT) From: Alistair Francis To: dmitry.torokhov@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de Cc: linux-imx@nxp.com, jikos@kernel.org, benjamin.tissoires@redhat.com, linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, alistair23@gmail.com, Alistair Francis Subject: [PATCH v11 1/4] HID: wacom_sys: Add support for flipping the data values Date: Sat, 9 Oct 2021 21:43:10 +1000 Message-Id: <20211009114313.17967-1-alistair@alistair23.me> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Add support to the Wacom HID device for flipping the values based on device tree settings. This allows us to support devices where the panel is installed in a different orientation, such as the reMarkable2. Signed-off-by: Alistair Francis Reviewed-by: Rob Herring --- .../bindings/input/hid-over-i2c.txt | 20 ++++++ drivers/hid/wacom_sys.c | 25 ++++++++ drivers/hid/wacom_wac.c | 61 +++++++++++++++++++ drivers/hid/wacom_wac.h | 13 ++++ 4 files changed, 119 insertions(+) diff --git a/Documentation/devicetree/bindings/input/hid-over-i2c.txt b/Documentation/devicetree/bindings/input/hid-over-i2c.txt index c76bafaf98d2..16ebd7c46049 100644 --- a/Documentation/devicetree/bindings/input/hid-over-i2c.txt +++ b/Documentation/devicetree/bindings/input/hid-over-i2c.txt @@ -33,6 +33,26 @@ device-specific compatible properties, which should be used in addition to the - post-power-on-delay-ms: time required by the device after enabling its regulators or powering it on, before it is ready for communication. + flip-tilt-x: + type: boolean + description: Flip the tilt X values read from device + + flip-tilt-y: + type: boolean + description: Flip the tilt Y values read from device + + flip-pos-x: + type: boolean + description: Flip the X position values read from device + + flip-pos-y: + type: boolean + description: Flip the Y position values read from device + + flip-distance: + type: boolean + description: Flip the distance values read from device + Example: i2c-hid-dev@2c { diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c index 93f49b766376..47d9590b10bd 100644 --- a/drivers/hid/wacom_sys.c +++ b/drivers/hid/wacom_sys.c @@ -10,6 +10,7 @@ #include "wacom_wac.h" #include "wacom.h" +#include #include #define WAC_MSG_RETRIES 5 @@ -2730,6 +2731,28 @@ static void wacom_mode_change_work(struct work_struct *work) return; } +static void wacom_of_read(struct hid_device *hdev, struct wacom_wac *wacom_wac) +{ + if (IS_ENABLED(CONFIG_OF)) { + wacom_wac->flip_tilt_x = of_property_read_bool(hdev->dev.parent->of_node, + "flip-tilt-x"); + wacom_wac->flip_tilt_y = of_property_read_bool(hdev->dev.parent->of_node, + "flip-tilt-y"); + wacom_wac->flip_pos_x = of_property_read_bool(hdev->dev.parent->of_node, + "flip-pos-x"); + wacom_wac->flip_pos_y = of_property_read_bool(hdev->dev.parent->of_node, + "flip-pos-y"); + wacom_wac->flip_distance = of_property_read_bool(hdev->dev.parent->of_node, + "flip-distance"); + } else { + wacom_wac->flip_tilt_x = false; + wacom_wac->flip_tilt_y = false; + wacom_wac->flip_pos_x = false; + wacom_wac->flip_pos_y = false; + wacom_wac->flip_distance = false; + } +} + static int wacom_probe(struct hid_device *hdev, const struct hid_device_id *id) { @@ -2797,6 +2820,8 @@ static int wacom_probe(struct hid_device *hdev, error); } + wacom_of_read(hdev, wacom_wac); + wacom_wac->probe_complete = true; return 0; } diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c index 33a6908995b1..c01f683e23fa 100644 --- a/drivers/hid/wacom_wac.c +++ b/drivers/hid/wacom_wac.c @@ -3261,6 +3261,63 @@ static int wacom_status_irq(struct wacom_wac *wacom_wac, size_t len) return 0; } +static int wacom_of_irq(struct wacom_wac *wacom_wac, size_t len) +{ + const struct wacom_features *features = &wacom_wac->features; + unsigned char *data = wacom_wac->data; + struct input_dev *input = wacom_wac->pen_input; + unsigned int x, y, pressure; + unsigned char tsw, f1, f2, ers; + short tilt_x, tilt_y, distance; + + if (!IS_ENABLED(CONFIG_OF)) + return 0; + + tsw = data[1] & WACOM_TIP_SWITCH_bm; + ers = data[1] & WACOM_ERASER_bm; + f1 = data[1] & WACOM_BARREL_SWITCH_bm; + f2 = data[1] & WACOM_BARREL_SWITCH_2_bm; + x = le16_to_cpup((__le16 *)&data[2]); + y = le16_to_cpup((__le16 *)&data[4]); + pressure = le16_to_cpup((__le16 *)&data[6]); + + /* Signed */ + tilt_x = get_unaligned_le16(&data[9]); + tilt_y = get_unaligned_le16(&data[11]); + + distance = get_unaligned_le16(&data[13]); + + /* keep touch state for pen events */ + if (!wacom_wac->shared->touch_down) + wacom_wac->tool[0] = (data[1] & 0x0c) ? + BTN_TOOL_RUBBER : BTN_TOOL_PEN; + + wacom_wac->shared->touch_down = data[1] & 0x20; + + // Flip the values based on properties from the device tree + + // Default to a negative value for distance as HID compliant Wacom + // devices generally specify the hovering distance as negative. + distance = wacom_wac->flip_distance ? distance : -distance; + x = wacom_wac->flip_pos_x ? (features->x_max - x) : x; + y = wacom_wac->flip_pos_y ? (features->y_max - y) : y; + tilt_x = wacom_wac->flip_tilt_x ? -tilt_x : tilt_x; + tilt_y = wacom_wac->flip_tilt_y ? -tilt_y : tilt_y; + + input_report_key(input, BTN_TOUCH, tsw || ers); + input_report_key(input, wacom_wac->tool[0], wacom_wac->shared->touch_down); + input_report_key(input, BTN_STYLUS, f1); + input_report_key(input, BTN_STYLUS2, f2); + input_report_abs(input, ABS_X, x); + input_report_abs(input, ABS_Y, y); + input_report_abs(input, ABS_PRESSURE, pressure); + input_report_abs(input, ABS_DISTANCE, distance); + input_report_abs(input, ABS_TILT_X, tilt_x); + input_report_abs(input, ABS_TILT_Y, tilt_y); + + return 1; +} + void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len) { bool sync; @@ -3379,6 +3436,10 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len) sync = wacom_remote_irq(wacom_wac, len); break; + case HID_GENERIC: + sync = wacom_of_irq(wacom_wac, len); + break; + default: sync = false; break; diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h index 8b2d4e5b2303..4dd5a56bf347 100644 --- a/drivers/hid/wacom_wac.h +++ b/drivers/hid/wacom_wac.h @@ -157,6 +157,14 @@ #define WACOM_HID_WT_Y (WACOM_HID_UP_WACOMTOUCH | 0x131) #define WACOM_HID_WT_REPORT_VALID (WACOM_HID_UP_WACOMTOUCH | 0x1d0) +// Bitmasks (for data[3]) +#define WACOM_TIP_SWITCH_bm (1 << 0) +#define WACOM_BARREL_SWITCH_bm (1 << 1) +#define WACOM_ERASER_bm (1 << 2) +#define WACOM_INVERT_bm (1 << 3) +#define WACOM_BARREL_SWITCH_2_bm (1 << 4) +#define WACOM_IN_RANGE_bm (1 << 5) + #define WACOM_BATTERY_USAGE(f) (((f)->hid == HID_DG_BATTERYSTRENGTH) || \ ((f)->hid == WACOM_HID_WD_BATTERY_CHARGING) || \ ((f)->hid == WACOM_HID_WD_BATTERY_LEVEL)) @@ -357,6 +365,11 @@ struct wacom_wac { bool has_mode_change; bool is_direct_mode; bool is_invalid_bt_frame; + bool flip_tilt_x; + bool flip_tilt_y; + bool flip_pos_x; + bool flip_pos_y; + bool flip_distance; }; #endif From patchwork Sat Oct 9 11:43:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 12547531 X-Patchwork-Delegate: jikos@jikos.cz Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD3CFC433EF for ; Sat, 9 Oct 2021 11:43:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C376E60F94 for ; Sat, 9 Oct 2021 11:43:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238204AbhJILpb (ORCPT ); Sat, 9 Oct 2021 07:45:31 -0400 Received: from new3-smtp.messagingengine.com ([66.111.4.229]:35625 "EHLO new3-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232933AbhJILpa (ORCPT ); Sat, 9 Oct 2021 07:45:30 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailnew.nyi.internal (Postfix) with ESMTP id A623658055B; Sat, 9 Oct 2021 07:43:33 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Sat, 09 Oct 2021 07:43:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alistair23.me; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=vG4rDoxLOurcR PRUON9TUlIYZV6lZNVLV2WNHonc82s=; b=eKaj2URk2c+EQHsDlAljxcUztVVub Mb4p0qdp0TLw+vdlRzjJPWwp48W5bGRqIfVv5imniJs63lbThxjzgoyk+UWY7P2C WXo+OEBand4QoJdaJKinAG++4zrNXOLByIFrlhgJaIrrmCN2X9CFKmUVmSti70Sy L63tJxmvc65I02ebGhMqqnIEr01xfnKK6WH9A++rFRsaccymfVzaF7Ks3Fu0f4jD dKGrQFDaBbTEwj7Tj3vheNUzpuh2F1Jp/d4j1mZizeN0zFkVhKlC6EIb1AaZdvNo KJNU46YeRvWzXEFsz+x3Ey/SCrdJ0SHYmHj3Ec2k6S6UFXR7xlfXjBoMg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=vG4rDoxLOurcRPRUON9TUlIYZV6lZNVLV2WNHonc82s=; b=DHJ0C9OG Ae1+P2ahV3880eSdcL5TZ0H7M3p2dLKupdRdOwd1NlIBaD/FhrC67hlDZQQjRBkl KRbsdjhBTR+66AYex7+V6/t30ZThrss7646FREfQnRIFOSeeCfSWPiKdg2kULoFj 02c4LYf1HxZhythi5Zav8X5vaVewurnjmn9pHcBhusGZ7VDeKzG9Ybqgkfti5gYi jGci0hcQSaackMX+plUv4oeb4eQ95GseJna76yK9TljgxpO6OTdybuo/lRynHWYn h+TT/QoaBv/dIehk4r4z4qe0JjXdEcQQuQp28ya8TMjKLxQ01mGD/urVkGwI02aY TjQpziKTgmaWhw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrvddtvddggedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomheptehlihhsthgrihhrucfhrhgrnhgtihhsuceorghlihhsthgr ihhrsegrlhhishhtrghirhdvfedrmhgvqeenucggtffrrghtthgvrhhnpeeggedtteejke eggeeugfehueevudegvdetjeeviedugedvtdekffekhedtteduhfenucevlhhushhtvghr ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrlhhishhtrghirhesrghlih hsthgrihhrvdefrdhmvg X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 9 Oct 2021 07:43:29 -0400 (EDT) From: Alistair Francis To: dmitry.torokhov@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de Cc: linux-imx@nxp.com, jikos@kernel.org, benjamin.tissoires@redhat.com, linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, alistair23@gmail.com, Alistair Francis Subject: [PATCH v11 2/4] HID: wacom: Add support for the AG14 Wacom device Date: Sat, 9 Oct 2021 21:43:11 +1000 Message-Id: <20211009114313.17967-2-alistair@alistair23.me> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211009114313.17967-1-alistair@alistair23.me> References: <20211009114313.17967-1-alistair@alistair23.me> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Add support for the AG14 Wacom digitiser connected via I2C. This is used on the reMarkable2 tablet. The vendor ID is different then the usual Wacom vendor ID, and I'm not sure why. Otherwise we can just use the generic HID type. Signed-off-by: Alistair Francis Reported-by: kernel test robot Reported-by: kernel test robot --- drivers/hid/hid-core.c | 1 + drivers/hid/hid-ids.h | 1 + drivers/hid/wacom_wac.c | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index dbed2524fd47..724bec1754bd 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -904,6 +904,7 @@ static int hid_scan_report(struct hid_device *hid) * Vendor specific handlings */ switch (hid->vendor) { + case USB_VENDOR_ID_I2C_WACOM: case USB_VENDOR_ID_WACOM: hid->group = HID_GROUP_WACOM; break; diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 29564b370341..daa0197445e7 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -1260,6 +1260,7 @@ #define USB_DEVICE_ID_VTL_MULTITOUCH_FF3F 0xff3f #define USB_VENDOR_ID_WACOM 0x056a +#define USB_VENDOR_ID_I2C_WACOM 0x2D1F #define USB_DEVICE_ID_WACOM_GRAPHIRE_BLUETOOTH 0x81 #define USB_DEVICE_ID_WACOM_INTUOS4_BLUETOOTH 0x00BD diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c index c01f683e23fa..6a800150933a 100644 --- a/drivers/hid/wacom_wac.c +++ b/drivers/hid/wacom_wac.c @@ -4814,6 +4814,9 @@ static const struct wacom_features wacom_features_0x3c8 = { "Wacom Intuos BT M", 21600, 13500, 4095, 63, INTUOSHT3_BT, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 }; +static const struct wacom_features wacom_features_0x95 = + { "Wacom AG14", .type = HID_GENERIC, .oVid = 0x2D1F, .oPid = 149 }; + static const struct wacom_features wacom_features_HID_ANY_ID = { "Wacom HID", .type = HID_GENERIC, .oVid = HID_ANY_ID, .oPid = HID_ANY_ID }; @@ -4829,6 +4832,10 @@ static const struct wacom_features wacom_features_HID_ANY_ID = HID_DEVICE(BUS_I2C, HID_GROUP_WACOM, USB_VENDOR_ID_WACOM, prod),\ .driver_data = (kernel_ulong_t)&wacom_features_##prod +#define I2C_AG14_DEVICE_WACOM(prod) \ + HID_DEVICE(BUS_I2C, HID_GROUP_WACOM, USB_VENDOR_ID_I2C_WACOM, prod),\ + .driver_data = (kernel_ulong_t)&wacom_features_##prod + #define USB_DEVICE_LENOVO(prod) \ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, prod), \ .driver_data = (kernel_ulong_t)&wacom_features_##prod @@ -4890,6 +4897,7 @@ const struct hid_device_id wacom_ids[] = { { USB_DEVICE_WACOM(0x84) }, { USB_DEVICE_WACOM(0x90) }, { USB_DEVICE_WACOM(0x93) }, + { I2C_AG14_DEVICE_WACOM(0x95) }, { USB_DEVICE_WACOM(0x97) }, { USB_DEVICE_WACOM(0x9A) }, { USB_DEVICE_WACOM(0x9F) }, From patchwork Sat Oct 9 11:43:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 12547533 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 44494C433F5 for ; Sat, 9 Oct 2021 11:43:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2ABEC60F70 for ; Sat, 9 Oct 2021 11:43:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244721AbhJILpj (ORCPT ); Sat, 9 Oct 2021 07:45:39 -0400 Received: from new3-smtp.messagingengine.com ([66.111.4.229]:52987 "EHLO new3-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244680AbhJILpe (ORCPT ); Sat, 9 Oct 2021 07:45:34 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailnew.nyi.internal (Postfix) with ESMTP id EC1B4580571; Sat, 9 Oct 2021 07:43:37 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Sat, 09 Oct 2021 07:43:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alistair23.me; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=J43BtjyZnQwL4 OMfKwgMiiGT+yp6DVRSuLYO3c4jh2I=; b=JMpZog+Hvk5/KYipXD6rrNZ5juqXp twjG/fqX/7N4AqpTkz8wJlTfSoKCqD/c7MRj3ngTDRIIqDtPUO8fhHDXwBqGeV1U egL5K2yCoiOfarq8hnFrgejWS3hUx2v+TW8PQUvXb3cH6gy0/l4LGWO8IS93gnn1 /hS+R22eih/UNI2Br7g2eE1JzYX8Bk3dMozTEAKgGcCyQGsrl9dYFDrYNgI0ECl2 1hvanaJpPP9U+dPUmLqs6M1rm2CEOVtmWveru9Nc/oYxaXmJlXwvZG5uzpTCEMRP h1XOYjgFwzbxOVNRJktX0gCq0UgZAujFfWD+vGcEZG3X2c8A8i3rczpVQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=J43BtjyZnQwL4OMfKwgMiiGT+yp6DVRSuLYO3c4jh2I=; b=Q5kbgMvj e9EYpeDiiB7Fn08mRm+1dkALbHplb9aCjq4q/7P+yNJ3AoohWAy/r4RUj/sBrhHB 9qo+HUd2kfQVjLCUsg0kUlrxn8yCNHmi6qJ5TuSS5ummcdmkV5dNUl0C6hRnmlmM yZSwRukpbqaDHhJz4uWP4y+HJ1rrhZ8AB2HRE4otx9odLdf8qhbCmohag5hkceNh x0P6jQwwC8/4Bm8+T/6OYZbdSk5bs6HRzhpx7bafV2biiXIyCfV1m6CcTkWacFC7 eMou3tnk5Ym7HvF562A0EhRutTYCxmN7xajBWRo2qs56gL0T9wUTN94LpZFDtFI2 AJHJ79blhddBSQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrvddtvddggedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomheptehlihhsthgrihhrucfhrhgrnhgtihhsuceorghlihhsthgr ihhrsegrlhhishhtrghirhdvfedrmhgvqeenucggtffrrghtthgvrhhnpeeggedtteejke eggeeugfehueevudegvdetjeeviedugedvtdekffekhedtteduhfenucevlhhushhtvghr ufhiiigvpedunecurfgrrhgrmhepmhgrihhlfhhrohhmpegrlhhishhtrghirhesrghlih hsthgrihhrvdefrdhmvg X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 9 Oct 2021 07:43:33 -0400 (EDT) From: Alistair Francis To: dmitry.torokhov@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de Cc: linux-imx@nxp.com, jikos@kernel.org, benjamin.tissoires@redhat.com, linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, alistair23@gmail.com, Alistair Francis Subject: [PATCH v11 3/4] ARM: imx_v6_v7_defconfig: Enable HID I2C Date: Sat, 9 Oct 2021 21:43:12 +1000 Message-Id: <20211009114313.17967-3-alistair@alistair23.me> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211009114313.17967-1-alistair@alistair23.me> References: <20211009114313.17967-1-alistair@alistair23.me> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Enable HID I2C in the imx defconfig as it is used for a HID compliant wacom device on the reMarkable2 tablet. Signed-off-by: Alistair Francis --- arch/arm/configs/imx_v6_v7_defconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/configs/imx_v6_v7_defconfig b/arch/arm/configs/imx_v6_v7_defconfig index ccee86d0045d..8a54a4d0181a 100644 --- a/arch/arm/configs/imx_v6_v7_defconfig +++ b/arch/arm/configs/imx_v6_v7_defconfig @@ -320,6 +320,8 @@ CONFIG_SND_SOC_WM8960=y CONFIG_SND_SOC_WM8962=y CONFIG_SND_SIMPLE_CARD=y CONFIG_HID_MULTITOUCH=y +CONFIG_HID_WACOM=y +CONFIG_I2C_HID_OF=y CONFIG_USB=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_EHCI_HCD=y From patchwork Sat Oct 9 11:43:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 12547535 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D59E3C433FE for ; Sat, 9 Oct 2021 11:43:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id BB84460F70 for ; Sat, 9 Oct 2021 11:43:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244738AbhJILpl (ORCPT ); Sat, 9 Oct 2021 07:45:41 -0400 Received: from new3-smtp.messagingengine.com ([66.111.4.229]:55419 "EHLO new3-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244718AbhJILpj (ORCPT ); Sat, 9 Oct 2021 07:45:39 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailnew.nyi.internal (Postfix) with ESMTP id 2CD525808B0; Sat, 9 Oct 2021 07:43:42 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Sat, 09 Oct 2021 07:43:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alistair23.me; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=N2p/XmNZUrQW2 HDkxVdkDiS3njrfPhuY82V1/7CD1fU=; b=brXUnVffvQLw1ocSwR1y7L3TKXblo lcBhhFHqNfWZV6h7HByl8ugmaK4+Dd8Tf+5nTsjSf2+LT/eYQKL8+c0WPC8yRsqp cQ7cD3pZPSYA6phyJci4xyuHwUDczY3yfvUOBRJ9kCSG5BLxg7uH749EBa5r8prd AWRd+VFyJ57nXE8dvI8V3F9V79bRigXD3V0fO7PvCzg4Oew3OMATG6c++iPWjFQy EITi2ilLB3Ov+xJvqEUWjpmq6rjwP16Y5Oawa85vSMlTNejhAr33yOYQ+h2wKjJi wq48+6V9iCcu6gwdRxJ8Z8RrnGPA+wtysUIRS0r4H8d2frUrm9DHB4TfA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; bh=N2p/XmNZUrQW2HDkxVdkDiS3njrfPhuY82V1/7CD1fU=; b=MGKkmlpm Hbzdp4uCV7YDANHbas5N7Zfky7Cm7gD7ixx10G5ZwgGYB0pbcWvvr2NqdMDp8R0k /FakV3uP5+dIzLF0Q4aO4T1A5LlXcC0f2ojXy4gpBCiyIATH5ni2k3mdgHRLabBY RPCEjvxsOf92fIGAMqQBdHsBe9tdqVBxkA1pqSI4AIvQS8F7tIqX0NA37mGqlpLk Oo/AQXeG+QvZVv0EdR7CBw4p//+grCy/ZPmoMpTNtzsXjM7fMvyhuWucNZvIoq5P emWu5dWmAXQEmlU0+wYDrQmmp1tQSQj9Bt7wYqLTErCvxSJ+14vpMK3Yyj6eY1wI StOLPhylbF8/pQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrvddtvddggedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgjfhgggfestdekre dtredttdenucfhrhhomheptehlihhsthgrihhrucfhrhgrnhgtihhsuceorghlihhsthgr ihhrsegrlhhishhtrghirhdvfedrmhgvqeenucggtffrrghtthgvrhhnpeeggedtteejke eggeeugfehueevudegvdetjeeviedugedvtdekffekhedtteduhfenucevlhhushhtvghr ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrlhhishhtrghirhesrghlih hsthgrihhrvdefrdhmvg X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 9 Oct 2021 07:43:38 -0400 (EDT) From: Alistair Francis To: dmitry.torokhov@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de Cc: linux-imx@nxp.com, jikos@kernel.org, benjamin.tissoires@redhat.com, linux-input@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, alistair23@gmail.com, Alistair Francis Subject: [PATCH v11 4/4] ARM: dts: imx7d: remarkable2: add wacom digitizer device Date: Sat, 9 Oct 2021 21:43:13 +1000 Message-Id: <20211009114313.17967-4-alistair@alistair23.me> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211009114313.17967-1-alistair@alistair23.me> References: <20211009114313.17967-1-alistair@alistair23.me> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Signed-off-by: Alistair Francis Reported-by: kernel test robot --- arch/arm/boot/dts/imx7d-remarkable2.dts | 62 +++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/arch/arm/boot/dts/imx7d-remarkable2.dts b/arch/arm/boot/dts/imx7d-remarkable2.dts index 89cbf13097a4..2099784d6515 100644 --- a/arch/arm/boot/dts/imx7d-remarkable2.dts +++ b/arch/arm/boot/dts/imx7d-remarkable2.dts @@ -34,6 +34,19 @@ reg_brcm: regulator-brcm { startup-delay-us = <150>; }; + reg_digitizer: regulator-digitizer { + compatible = "regulator-fixed"; + regulator-name = "VDD_3V3_DIGITIZER"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pinctrl_digitizer_reg>; + pinctrl-1 = <&pinctrl_digitizer_reg>; + gpio = <&gpio1 6 GPIO_ACTIVE_HIGH>; + enable-active-high; + startup-delay-us = <100000>; /* 100 ms */ + }; + wifi_pwrseq: wifi_pwrseq { compatible = "mmc-pwrseq-simple"; pinctrl-names = "default"; @@ -51,6 +64,29 @@ &clks { assigned-clock-rates = <0>, <32768>; }; +&i2c1 { + clock-frequency = <400000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c1>; + status = "okay"; + + wacom_digitizer: digitizer@9 { + compatible = "hid-over-i2c"; + reg = <0x09>; + hid-descr-addr = <0x01>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_wacom>; + interrupt-parent = <&gpio1>; + interrupts = <1 IRQ_TYPE_LEVEL_LOW>; + flip-tilt-x; + flip-tilt-y; + flip-pos-x; + flip-pos-y; + flip-distance; + vdd-supply = <®_digitizer>; + }; +}; + &snvs_pwrkey { status = "okay"; }; @@ -117,6 +153,25 @@ &wdog1 { fsl,ext-reset-output; }; +&iomuxc_lpsr { + pinctrl_digitizer_reg: digitizerreggrp { + fsl,pins = < + /* DIGITIZER_PWR_EN */ + MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6 0x14 + >; + }; + + pinctrl_wacom: wacomgrp { + fsl,pins = < + /*MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5 0x00000014 /* FWE */ + MX7D_PAD_LPSR_GPIO1_IO04__GPIO1_IO4 0x00000074 /* PDCTB */ + MX7D_PAD_LPSR_GPIO1_IO01__GPIO1_IO1 0x00000034 /* WACOM INT */ + /*MX7D_PAD_LPSR_GPIO1_IO06__GPIO1_IO6 0x00000014 /* WACOM PWR ENABLE */ + /*MX7D_PAD_LPSR_GPIO1_IO00__GPIO1_IO0 0x00000074 /* WACOM RESET */ + >; + }; +}; + &iomuxc { pinctrl_brcm_reg: brcmreggrp { fsl,pins = < @@ -125,6 +180,13 @@ MX7D_PAD_SAI1_TX_BCLK__GPIO6_IO13 0x14 >; }; + pinctrl_i2c1: i2c1grp { + fsl,pins = < + MX7D_PAD_I2C1_SDA__I2C1_SDA 0x4000007f + MX7D_PAD_I2C1_SCL__I2C1_SCL 0x4000007f + >; + }; + pinctrl_uart1: uart1grp { fsl,pins = < MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX 0x79