* [PATCH v11 2/4] HID: usbhid: Share USB device firmware node with child HID device
From: Danny Kaehn @ 2024-06-05 23:12 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Benjamin Tissoires,
Andy Shevchenko, Danny Kaehn
Cc: Jiri Kosina, devicetree, linux-input, Dmitry Torokhov,
Bartosz Golaszewski, Ethan Twardy
In-Reply-To: <20240605-cp2112-dt-v11-0-d55f0f945a62@plexus.com>
USB HID core now shares its fwnode with its child HID device.
Since there can only be one HID device on a USB interface, it is redundant
to specify a hid node under the USB device. This allows usb HID device
drivers to be described in firmware and make use of device properties.
Signed-off-by: Danny Kaehn <danny.kaehn@plexus.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/hid/usbhid/hid-core.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index a90ed2ceae84..cb687ea7325c 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -19,6 +19,7 @@
#include <linux/list.h>
#include <linux/mm.h>
#include <linux/mutex.h>
+#include <linux/property.h>
#include <linux/spinlock.h>
#include <asm/unaligned.h>
#include <asm/byteorder.h>
@@ -1374,6 +1375,7 @@ static int usbhid_probe(struct usb_interface *intf, const struct usb_device_id *
hid->hiddev_report_event = hiddev_report_event;
#endif
hid->dev.parent = &intf->dev;
+ device_set_node(&hid->dev, dev_fwnode(&intf->dev));
hid->bus = BUS_USB;
hid->vendor = le16_to_cpu(dev->descriptor.idVendor);
hid->product = le16_to_cpu(dev->descriptor.idProduct);
--
2.25.1
^ permalink raw reply related
* [PATCH v11 3/4] HID: cp2112: Fwnode Support
From: Danny Kaehn @ 2024-06-05 23:12 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Benjamin Tissoires,
Andy Shevchenko, Danny Kaehn
Cc: Jiri Kosina, devicetree, linux-input, Dmitry Torokhov,
Bartosz Golaszewski, Ethan Twardy
In-Reply-To: <20240605-cp2112-dt-v11-0-d55f0f945a62@plexus.com>
Support describing the CP2112's I2C and GPIO interfaces in firmware.
The GPIO chip shares a firmware node with the CP2112. The I2C child
node can either be a child with the name "i2c" or, in ACPI, a device
node with _ADR Zero.
Signed-off-by: Danny Kaehn <danny.kaehn@plexus.com>
---
drivers/hid/hid-cp2112.c | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/drivers/hid/hid-cp2112.c b/drivers/hid/hid-cp2112.c
index 20a0d1315d90..b78d81275065 100644
--- a/drivers/hid/hid-cp2112.c
+++ b/drivers/hid/hid-cp2112.c
@@ -27,6 +27,22 @@
#include <linux/usb/ch9.h>
#include "hid-ids.h"
+/**
+ * enum cp2112_child_acpi_cell_addrs - Child ACPI addresses for CP2112 sub-functions
+ * @CP2112_I2C_ADR: Address for I2C node
+ */
+enum cp2112_child_acpi_cell_addrs {
+ CP2112_I2C_ADR = 0,
+};
+
+/*
+ * CP2112 Fwnode child names.
+ * CP2112 sub-functions can be described by named fwnode children or by ACPI _ADR
+ */
+static const char * const cp2112_cell_names[] = {
+ [CP2112_I2C_ADR] = "i2c",
+};
+
#define CP2112_REPORT_MAX_LENGTH 64
#define CP2112_GPIO_CONFIG_LENGTH 5
#define CP2112_GPIO_GET_LENGTH 2
@@ -1195,7 +1211,10 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id)
struct cp2112_device *dev;
u8 buf[3];
struct cp2112_smbus_config_report config;
+ struct fwnode_handle *child;
struct gpio_irq_chip *girq;
+ const char *name;
+ u32 addr;
int ret;
dev = devm_kzalloc(&hdev->dev, sizeof(*dev), GFP_KERNEL);
@@ -1209,6 +1228,26 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id)
mutex_init(&dev->lock);
+ device_for_each_child_node(&hdev->dev, child) {
+ ret = acpi_get_local_address(ACPI_HANDLE_FWNODE(child), &addr);
+ if (ret) {
+ name = fwnode_get_name(child);
+ if (!name)
+ continue;
+ ret = match_string(cp2112_cell_names,
+ ARRAY_SIZE(cp2112_cell_names), name);
+ if (ret < 0)
+ continue;
+ addr = ret;
+ }
+
+ switch (addr) {
+ case CP2112_I2C_ADR:
+ device_set_node(&dev->adap.dev, child);
+ break;
+ }
+ }
+
ret = hid_parse(hdev);
if (ret) {
hid_err(hdev, "parse failed\n");
--
2.25.1
^ permalink raw reply related
* [PATCH v11 4/4] HID: cp2112: Configure I2C Bus Speed from Firmware
From: Danny Kaehn @ 2024-06-05 23:12 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Benjamin Tissoires,
Andy Shevchenko, Danny Kaehn
Cc: Jiri Kosina, devicetree, linux-input, Dmitry Torokhov,
Bartosz Golaszewski, Ethan Twardy
In-Reply-To: <20240605-cp2112-dt-v11-0-d55f0f945a62@plexus.com>
Now that the I2C adapter on the CP2112 can have an associated firmware
node, set the bus speed based on firmware configuration
Signed-off-by: Danny Kaehn <danny.kaehn@plexus.com>
---
drivers/hid/hid-cp2112.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/hid/hid-cp2112.c b/drivers/hid/hid-cp2112.c
index b78d81275065..547c2cbd410f 100644
--- a/drivers/hid/hid-cp2112.c
+++ b/drivers/hid/hid-cp2112.c
@@ -1213,6 +1213,7 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id)
struct cp2112_smbus_config_report config;
struct fwnode_handle *child;
struct gpio_irq_chip *girq;
+ struct i2c_timings timings;
const char *name;
u32 addr;
int ret;
@@ -1293,6 +1294,9 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id)
goto err_power_normal;
}
+ i2c_parse_fw_timings(&dev->adap.dev, &timings, true);
+
+ config.clock_speed = cpu_to_be32(timings.bus_freq_hz);
config.retry_time = cpu_to_be16(1);
ret = cp2112_hid_output(hdev, (u8 *)&config, sizeof(config),
--
2.25.1
^ permalink raw reply related
* Re: [PATCH v11 1/4] dt-bindings: i2c: Add CP2112 HID USB to SMBus Bridge
From: Rob Herring (Arm) @ 2024-06-06 0:18 UTC (permalink / raw)
To: Danny Kaehn
Cc: devicetree, Bartosz Golaszewski, Ethan Twardy, Jiri Kosina,
Krzysztof Kozlowski, Andy Shevchenko, Dmitry Torokhov,
linux-input, Benjamin Tissoires
In-Reply-To: <20240605-cp2112-dt-v11-1-d55f0f945a62@plexus.com>
On Wed, 05 Jun 2024 18:12:44 -0500, Danny Kaehn wrote:
> This is a USB HID device which includes an I2C controller and 8 GPIO pins.
>
> The binding allows describing the chip's gpio and i2c controller in DT
> using the subnodes named "gpio" and "i2c", respectively. This is
> intended to be used in configurations where the CP2112 is permanently
> connected in hardware.
>
> Signed-off-by: Danny Kaehn <danny.kaehn@plexus.com>
> ---
> .../devicetree/bindings/i2c/silabs,cp2112.yaml | 105 +++++++++++++++++++++
> 1 file changed, 105 insertions(+)
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
Error: Documentation/devicetree/bindings/i2c/silabs,cp2112.example.dts:41.13-29 Properties must precede subnodes
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:427: Documentation/devicetree/bindings/i2c/silabs,cp2112.example.dtb] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/builds/robherring/dt-review-ci/linux/Makefile:1430: dt_binding_check] Error 2
make: *** [Makefile:240: __sub-make] Error 2
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240605-cp2112-dt-v11-1-d55f0f945a62@plexus.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
^ permalink raw reply
* [PATCH v11 0/4] Firmware Support for USB-HID Devices and CP2112
From: Danny Kaehn @ 2024-06-05 23:12 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Benjamin Tissoires,
Andy Shevchenko, Danny Kaehn
Cc: Jiri Kosina, devicetree, linux-input, Dmitry Torokhov,
Bartosz Golaszewski, Ethan Twardy
This patchset allows USB-HID devices to have Firmware bindings through sharing
the USB fwnode with the HID driver, and adds such a binding and driver
implementation for the CP2112 USB to SMBus Bridge (which necessitated the
USB-HID change). This change allows a CP2112 permanently attached in hardware to
be described in DT and ACPI and interoperate with other drivers.
Changes in v11:
- Eliminate 'gpio' subnode for DT and ACPI for the CP2112 per comment
from Rob H.
- Edit hid-cp2112.c to match for ACPI index and fall back to matching by
name (instead of the other way around)
- Separate CP2112 I2C bus speed configuration into a separate patch
Changes in v10:
- Define an enumeration and mapping for CP2112 ACPI _ADRs and devicetree
child node names, and use these in the scanning of child nodes
- Address other miscellaneous
Changes in v9:
- Add _ADR-based ACPI binding of child nodes (I2C is _ADR Zero, GPIO is _ADR One)
- Use a loop-based approach for assigning child nodes within probe().
As a consequence, hid-cp2112.c no longer maintains references to the
child fwnodes during the lifetime of the device. (plese correct if this
is actually needed for this use-case)
Changes in v8:
- Apply Review tags retroactively to patches previously reviewed
Changes in v7:
- Use dev_fwnode when calling fwnod_handle_put in i2c_adapter in hid-cp2112.c
- Capitalize I2C and GPIO in commit message for patch 0003
Changes in v6:
- Fix fwnode_handle reference leaks in hid-cp21112.c
- Simplify hog node pattern in silabs,cp2112.yaml
Changes in v5:
- Use fwnode API instead of of_node api in hid-core.c and hid-cp2112.c
- Include sda-gpios and scl-gpios in silabs,cp2112.yaml
- Additional fixups to silabs,cp2112.yaml to address comments
- Submit threaded interrupt bugfix separately from this patchset, as requested
Changes in v4:
- Moved silabs,cp2112.yaml to /Documentation/devicetree/bindings/i2c
Changes in v3:
- Additional fixups to silabs,cp2112.yaml to address comments
Changes in v2:
- Added more detail to silabs,cp2112.yaml dt-binding
- Moved silabs,cp2112.yaml to /Documentation/devicetree/bindings/input
- Added support for setting smbus clock-frequency from DT in hid-cp2112.c
- Added freeing of of_nodes on error paths of _probe in hid-cp2112.c
Danny Kaehn (3):
dt-bindings: i2c: Add CP2112 HID USB to SMBus Bridge
HID: usbhid: Share USB device firmware node with child HID device
HID: cp2112: Fwnode Support
.../bindings/i2c/silabs,cp2112.yaml | 113 ++++++++++++++++++
drivers/hid/hid-cp2112.c | 50 ++++++++
drivers/hid/usbhid/hid-core.c | 2 +
3 files changed, 165 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/silabs,cp2112.yaml
--
2.25.1
---
Danny Kaehn (4):
dt-bindings: i2c: Add CP2112 HID USB to SMBus Bridge
HID: usbhid: Share USB device firmware node with child HID device
HID: cp2112: Fwnode Support
HID: cp2112: Configure I2C Bus Speed from Firmware
.../devicetree/bindings/i2c/silabs,cp2112.yaml | 105 +++++++++++++++++++++
drivers/hid/hid-cp2112.c | 43 +++++++++
drivers/hid/usbhid/hid-core.c | 2 +
3 files changed, 150 insertions(+)
---
base-commit: 4f54308c970692e66a2a354ac2bde32f228cedeb
change-id: 20240605-cp2112-dt-7cdc95448e8a
Best regards,
--
Danny Kaehn <danny.kaehn@plexus.com>
^ permalink raw reply
* Re: [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0
From: Rob Herring @ 2024-06-06 0:24 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: Dmitry Torokhov, Krzysztof Kozlowski, Conor Dooley, Benson Leung,
Guenter Roeck, linux-input, devicetree, chrome-platform,
linux-kernel
In-Reply-To: <20240604230909.2879006-1-dnojiri@chromium.org>
On Tue, Jun 04, 2024 at 04:09:07PM -0700, Daisuke Nojiri wrote:
> Add support for keyboard matrix version 3.0.
What's that?
Subject is wrong. This is not an ARM dts. 'dt-bindings: ' is the prefix.
>
> Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
> Change-Id: I18957556bcd01c74ded84571638de2583dccb93f
Drop Change-Id for upstream.
> ---
> include/dt-bindings/input/cros-ec-keyboard.h | 104 +++++++++++++++++++
> 1 file changed, 104 insertions(+)
>
> diff --git a/include/dt-bindings/input/cros-ec-keyboard.h b/include/dt-bindings/input/cros-ec-keyboard.h
> index f0ae03634a96..afc12f6aa642 100644
> --- a/include/dt-bindings/input/cros-ec-keyboard.h
> +++ b/include/dt-bindings/input/cros-ec-keyboard.h
> @@ -100,4 +100,108 @@
> MATRIX_KEY(0x07, 0x0b, KEY_UP) \
> MATRIX_KEY(0x07, 0x0c, KEY_LEFT)
>
> +/* No numpad */
> +#define CROS_TOP_ROW_KEYMAP_V30 \
> + MATRIX_KEY(0x00, 0x01, KEY_F11) /* T11 */ \
> + MATRIX_KEY(0x00, 0x02, KEY_F1) /* T1 */ \
> + MATRIX_KEY(0x00, 0x04, KEY_F10) /* T10 */ \
> + MATRIX_KEY(0x00, 0x0b, KEY_F14) /* T14 */ \
> + MATRIX_KEY(0x00, 0x0c, KEY_F15) /* T15 */ \
> + MATRIX_KEY(0x01, 0x02, KEY_F4) /* T4 */ \
> + MATRIX_KEY(0x01, 0x04, KEY_F7) /* T7 */ \
> + MATRIX_KEY(0x01, 0x05, KEY_F12) /* T12 */ \
> + MATRIX_KEY(0x01, 0x09, KEY_F9) /* T9 */ \
> + MATRIX_KEY(0x02, 0x02, KEY_F3) /* T3 */ \
> + MATRIX_KEY(0x02, 0x04, KEY_F6) /* T6 */ \
> + MATRIX_KEY(0x02, 0x0b, KEY_F8) /* T8 */ \
> + MATRIX_KEY(0x03, 0x02, KEY_F2) /* T2 */ \
> + MATRIX_KEY(0x03, 0x05, KEY_F13) /* T13 */ \
> + MATRIX_KEY(0x04, 0x04, KEY_F5) /* T5 */
> +
> +#define CROS_MAIN_KEYMAP_V30 /* Keycode */ \
> + MATRIX_KEY(0x00, 0x03, KEY_B) /* 50 */ \
> + MATRIX_KEY(0x00, 0x05, KEY_N) /* 51 */ \
> + MATRIX_KEY(0x00, 0x06, KEY_RO) /* 56 (JIS) */ \
> + MATRIX_KEY(0x00, 0x08, KEY_EQUAL) /* 13 */ \
> + MATRIX_KEY(0x00, 0x09, KEY_HOME) /* 80 (Numpad) */ \
> + MATRIX_KEY(0x00, 0x0a, KEY_RIGHTALT) /* 62 */ \
> + MATRIX_KEY(0x00, 0x10, KEY_FN) /* 127 */ \
> + \
> + MATRIX_KEY(0x01, 0x01, KEY_ESC) /* 110 */ \
> + MATRIX_KEY(0x01, 0x03, KEY_G) /* 35 */ \
> + MATRIX_KEY(0x01, 0x06, KEY_H) /* 36 */ \
> + MATRIX_KEY(0x01, 0x08, KEY_APOSTROPHE) /* 41 */ \
> + MATRIX_KEY(0x01, 0x0b, KEY_BACKSPACE) /* 15 */ \
> + MATRIX_KEY(0x01, 0x0c, KEY_HENKAN) /* 65 (JIS) */ \
> + MATRIX_KEY(0x01, 0x0e, KEY_LEFTCTRL) /* 58 */ \
> + \
> + MATRIX_KEY(0x02, 0x01, KEY_TAB) /* 16 */ \
> + MATRIX_KEY(0x02, 0x03, KEY_T) /* 21 */ \
> + MATRIX_KEY(0x02, 0x05, KEY_RIGHTBRACE) /* 28 */ \
> + MATRIX_KEY(0x02, 0x06, KEY_Y) /* 22 */ \
> + MATRIX_KEY(0x02, 0x08, KEY_LEFTBRACE) /* 27 */ \
> + MATRIX_KEY(0x02, 0x09, KEY_DELETE) /* 76 (Numpad) */ \
> + MATRIX_KEY(0x02, 0x0c, KEY_PAGEUP) /* 85 (Numpad) */ \
> + MATRIX_KEY(0x02, 0x011, KEY_YEN) /* 14 (JIS) */ \
> + \
> + MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA) /* Launcher */ \
> + MATRIX_KEY(0x03, 0x01, KEY_GRAVE) /* 1 */ \
> + MATRIX_KEY(0x03, 0x03, KEY_5) /* 6 */ \
> + MATRIX_KEY(0x03, 0x04, KEY_S) /* 32 */ \
> + MATRIX_KEY(0x03, 0x06, KEY_MINUS) /* 12 */ \
> + MATRIX_KEY(0x03, 0x08, KEY_6) /* 7 */ \
> + MATRIX_KEY(0x03, 0x09, KEY_SLEEP) /* Lock */ \
> + MATRIX_KEY(0x03, 0x0b, KEY_BACKSLASH) /* 29 */ \
> + MATRIX_KEY(0x03, 0x0c, KEY_MUHENKAN) /* 63 (JIS) */ \
> + MATRIX_KEY(0x03, 0x0e, KEY_RIGHTCTRL) /* 64 */ \
> + \
> + MATRIX_KEY(0x04, 0x01, KEY_A) /* 31 */ \
> + MATRIX_KEY(0x04, 0x02, KEY_D) /* 33 */ \
> + MATRIX_KEY(0x04, 0x03, KEY_F) /* 34 */ \
> + MATRIX_KEY(0x04, 0x05, KEY_K) /* 38 */ \
> + MATRIX_KEY(0x04, 0x06, KEY_J) /* 37 */ \
> + MATRIX_KEY(0x04, 0x08, KEY_SEMICOLON) /* 40 */ \
> + MATRIX_KEY(0x04, 0x09, KEY_L) /* 39 */ \
> + MATRIX_KEY(0x04, 0x0b, KEY_ENTER) /* 43 */ \
> + MATRIX_KEY(0x04, 0x0c, KEY_END) /* 81 (Numpad) */ \
> + \
> + MATRIX_KEY(0x05, 0x01, KEY_1) /* 2 */ \
> + MATRIX_KEY(0x05, 0x02, KEY_COMMA) /* 53 */ \
> + MATRIX_KEY(0x05, 0x03, KEY_DOT) /* 54 */ \
> + MATRIX_KEY(0x05, 0x04, KEY_SLASH) /* 55 */ \
> + MATRIX_KEY(0x05, 0x05, KEY_C) /* 48 */ \
> + MATRIX_KEY(0x05, 0x06, KEY_SPACE) /* 61 */ \
> + MATRIX_KEY(0x05, 0x07, KEY_LEFTSHIFT) /* 44 */ \
> + MATRIX_KEY(0x05, 0x08, KEY_X) /* 47 */ \
> + MATRIX_KEY(0x05, 0x09, KEY_V) /* 49 */ \
> + MATRIX_KEY(0x05, 0x0b, KEY_M) /* 52 */ \
> + MATRIX_KEY(0x05, 0x0c, KEY_PAGEDOWN) /* 86 (Numpad) */ \
> + \
> + MATRIX_KEY(0x06, 0x01, KEY_Z) /* 46 */ \
> + MATRIX_KEY(0x06, 0x02, KEY_3) /* 4 */ \
> + MATRIX_KEY(0x06, 0x03, KEY_4) /* 5 */ \
> + MATRIX_KEY(0x06, 0x04, KEY_2) /* 3 */ \
> + MATRIX_KEY(0x06, 0x05, KEY_8) /* 9 */ \
> + MATRIX_KEY(0x06, 0x06, KEY_0) /* 11 */ \
> + MATRIX_KEY(0x06, 0x08, KEY_7) /* 8 */ \
> + MATRIX_KEY(0x06, 0x09, KEY_9) /* 10 */ \
> + MATRIX_KEY(0x06, 0x0b, KEY_DOWN) /* 84 */ \
> + MATRIX_KEY(0x06, 0x0c, KEY_RIGHT) /* 89 */ \
> + MATRIX_KEY(0x06, 0x0d, KEY_LEFTALT) /* 60 */ \
> + MATRIX_KEY(0x06, 0x0f, KEY_ASSISTANT) /* 128 */ \
> + MATRIX_KEY(0x06, 0x11, KEY_BACKSLASH) /* 42 (JIS, ISO) */ \
> + \
> + MATRIX_KEY(0x07, 0x01, KEY_U) /* 23 */ \
> + MATRIX_KEY(0x07, 0x02, KEY_I) /* 24 */ \
> + MATRIX_KEY(0x07, 0x03, KEY_O) /* 25 */ \
> + MATRIX_KEY(0x07, 0x04, KEY_P) /* 26 */ \
> + MATRIX_KEY(0x07, 0x05, KEY_Q) /* 17 */ \
> + MATRIX_KEY(0x07, 0x06, KEY_W) /* 18 */ \
> + MATRIX_KEY(0x07, 0x07, KEY_RIGHTSHIFT) /* 57 */ \
> + MATRIX_KEY(0x07, 0x08, KEY_E) /* 19 */ \
> + MATRIX_KEY(0x07, 0x09, KEY_R) /* 20 */ \
> + MATRIX_KEY(0x07, 0x0b, KEY_UP) /* 83 */ \
> + MATRIX_KEY(0x07, 0x0c, KEY_LEFT) /* 79 */ \
> + MATRIX_KEY(0x07, 0x11, KEY_102ND) /* 45 (ISO) */
> +
> #endif /* _CROS_EC_KEYBOARD_H */
> --
> 2.45.1.288.g0e0cd299f1-goog
>
^ permalink raw reply
* [PATCH 3/3] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0
From: Daisuke Nojiri @ 2024-06-06 1:08 UTC (permalink / raw)
Cc: Daisuke Nojiri, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Benson Leung, Guenter Roeck, linux-input,
devicetree, chrome-platform, linux-kernel
In-Reply-To: <20240604005354.2294468-1-dnojiri@chromium.org>
Add support for keyboard matrix version 3.0.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
---
include/dt-bindings/input/cros-ec-keyboard.h | 104 +++++++++++++++++++
1 file changed, 104 insertions(+)
diff --git a/include/dt-bindings/input/cros-ec-keyboard.h b/include/dt-bindings/input/cros-ec-keyboard.h
index f0ae03634a96..afc12f6aa642 100644
--- a/include/dt-bindings/input/cros-ec-keyboard.h
+++ b/include/dt-bindings/input/cros-ec-keyboard.h
@@ -100,4 +100,108 @@
MATRIX_KEY(0x07, 0x0b, KEY_UP) \
MATRIX_KEY(0x07, 0x0c, KEY_LEFT)
+/* No numpad */
+#define CROS_TOP_ROW_KEYMAP_V30 \
+ MATRIX_KEY(0x00, 0x01, KEY_F11) /* T11 */ \
+ MATRIX_KEY(0x00, 0x02, KEY_F1) /* T1 */ \
+ MATRIX_KEY(0x00, 0x04, KEY_F10) /* T10 */ \
+ MATRIX_KEY(0x00, 0x0b, KEY_F14) /* T14 */ \
+ MATRIX_KEY(0x00, 0x0c, KEY_F15) /* T15 */ \
+ MATRIX_KEY(0x01, 0x02, KEY_F4) /* T4 */ \
+ MATRIX_KEY(0x01, 0x04, KEY_F7) /* T7 */ \
+ MATRIX_KEY(0x01, 0x05, KEY_F12) /* T12 */ \
+ MATRIX_KEY(0x01, 0x09, KEY_F9) /* T9 */ \
+ MATRIX_KEY(0x02, 0x02, KEY_F3) /* T3 */ \
+ MATRIX_KEY(0x02, 0x04, KEY_F6) /* T6 */ \
+ MATRIX_KEY(0x02, 0x0b, KEY_F8) /* T8 */ \
+ MATRIX_KEY(0x03, 0x02, KEY_F2) /* T2 */ \
+ MATRIX_KEY(0x03, 0x05, KEY_F13) /* T13 */ \
+ MATRIX_KEY(0x04, 0x04, KEY_F5) /* T5 */
+
+#define CROS_MAIN_KEYMAP_V30 /* Keycode */ \
+ MATRIX_KEY(0x00, 0x03, KEY_B) /* 50 */ \
+ MATRIX_KEY(0x00, 0x05, KEY_N) /* 51 */ \
+ MATRIX_KEY(0x00, 0x06, KEY_RO) /* 56 (JIS) */ \
+ MATRIX_KEY(0x00, 0x08, KEY_EQUAL) /* 13 */ \
+ MATRIX_KEY(0x00, 0x09, KEY_HOME) /* 80 (Numpad) */ \
+ MATRIX_KEY(0x00, 0x0a, KEY_RIGHTALT) /* 62 */ \
+ MATRIX_KEY(0x00, 0x10, KEY_FN) /* 127 */ \
+ \
+ MATRIX_KEY(0x01, 0x01, KEY_ESC) /* 110 */ \
+ MATRIX_KEY(0x01, 0x03, KEY_G) /* 35 */ \
+ MATRIX_KEY(0x01, 0x06, KEY_H) /* 36 */ \
+ MATRIX_KEY(0x01, 0x08, KEY_APOSTROPHE) /* 41 */ \
+ MATRIX_KEY(0x01, 0x0b, KEY_BACKSPACE) /* 15 */ \
+ MATRIX_KEY(0x01, 0x0c, KEY_HENKAN) /* 65 (JIS) */ \
+ MATRIX_KEY(0x01, 0x0e, KEY_LEFTCTRL) /* 58 */ \
+ \
+ MATRIX_KEY(0x02, 0x01, KEY_TAB) /* 16 */ \
+ MATRIX_KEY(0x02, 0x03, KEY_T) /* 21 */ \
+ MATRIX_KEY(0x02, 0x05, KEY_RIGHTBRACE) /* 28 */ \
+ MATRIX_KEY(0x02, 0x06, KEY_Y) /* 22 */ \
+ MATRIX_KEY(0x02, 0x08, KEY_LEFTBRACE) /* 27 */ \
+ MATRIX_KEY(0x02, 0x09, KEY_DELETE) /* 76 (Numpad) */ \
+ MATRIX_KEY(0x02, 0x0c, KEY_PAGEUP) /* 85 (Numpad) */ \
+ MATRIX_KEY(0x02, 0x011, KEY_YEN) /* 14 (JIS) */ \
+ \
+ MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA) /* Launcher */ \
+ MATRIX_KEY(0x03, 0x01, KEY_GRAVE) /* 1 */ \
+ MATRIX_KEY(0x03, 0x03, KEY_5) /* 6 */ \
+ MATRIX_KEY(0x03, 0x04, KEY_S) /* 32 */ \
+ MATRIX_KEY(0x03, 0x06, KEY_MINUS) /* 12 */ \
+ MATRIX_KEY(0x03, 0x08, KEY_6) /* 7 */ \
+ MATRIX_KEY(0x03, 0x09, KEY_SLEEP) /* Lock */ \
+ MATRIX_KEY(0x03, 0x0b, KEY_BACKSLASH) /* 29 */ \
+ MATRIX_KEY(0x03, 0x0c, KEY_MUHENKAN) /* 63 (JIS) */ \
+ MATRIX_KEY(0x03, 0x0e, KEY_RIGHTCTRL) /* 64 */ \
+ \
+ MATRIX_KEY(0x04, 0x01, KEY_A) /* 31 */ \
+ MATRIX_KEY(0x04, 0x02, KEY_D) /* 33 */ \
+ MATRIX_KEY(0x04, 0x03, KEY_F) /* 34 */ \
+ MATRIX_KEY(0x04, 0x05, KEY_K) /* 38 */ \
+ MATRIX_KEY(0x04, 0x06, KEY_J) /* 37 */ \
+ MATRIX_KEY(0x04, 0x08, KEY_SEMICOLON) /* 40 */ \
+ MATRIX_KEY(0x04, 0x09, KEY_L) /* 39 */ \
+ MATRIX_KEY(0x04, 0x0b, KEY_ENTER) /* 43 */ \
+ MATRIX_KEY(0x04, 0x0c, KEY_END) /* 81 (Numpad) */ \
+ \
+ MATRIX_KEY(0x05, 0x01, KEY_1) /* 2 */ \
+ MATRIX_KEY(0x05, 0x02, KEY_COMMA) /* 53 */ \
+ MATRIX_KEY(0x05, 0x03, KEY_DOT) /* 54 */ \
+ MATRIX_KEY(0x05, 0x04, KEY_SLASH) /* 55 */ \
+ MATRIX_KEY(0x05, 0x05, KEY_C) /* 48 */ \
+ MATRIX_KEY(0x05, 0x06, KEY_SPACE) /* 61 */ \
+ MATRIX_KEY(0x05, 0x07, KEY_LEFTSHIFT) /* 44 */ \
+ MATRIX_KEY(0x05, 0x08, KEY_X) /* 47 */ \
+ MATRIX_KEY(0x05, 0x09, KEY_V) /* 49 */ \
+ MATRIX_KEY(0x05, 0x0b, KEY_M) /* 52 */ \
+ MATRIX_KEY(0x05, 0x0c, KEY_PAGEDOWN) /* 86 (Numpad) */ \
+ \
+ MATRIX_KEY(0x06, 0x01, KEY_Z) /* 46 */ \
+ MATRIX_KEY(0x06, 0x02, KEY_3) /* 4 */ \
+ MATRIX_KEY(0x06, 0x03, KEY_4) /* 5 */ \
+ MATRIX_KEY(0x06, 0x04, KEY_2) /* 3 */ \
+ MATRIX_KEY(0x06, 0x05, KEY_8) /* 9 */ \
+ MATRIX_KEY(0x06, 0x06, KEY_0) /* 11 */ \
+ MATRIX_KEY(0x06, 0x08, KEY_7) /* 8 */ \
+ MATRIX_KEY(0x06, 0x09, KEY_9) /* 10 */ \
+ MATRIX_KEY(0x06, 0x0b, KEY_DOWN) /* 84 */ \
+ MATRIX_KEY(0x06, 0x0c, KEY_RIGHT) /* 89 */ \
+ MATRIX_KEY(0x06, 0x0d, KEY_LEFTALT) /* 60 */ \
+ MATRIX_KEY(0x06, 0x0f, KEY_ASSISTANT) /* 128 */ \
+ MATRIX_KEY(0x06, 0x11, KEY_BACKSLASH) /* 42 (JIS, ISO) */ \
+ \
+ MATRIX_KEY(0x07, 0x01, KEY_U) /* 23 */ \
+ MATRIX_KEY(0x07, 0x02, KEY_I) /* 24 */ \
+ MATRIX_KEY(0x07, 0x03, KEY_O) /* 25 */ \
+ MATRIX_KEY(0x07, 0x04, KEY_P) /* 26 */ \
+ MATRIX_KEY(0x07, 0x05, KEY_Q) /* 17 */ \
+ MATRIX_KEY(0x07, 0x06, KEY_W) /* 18 */ \
+ MATRIX_KEY(0x07, 0x07, KEY_RIGHTSHIFT) /* 57 */ \
+ MATRIX_KEY(0x07, 0x08, KEY_E) /* 19 */ \
+ MATRIX_KEY(0x07, 0x09, KEY_R) /* 20 */ \
+ MATRIX_KEY(0x07, 0x0b, KEY_UP) /* 83 */ \
+ MATRIX_KEY(0x07, 0x0c, KEY_LEFT) /* 79 */ \
+ MATRIX_KEY(0x07, 0x11, KEY_102ND) /* 45 (ISO) */
+
#endif /* _CROS_EC_KEYBOARD_H */
--
2.45.1.467.gbab1589fc0-goog
^ permalink raw reply related
* Re: [PATCH V2 0/5] Add support for Awinic SAR sensor.
From: Jeff LaBundy @ 2024-06-06 3:04 UTC (permalink / raw)
To: wangshuaijie
Cc: dmitry.torokhov, robh, krzk+dt, conor+dt, linux-input, devicetree,
linux-kernel, liweilei, kangjiajun
In-Reply-To: <20240605091143.163789-1-wangshuaijie@awinic.com>
Hi Shuaijie,
On Wed, Jun 05, 2024 at 09:11:38AM +0000, wangshuaijie@awinic.com wrote:
> From: shuaijie wang <wangshuaijie@awinic.com>
>
> Add drivers that support Awinic SAR (Specific Absorption Rate)
> sensors to the Linux kernel.
>
> The AW9610X series and AW963XX series are high-sensitivity
> capacitive proximity detection sensors.
>
> This device detects human proximity and assists electronic devices
> in reducing SAR to pass SAR related certifications.
>
> The device reduces RF power and reduces harm when detecting human proximity.
> Increase power and improve signal quality when the human body is far away.
>
> This patch implements device initialization, registration,
> I/O operation handling and interrupt handling, and passed basic testing.
Thank you for your submission! It's always great to see new devices
introduced to the kernel. Maybe I can give some high-level feedback
first.
Unfortunately, I don't think we can review this driver in its current
form; the style and structure are simply too different from what is
expected in mainline. Many of these problems can be identified with
checkpatch [1].
To that point, I don't think this driver belongs as an input driver.
The input subsystem tends to be a catch-all for sensors in downstream
kernels, and some bespoke SOC vendor HALs tend to follow this approach,
but that does not necessarily mean input is always the best choice.
SAR devices are a special case where an argument could be made for the
driver to be an input driver, or an IIO/proximity driver. If the device
emits binary near/far events, then an input driver is a good choice;
typically the near/far event could be mapped to a switch code such as
SW_FRONT_PROXIMITY.
If the device emits continuous proximity data (in arbitrary units or
otherwise), however, IIO/proximity seems like a better choice here. This
driver seems to report proximity using ABS_DISTANCE, which is kind of an
abuse of the input subsystem, and a strong indicator that this driver
should really be an IIO/proximity driver. If you disagree, I think we
at least need some compelling reasoning in the commit message.
Regardless of this choice, this driver should really only be 2-3 patches
(not counting cover letter): one for the binding, and one for a single,
homogenous driver for each of the two devices, unless they have enough
in common that they can be supported by a single driver. Mainline tends
to avoid vendor-specific (and especially part-specific) entire directories.
I agree with Krzysztof's advice in one of the other patches; I think it
would be best to study some existing drivers in mainline to gain a
better sense of how they are organized, then use those as a model. If I
may suggest, consider referring to drivers such as [2] and its cousins
in the same directory; these are capacitive proximity sensors that can
be used as buttons, but SAR devices tend to be built upon the same principle.
[1] https://docs.kernel.org/dev-tools/checkpatch.html
[2] drivers/iio/proximity/sx9500.c
>
> shuaijie wang (5):
> dt-bindings: input: Add YAML to Awinic sar sensor.
> Add universal interface for the aw_sar driver.
> Add aw9610x series related interfaces to the aw_sar driver.
> Add aw963xx series related interfaces to the aw_sar driver.
> Add support for Awinic sar sensor.
>
> .../bindings/input/awinic,aw_sar.yaml | 125 +
> drivers/input/misc/Kconfig | 9 +
> drivers/input/misc/Makefile | 1 +
> drivers/input/misc/aw_sar/Makefile | 2 +
> drivers/input/misc/aw_sar/aw9610x/aw9610x.c | 884 +++++++
> drivers/input/misc/aw_sar/aw9610x/aw9610x.h | 327 +++
> drivers/input/misc/aw_sar/aw963xx/aw963xx.c | 974 ++++++++
> drivers/input/misc/aw_sar/aw963xx/aw963xx.h | 753 ++++++
> drivers/input/misc/aw_sar/aw_sar.c | 2036 +++++++++++++++++
> drivers/input/misc/aw_sar/aw_sar.h | 15 +
> .../misc/aw_sar/comm/aw_sar_chip_interface.h | 27 +
> .../misc/aw_sar/comm/aw_sar_comm_interface.c | 639 ++++++
> .../misc/aw_sar/comm/aw_sar_comm_interface.h | 172 ++
> drivers/input/misc/aw_sar/comm/aw_sar_type.h | 396 ++++
> 14 files changed, 6360 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/input/awinic,aw_sar.yaml
> create mode 100644 drivers/input/misc/aw_sar/Makefile
> create mode 100644 drivers/input/misc/aw_sar/aw9610x/aw9610x.c
> create mode 100644 drivers/input/misc/aw_sar/aw9610x/aw9610x.h
> create mode 100644 drivers/input/misc/aw_sar/aw963xx/aw963xx.c
> create mode 100644 drivers/input/misc/aw_sar/aw963xx/aw963xx.h
> create mode 100644 drivers/input/misc/aw_sar/aw_sar.c
> create mode 100644 drivers/input/misc/aw_sar/aw_sar.h
> create mode 100644 drivers/input/misc/aw_sar/comm/aw_sar_chip_interface.h
> create mode 100644 drivers/input/misc/aw_sar/comm/aw_sar_comm_interface.c
> create mode 100644 drivers/input/misc/aw_sar/comm/aw_sar_comm_interface.h
> create mode 100644 drivers/input/misc/aw_sar/comm/aw_sar_type.h
>
>
> base-commit: 32f88d65f01bf6f45476d7edbe675e44fb9e1d58
> --
> 2.45.1
>
Kind regards,
Jeff LaBundy
^ permalink raw reply
* Re: [PATCH 3/3] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0
From: Krzysztof Kozlowski @ 2024-06-06 6:27 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Benson Leung, Guenter Roeck, linux-input, devicetree,
chrome-platform, linux-kernel
In-Reply-To: <20240606010808.27069-1-dnojiri@chromium.org>
On 06/06/2024 03:08, Daisuke Nojiri wrote:
> Add support for keyboard matrix version 3.0.
Not much improved.
>
> Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
This is a friendly reminder during the review process.
It seems my or other reviewer's previous comments were not fully
addressed. Maybe the feedback got lost between the quotes, maybe you
just forgot to apply it. Please go back to the previous discussion and
either implement all requested changes or keep discussing them.
Do not attach (thread) your patchsets to some other threads (unrelated
or older versions). This buries them deep in the mailbox and might
interfere with applying entire sets.
Best regards,
Krzysztof
^ permalink raw reply
* Re: [PATCH v11 1/4] dt-bindings: i2c: Add CP2112 HID USB to SMBus Bridge
From: Krzysztof Kozlowski @ 2024-06-06 6:28 UTC (permalink / raw)
To: Danny Kaehn, Rob Herring, Krzysztof Kozlowski, Benjamin Tissoires,
Andy Shevchenko
Cc: Jiri Kosina, devicetree, linux-input, Dmitry Torokhov,
Bartosz Golaszewski, Ethan Twardy
In-Reply-To: <20240605-cp2112-dt-v11-1-d55f0f945a62@plexus.com>
On 06/06/2024 01:12, Danny Kaehn wrote:
> This is a USB HID device which includes an I2C controller and 8 GPIO pins.
>
> The binding allows describing the chip's gpio and i2c controller in DT
> using the subnodes named "gpio" and "i2c", respectively. This is
> intended to be used in configurations where the CP2112 is permanently
> connected in hardware.
>
> Signed-off-by: Danny Kaehn <danny.kaehn@plexus.com>
> ---
> .../devicetree/bindings/i2c/silabs,cp2112.yaml | 105 +++++++++++++++++++++
> 1 file changed, 105 insertions(+)
So this is v11 but was never tested?
Changelog does not help me understanding what happened with this binding...
Best regards,
Krzysztof
^ permalink raw reply
* Re: [PATCH v2 0/7] HID/arm64: dts: qcom: sc8280xp-x13s: fix touchscreen power on
From: Benjamin Tissoires @ 2024-06-06 6:57 UTC (permalink / raw)
To: Johan Hovold
Cc: Jiri Kosina, Benjamin Tissoires, Bjorn Andersson, Dmitry Torokhov,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Linus Walleij, Douglas Anderson, linux-input, devicetree,
linux-arm-msm, linux-kernel
In-Reply-To: <ZmBZPHbDv7ma_JaJ@hovoldconsulting.com>
On Jun 05 2024, Johan Hovold wrote:
> Hi Jiri and Benjamin,
>
> On Tue, May 07, 2024 at 04:48:14PM +0200, Johan Hovold wrote:
> > The Elan eKTH5015M touch controller on the X13s requires a 300 ms delay
> > before sending commands after having deasserted reset during power on.
> >
> > This series switches the X13s devicetree to use the Elan specific
> > binding so that the OS can determine the required power-on sequence and
> > make sure that the controller is always detected during boot. [1]
>
> > The devicetree changes are expected to go in through the Qualcomm tree
> > once the binding and driver updates have been merged.
>
> > [1] The reset signal is currently deasserted using the pin configuration
> > and the controller would be detected if probe is deferred or if user
> > space triggers a reprobe through sysfs.
>
> > Johan Hovold (7):
> > dt-bindings: HID: i2c-hid: add dedicated Ilitek ILI2901 schema
> > dt-bindings: HID: i2c-hid: elan: add Elan eKTH5015M
> > dt-bindings: HID: i2c-hid: elan: add 'no-reset-on-power-off' property
> > HID: i2c-hid: elan: fix reset suspend current leakage
>
> Could you consider picking the first four patches up for 6.10-rc3 so
> that Bjorn can take the devicetree changes?
We definitely can. But if it makes things easier, Bjorn can also take
the whole series through his tree with my Acked-by.
If I don't get answer by tomorrow I'll apply the first 4 in the hid
tree.
Cheers,
Benjamin
>
> > arm64: dts: qcom: sc8280xp-x13s: fix touchscreen power on
> > arm64: dts: qcom: sc8280xp-crd: use external pull up for touch reset
> > arm64: defconfig: enable Elan i2c-hid driver
>
> Johan
^ permalink raw reply
* Re: [PATCH v2 0/7] HID/arm64: dts: qcom: sc8280xp-x13s: fix touchscreen power on
From: Johan Hovold @ 2024-06-06 7:10 UTC (permalink / raw)
To: Benjamin Tissoires
Cc: Jiri Kosina, Benjamin Tissoires, Bjorn Andersson, Dmitry Torokhov,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio,
Linus Walleij, Douglas Anderson, linux-input, devicetree,
linux-arm-msm, linux-kernel
In-Reply-To: <fupsiajh2za5r7itt2naxtynyqiwpw3efubrjmydd5ohypo3jg@2u44rbhbvmym>
On Thu, Jun 06, 2024 at 08:57:47AM +0200, Benjamin Tissoires wrote:
> On Jun 05 2024, Johan Hovold wrote:
> > Hi Jiri and Benjamin,
> >
> > On Tue, May 07, 2024 at 04:48:14PM +0200, Johan Hovold wrote:
> > > Johan Hovold (7):
> > > dt-bindings: HID: i2c-hid: add dedicated Ilitek ILI2901 schema
> > > dt-bindings: HID: i2c-hid: elan: add Elan eKTH5015M
> > > dt-bindings: HID: i2c-hid: elan: add 'no-reset-on-power-off' property
> > > HID: i2c-hid: elan: fix reset suspend current leakage
> >
> > Could you consider picking the first four patches up for 6.10-rc3 so
> > that Bjorn can take the devicetree changes?
>
> We definitely can. But if it makes things easier, Bjorn can also take
> the whole series through his tree with my Acked-by.
Thanks, but it should be fine to take this through two different trees.
It will probably take a little longer to get the DT changes into
mainline anyway as they will also go through the SoC tree.
> > > arm64: dts: qcom: sc8280xp-x13s: fix touchscreen power on
> > > arm64: dts: qcom: sc8280xp-crd: use external pull up for touch reset
> > > arm64: defconfig: enable Elan i2c-hid driver
Johan
^ permalink raw reply
* Re: (subset) [PATCH v11 0/4] Firmware Support for USB-HID Devices and CP2112
From: Benjamin Tissoires @ 2024-06-06 7:30 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Andy Shevchenko, Danny Kaehn
Cc: Jiri Kosina, devicetree, linux-input, Dmitry Torokhov,
Bartosz Golaszewski, Ethan Twardy
In-Reply-To: <20240605-cp2112-dt-v11-0-d55f0f945a62@plexus.com>
On Wed, 05 Jun 2024 18:12:43 -0500, Danny Kaehn wrote:
> This patchset allows USB-HID devices to have Firmware bindings through sharing
> the USB fwnode with the HID driver, and adds such a binding and driver
> implementation for the CP2112 USB to SMBus Bridge (which necessitated the
> USB-HID change). This change allows a CP2112 permanently attached in hardware to
> be described in DT and ACPI and interoperate with other drivers.
>
> Changes in v11:
> - Eliminate 'gpio' subnode for DT and ACPI for the CP2112 per comment
> from Rob H.
> - Edit hid-cp2112.c to match for ACPI index and fall back to matching by
> name (instead of the other way around)
> - Separate CP2112 I2C bus speed configuration into a separate patch
>
> [...]
Applied to hid/hid.git (for-6.11/core), thanks!
[2/4] HID: usbhid: Share USB device firmware node with child HID device
https://git.kernel.org/hid/hid/c/b81881b9c10e
Cheers,
--
Benjamin Tissoires <bentiss@kernel.org>
^ permalink raw reply
* Re: [PATCH v11 2/4] HID: usbhid: Share USB device firmware node with child HID device
From: Benjamin Tissoires @ 2024-06-06 7:31 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Danny Kaehn, Rob Herring, Krzysztof Kozlowski, Jiri Kosina,
devicetree, linux-input, Dmitry Torokhov, Bartosz Golaszewski,
Ethan Twardy
In-Reply-To: <ZmD4IFFHmUkDtUeL@smile.fi.intel.com>
On Jun 06 2024, Andy Shevchenko wrote:
> On Wed, Jun 05, 2024 at 06:12:45PM -0500, Danny Kaehn wrote:
> > USB HID core now shares its fwnode with its child HID device.
> > Since there can only be one HID device on a USB interface, it is redundant
> > to specify a hid node under the USB device. This allows usb HID device
> > drivers to be described in firmware and make use of device properties.
>
> Can this patch be applied already, so we don't drag it again and again?
done :)
Cheers,
Benjamin
^ permalink raw reply
* Re: [PATCH v2] hid: asus: asus_report_fixup: fix potential read out of bounds
From: Benjamin Tissoires @ 2024-06-06 8:31 UTC (permalink / raw)
To: dan.carpenter, Andrew Ballance
Cc: jikos, linux-input, linux-kernel-mentees, linux-kernel, linux-usb,
luke, skhan, syzbot+07762f019fd03d01f04c, syzkaller-bugs,
Benjamin Tissoires, Jiri Kosina
In-Reply-To: <20240602085023.1720492-1-andrewjballance@gmail.com>
On Sun, 02 Jun 2024 03:50:23 -0500, Andrew Ballance wrote:
> syzbot reported a potential read out of bounds in asus_report_fixup.
>
> this patch adds checks so that a read out of bounds will not occur
>
>
Applied to hid/hid.git (for-6.10/upstream-fixes), thanks!
[1/1] hid: asus: asus_report_fixup: fix potential read out of bounds
https://git.kernel.org/hid/hid/c/cfacaaf33cd7
Cheers,
--
Benjamin Tissoires <bentiss@kernel.org>
^ permalink raw reply
* Re: [PATCH v4 1/2] input: Add event code for accessibility key
From: Benjamin Tissoires @ 2024-06-06 8:40 UTC (permalink / raw)
To: Jiri Kosina, Aseda Aboagye; +Cc: Dmitry Torokhov, linux-input
In-Reply-To: <Zl-e97O9nvudco5z@google.com>
On Tue, 04 Jun 2024 23:10:47 +0000, Aseda Aboagye wrote:
> HUTRR116 added support for a new usage titled "System Accessibility
> Binding" which toggles a system-wide bound accessibility UI or command.
> This commit simply adds a new event code for the usage.
>
>
Applied to hid/hid.git (for-6.10/upstream-fixes), thanks!
[1/2] input: Add event code for accessibility key
https://git.kernel.org/hid/hid/c/8e3aaa9cb320
Cheers,
--
Benjamin Tissoires <bentiss@kernel.org>
^ permalink raw reply
* Re: [PATCH v4 2/2] input: Add support for "Do Not Disturb"
From: Benjamin Tissoires @ 2024-06-06 8:40 UTC (permalink / raw)
To: Jiri Kosina, Aseda Aboagye; +Cc: Dmitry Torokhov, linux-input
In-Reply-To: <Zl-gUHE70s7wCAoB@google.com>
On Tue, 04 Jun 2024 23:16:32 +0000, Aseda Aboagye wrote:
> HUTRR94 added support for a new usage titled "System Do Not Disturb"
> which toggles a system-wide Do Not Disturb setting. This commit simply
> adds a new event code for the usage.
>
>
Applied to hid/hid.git (for-6.10/upstream-fixes), thanks!
[2/2] input: Add support for "Do Not Disturb"
https://git.kernel.org/hid/hid/c/608b62583b58
Cheers,
--
Benjamin Tissoires <bentiss@kernel.org>
^ permalink raw reply
* Re: [PATCH v1 0/2] asus wmi and hid: use HID LED for brightness
From: Benjamin Tissoires @ 2024-06-06 8:49 UTC (permalink / raw)
To: Hans de Goede
Cc: Luke D. Jones, Jiri Kosina, ilpo.jarvinen, corentin.chary,
platform-driver-x86, linux-kernel, linux-input
In-Reply-To: <b0d8eebc-5abb-4ec0-898c-af7eedc730d9@redhat.com>
On May 29 2024, Hans de Goede wrote:
> Hi all,
>
> On 5/29/24 3:28 AM, Luke D. Jones wrote:
> > Changelog:
> > - v1
> > - Split the patch in two
> > - Move function body to asus-wmi and export
> > - Use array of names and for loops
> >
> > History:
> > - https://lore.kernel.org/linux-input/20240528013959.14661-1-luke@ljones.dev/T/#u
> >
> > Luke D. Jones (2):
> > hid-asus: use hid for brightness control on keyboard
> > hid-asus: change the report_id used for HID LED control
> >
> > drivers/hid/hid-asus.c | 32 +++++++++++++++++++-
> > drivers/platform/x86/asus-wmi.c | 35 +++++++++++++++++++++-
> > include/linux/platform_data/x86/asus-wmi.h | 10 +++++++
> > 3 files changed, 75 insertions(+), 2 deletions(-)
>
> Jiri, Benjamin since the first patch now also touches pdx86 files
> we need to coordinate merging this.
>
> There also is a long list of patches pending for
> drivers/platform/x86/asus-wmi.c
>
> So I would prefer to take this series (both patches) upstream through
> the pdx86 tree to avoid conflicts.
>
> May we have an ack from one of you for merging this through pdx86/for-next ?
Sure:
Acked-by: Benjamin Tissoires <bentiss@kernel.org>
But I haven't seen the v2. Are you sure you want to take this series as
it is?
Cheers,
Benjamin
^ permalink raw reply
* Re: [PATCH] HID: letsketch: add missing MODULE_DESCRIPTION() macro
From: Benjamin Tissoires @ 2024-06-06 8:55 UTC (permalink / raw)
To: Hans de Goede, Jiri Kosina, Jeff Johnson
Cc: linux-input, linux-kernel, kernel-janitors
In-Reply-To: <20240604-md-hid-letsketch-v1-1-ff38ae7b4cb0@quicinc.com>
On Tue, 04 Jun 2024 07:20:47 -0700, Jeff Johnson wrote:
> make allmodconfig && make W=1 C=1 reports:
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-letsketch.o
>
> Add the missing invocation of the MODULE_DESCRIPTION() macro.
>
>
Applied to hid/hid.git (for-6.11/module-description), thanks!
[1/1] HID: letsketch: add missing MODULE_DESCRIPTION() macro
https://git.kernel.org/hid/hid/c/fae5d8433db2
Cheers,
--
Benjamin Tissoires <bentiss@kernel.org>
^ permalink raw reply
* Re: [PATCH] HID: lg-g15: add missing MODULE_DESCRIPTION() macro
From: Benjamin Tissoires @ 2024-06-06 8:55 UTC (permalink / raw)
To: Hans de Goede, Jiri Kosina, Jeff Johnson
Cc: linux-input, linux-kernel, kernel-janitors
In-Reply-To: <20240604-md-hid-lg-g15-v1-1-265b094db089@quicinc.com>
On Tue, 04 Jun 2024 07:33:01 -0700, Jeff Johnson wrote:
> make allmodconfig && make W=1 C=1 reports:
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-lg-g15.o
>
> Add the missing invocation of the MODULE_DESCRIPTION() macro.
>
>
Applied to hid/hid.git (for-6.11/module-description), thanks!
[1/1] HID: lg-g15: add missing MODULE_DESCRIPTION() macro
https://git.kernel.org/hid/hid/c/e52a7d0562d8
Cheers,
--
Benjamin Tissoires <bentiss@kernel.org>
^ permalink raw reply
* Re: [PATCH] HID: logitech-dj: add missing MODULE_DESCRIPTION() macro
From: Benjamin Tissoires @ 2024-06-06 8:55 UTC (permalink / raw)
To: Filipe Laíns, Jiri Kosina, Jeff Johnson
Cc: linux-input, linux-kernel, kernel-janitors
In-Reply-To: <20240604-md-hid-logitech-dj-v1-1-560f6b3cb54b@quicinc.com>
On Tue, 04 Jun 2024 08:34:01 -0700, Jeff Johnson wrote:
> make allmodconfig && make W=1 C=1 reports:
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-logitech-dj.o
>
> Add the missing invocation of the MODULE_DESCRIPTION() macro.
>
>
Applied to hid/hid.git (for-6.11/module-description), thanks!
[1/1] HID: logitech-dj: add missing MODULE_DESCRIPTION() macro
https://git.kernel.org/hid/hid/c/ece3941821cf
Cheers,
--
Benjamin Tissoires <bentiss@kernel.org>
^ permalink raw reply
* Re: [PATCH] HID: add missing MODULE_DESCRIPTION() macros
From: Benjamin Tissoires @ 2024-06-06 8:55 UTC (permalink / raw)
To: Jiri Kosina, Jeff Johnson; +Cc: linux-input, linux-kernel, kernel-janitors
In-Reply-To: <20240604-md-hid-misc-v1-1-4f9560796f3c@quicinc.com>
On Tue, 04 Jun 2024 15:10:23 -0700, Jeff Johnson wrote:
> make allmodconfig && make W=1 C=1 reports:
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-a4tech.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-apple.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-aureal.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-belkin.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-betopff.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-bigbenff.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-cherry.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-chicony.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-cypress.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-dr.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-emsff.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-elecom.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-elo.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-evision.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-ezkey.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-vivaldi-common.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-google-hammer.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-google-stadiaff.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-gyration.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-holtek-kbd.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-holtek-mouse.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-ite.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-kensington.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-keytouch.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-kye.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-lcpower.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-lenovo.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-logitech.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-magicmouse.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-maltron.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-mf.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-megaworld.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-microsoft.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-monterey.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-ntrig.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-ortek.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-prodikeys.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-pl.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-petalynx.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-primax.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-razer.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-redragon.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-retrode.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-saitek.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-samsung.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-semitek.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-sjoy.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-sony.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-speedlink.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-steam.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-steelseries.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-sunplus.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-gaff.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-tmff.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-tivo.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-topseed.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-twinhan.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-uclogic.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-xinmo.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-zpff.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-zydacron.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-viewsonic.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-waltop.o
> WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hid/hid-winwing.o
>
> [...]
Applied to hid/hid.git (for-6.11/module-description), thanks!
[1/1] HID: add missing MODULE_DESCRIPTION() macros
https://git.kernel.org/hid/hid/c/9d262f35b115
Cheers,
--
Benjamin Tissoires <bentiss@kernel.org>
^ permalink raw reply
* [PATCH] HID: core: clean up some inconsistent indenting
From: Jiapeng Chong @ 2024-06-06 9:29 UTC (permalink / raw)
To: jikos; +Cc: bentiss, linux-input, linux-kernel, Jiapeng Chong, Abaci Robot
No functional modification involved.
drivers/hid/hid-core.c:2780 hid_add_device() warn: inconsistent indenting.
Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=9293
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
---
drivers/hid/hid-core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index dc55f837d0c7..3cb0b7dd92a1 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2777,10 +2777,10 @@ int hid_add_device(struct hid_device *hdev)
/*
* Check for the mandatory transport channel.
*/
- if (!hdev->ll_driver->raw_request) {
+ if (!hdev->ll_driver->raw_request) {
hid_err(hdev, "transport driver missing .raw_request()\n");
return -EINVAL;
- }
+ }
/*
* Read the device report descriptor once and use as template
--
2.20.1.7.g153144c
^ permalink raw reply related
* Re: [PATCH v1 0/2] asus wmi and hid: use HID LED for brightness
From: Hans de Goede @ 2024-06-06 9:53 UTC (permalink / raw)
To: Benjamin Tissoires
Cc: Luke D. Jones, Jiri Kosina, ilpo.jarvinen, corentin.chary,
platform-driver-x86, linux-kernel, linux-input
In-Reply-To: <dflqwdl4fo3wv4zjj4jl6sbot6cotscksgpyrbiu3j77lyrwal@s6nomonx4gv6>
Hi Benjamin,
On 6/6/24 10:49 AM, Benjamin Tissoires wrote:
> On May 29 2024, Hans de Goede wrote:
>> Hi all,
>>
>> On 5/29/24 3:28 AM, Luke D. Jones wrote:
>>> Changelog:
>>> - v1
>>> - Split the patch in two
>>> - Move function body to asus-wmi and export
>>> - Use array of names and for loops
>>>
>>> History:
>>> - https://lore.kernel.org/linux-input/20240528013959.14661-1-luke@ljones.dev/T/#u
>>>
>>> Luke D. Jones (2):
>>> hid-asus: use hid for brightness control on keyboard
>>> hid-asus: change the report_id used for HID LED control
>>>
>>> drivers/hid/hid-asus.c | 32 +++++++++++++++++++-
>>> drivers/platform/x86/asus-wmi.c | 35 +++++++++++++++++++++-
>>> include/linux/platform_data/x86/asus-wmi.h | 10 +++++++
>>> 3 files changed, 75 insertions(+), 2 deletions(-)
>>
>> Jiri, Benjamin since the first patch now also touches pdx86 files
>> we need to coordinate merging this.
>>
>> There also is a long list of patches pending for
>> drivers/platform/x86/asus-wmi.c
>>
>> So I would prefer to take this series (both patches) upstream through
>> the pdx86 tree to avoid conflicts.
>>
>> May we have an ack from one of you for merging this through pdx86/for-next ?
>
> Sure:
> Acked-by: Benjamin Tissoires <bentiss@kernel.org>
Thank you for the ack.
> But I haven't seen the v2. Are you sure you want to take this series as
> it is?
No I plan to wait for v2, I just thought it would be good to have
an ack to merge this through the pdx86 tree beforehand.
Regards,
Hans
^ permalink raw reply
* Re: [PATCH v11 1/4] dt-bindings: i2c: Add CP2112 HID USB to SMBus Bridge
From: Rob Herring @ 2024-06-06 15:18 UTC (permalink / raw)
To: Danny Kaehn
Cc: Krzysztof Kozlowski, Benjamin Tissoires, Andy Shevchenko,
Jiri Kosina, devicetree, linux-input, Dmitry Torokhov,
Bartosz Golaszewski, Ethan Twardy
In-Reply-To: <20240605-cp2112-dt-v11-1-d55f0f945a62@plexus.com>
On Wed, Jun 05, 2024 at 06:12:44PM -0500, Danny Kaehn wrote:
> This is a USB HID device which includes an I2C controller and 8 GPIO pins.
>
> The binding allows describing the chip's gpio and i2c controller in DT
> using the subnodes named "gpio" and "i2c", respectively. This is
There's no more gpio subnode.
> intended to be used in configurations where the CP2112 is permanently
> connected in hardware.
>
> Signed-off-by: Danny Kaehn <danny.kaehn@plexus.com>
> ---
> .../devicetree/bindings/i2c/silabs,cp2112.yaml | 105 +++++++++++++++++++++
> 1 file changed, 105 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/i2c/silabs,cp2112.yaml b/Documentation/devicetree/bindings/i2c/silabs,cp2112.yaml
> new file mode 100644
> index 000000000000..0108f2e43c8c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/i2c/silabs,cp2112.yaml
> @@ -0,0 +1,105 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/i2c/silabs,cp2112.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: CP2112 HID USB to SMBus/I2C Bridge
> +
> +maintainers:
> + - Danny Kaehn <danny.kaehn@plexus.com>
> +
> +description:
> + The CP2112 is a USB HID device which includes an integrated I2C controller
> + and 8 GPIO pins. Its GPIO pins can each be configured as inputs, open-drain
> + outputs, or push-pull outputs.
> +
> +properties:
> + compatible:
> + const: usb10c4,ea90
> +
> + reg:
> + maxItems: 1
> + description: The USB port number on the host controller
Or hub ports. Just drop 'on the host controller'.
> +
> + i2c:
> + description: The SMBus/I2C controller node for the CP2112
> + $ref: /schemas/i2c/i2c-controller.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + sda-gpios:
> + maxItems: 1
> +
> + scl-gpios:
> + maxItems: 1
These are because I2C can be on any of the pins? It's a bit odd if they
aren't used as gpios. Probably should be pinmux, but that's overkill for
2 pins.
> +
> + clock-frequency:
> + minimum: 10000
> + default: 100000
> + maximum: 400000
> +
> + interrupt-controller: true
> + "#interrupt-cells":
> + const: 2
Where does the
> +
> + gpio-controller: true
> + "#gpio-cells":
> + const: 2
> +
> + gpio-line-names:
> + minItems: 1
> + maxItems: 8
> +
> +patternProperties:
> + "-hog(-[0-9]+)?$":
> + type: object
> +
> + required:
> + - gpio-hog
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/gpio/gpio.h>
> +
> + usb {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + cp2112: device@1 {
> + compatible = "usb10c4,ea90";
> + reg = <1>;
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + sda-gpios = <&cp2112 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> + scl-gpios = <&cp2112 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
> +
> + temp@48 {
> + compatible = "national,lm75";
> + reg = <0x48>;
> + };
> + };
> +
> + gpio-controller;
> + interrupt-controller;
> + #gpio-cells = <2>;
> + gpio-line-names = "CP2112_SDA", "CP2112_SCL", "TEST2",
> + "TEST3","TEST4", "TEST5", "TEST6";
> +
> + fan-rst-hog {
> + gpio-hog;
> + gpios = <7 GPIO_ACTIVE_HIGH>;
> + output-high;
> + line-name = "FAN_RST";
> + };
> + };
> + };
>
> --
> 2.25.1
>
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox