* [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
@ 2024-06-04 0:53 Daisuke Nojiri
2024-06-04 3:12 ` Tzung-Bi Shih
` (11 more replies)
0 siblings, 12 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-04 0:53 UTC (permalink / raw)
Cc: Daisuke Nojiri, Benson Leung, Tzung-Bi Shih, Guenter Roeck,
Hans Verkuil, Reka Norman, Abhishek Pandit-Subedi,
Gwendal Grignou, Pavan Holla, Ching-Kang Yen, Lukasz Majczak,
Stephen Boyd, Prashant Malani, chrome-platform, linux-kernel
This CL upgrades get_next_event to version 3.
The max supported version will be v3. So, we speak v3 even if the EC
says it supports v4+.
BUG=b:331761304
TEST=Type keys on Kyogre.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
---
drivers/platform/chrome/cros_ec_proto.c | 27 ++++++++++-----
.../linux/platform_data/cros_ec_commands.h | 34 +++++++++++++++++++
include/linux/platform_data/cros_ec_proto.h | 2 +-
3 files changed, 53 insertions(+), 10 deletions(-)
diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index 945b1b15a04c..df257ab12968 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -686,7 +686,7 @@ EXPORT_SYMBOL(cros_ec_cmd_xfer_status);
static int get_next_event_xfer(struct cros_ec_device *ec_dev,
struct cros_ec_command *msg,
- struct ec_response_get_next_event_v1 *event,
+ struct ec_response_get_next_event_v3 *event,
int version, uint32_t size)
{
int ret;
@@ -709,11 +709,12 @@ static int get_next_event(struct cros_ec_device *ec_dev)
{
struct {
struct cros_ec_command msg;
- struct ec_response_get_next_event_v1 event;
+ struct ec_response_get_next_event_v3 event;
} __packed buf;
struct cros_ec_command *msg = &buf.msg;
- struct ec_response_get_next_event_v1 *event = &buf.event;
- const int cmd_version = ec_dev->mkbp_event_supported - 1;
+ struct ec_response_get_next_event_v3 *event = &buf.event;
+ int cmd_version = ec_dev->mkbp_event_supported - 1;
+ uint32_t size;
memset(msg, 0, sizeof(*msg));
if (ec_dev->suspended) {
@@ -721,12 +722,20 @@ static int get_next_event(struct cros_ec_device *ec_dev)
return -EHOSTDOWN;
}
- if (cmd_version == 0)
- return get_next_event_xfer(ec_dev, msg, event, 0,
- sizeof(struct ec_response_get_next_event));
+ if (cmd_version == 0) {
+ size = sizeof(struct ec_response_get_next_event);
+ } else if (cmd_version < 3) {
+ size = sizeof(struct ec_response_get_next_event_v1);
+ } else {
+ /*
+ * The max version we support is v3. So, we speak v3 even if the
+ * EC says it supports v4+.
+ */
+ cmd_version = 3;
+ size = sizeof(struct ec_response_get_next_event_v3);
+ }
- return get_next_event_xfer(ec_dev, msg, event, cmd_version,
- sizeof(struct ec_response_get_next_event_v1));
+ return get_next_event_xfer(ec_dev, msg, event, cmd_version, size);
}
static int get_keyboard_state_event(struct cros_ec_device *ec_dev)
diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h
index 070e49c5381e..fff191a8d413 100644
--- a/include/linux/platform_data/cros_ec_commands.h
+++ b/include/linux/platform_data/cros_ec_commands.h
@@ -3527,6 +3527,34 @@ union __ec_align_offset1 ec_response_get_next_data_v1 {
};
BUILD_ASSERT(sizeof(union ec_response_get_next_data_v1) == 16);
+union __ec_align_offset1 ec_response_get_next_data_v3 {
+ uint8_t key_matrix[18];
+
+ /* Unaligned */
+ uint32_t host_event;
+ uint64_t host_event64;
+
+ struct __ec_todo_unpacked {
+ /* For aligning the fifo_info */
+ uint8_t reserved[3];
+ struct ec_response_motion_sense_fifo_info info;
+ } sensor_fifo;
+
+ uint32_t buttons;
+
+ uint32_t switches;
+
+ uint32_t fp_events;
+
+ uint32_t sysrq;
+
+ /* CEC events from enum mkbp_cec_event */
+ uint32_t cec_events;
+
+ uint8_t cec_message[16];
+};
+BUILD_ASSERT(sizeof(union ec_response_get_next_data_v3) == 18);
+
struct ec_response_get_next_event {
uint8_t event_type;
/* Followed by event data if any */
@@ -3539,6 +3567,12 @@ struct ec_response_get_next_event_v1 {
union ec_response_get_next_data_v1 data;
} __ec_align1;
+struct ec_response_get_next_event_v3 {
+ uint8_t event_type;
+ /* Followed by event data if any */
+ union ec_response_get_next_data_v3 data;
+} __ec_align1;
+
/* Bit indices for buttons and switches.*/
/* Buttons */
#define EC_MKBP_POWER_BUTTON 0
diff --git a/include/linux/platform_data/cros_ec_proto.h b/include/linux/platform_data/cros_ec_proto.h
index 8865e350c12a..dbfd38b3becd 100644
--- a/include/linux/platform_data/cros_ec_proto.h
+++ b/include/linux/platform_data/cros_ec_proto.h
@@ -185,7 +185,7 @@ struct cros_ec_device {
bool host_sleep_v1;
struct blocking_notifier_head event_notifier;
- struct ec_response_get_next_event_v1 event_data;
+ struct ec_response_get_next_event_v3 event_data;
int event_size;
u32 host_event_wake_mask;
u32 last_resume_result;
--
2.45.1.288.g0e0cd299f1-goog
^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
@ 2024-06-04 3:12 ` Tzung-Bi Shih
2024-06-04 17:01 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
` (10 subsequent siblings)
11 siblings, 0 replies; 25+ messages in thread
From: Tzung-Bi Shih @ 2024-06-04 3:12 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: Benson Leung, Guenter Roeck, Hans Verkuil, Reka Norman,
Abhishek Pandit-Subedi, Gwendal Grignou, Pavan Holla,
Ching-Kang Yen, Lukasz Majczak, Stephen Boyd, Prashant Malani,
chrome-platform, linux-kernel
On Mon, Jun 03, 2024 at 05:53:12PM -0700, Daisuke Nojiri wrote:
> This CL upgrades get_next_event to version 3.
s/This CL upgrades/Upgrade/.
> BUG=b:331761304
> TEST=Type keys on Kyogre.
Please remove the tags as upstream doesn't use them.
> .../linux/platform_data/cros_ec_commands.h | 34 +++++++++++++++++++
Please separate the changes of the header into an independent patch. Says,
the changes in the header is a "sync" from include/ec_commands.h of EC which
is unlikely to be reverted. However, the rest of changes in the patch could
be reverted if something went wrong.
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
2024-06-04 3:12 ` Tzung-Bi Shih
@ 2024-06-04 17:01 ` Daisuke Nojiri
2024-06-05 2:40 ` patchwork-bot+chrome-platform
` (2 more replies)
2024-06-04 17:07 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (9 subsequent siblings)
11 siblings, 3 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-04 17:01 UTC (permalink / raw)
Cc: Daisuke Nojiri, Benson Leung, Guenter Roeck, Hans Verkuil,
Reka Norman, Tzung-Bi Shih, Abhishek Pandit-Subedi,
Gwendal Grignou, Pavan Holla, Ching-Kang Yen, Lukasz Majczak,
chrome-platform, linux-kernel
Add struct ec_response_get_next_event_v3 to upgrade
EC_CMD_GET_NEXT_EVENT to version 3.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
---
.../linux/platform_data/cros_ec_commands.h | 34 +++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h
index 070e49c5381e..fff191a8d413 100644
--- a/include/linux/platform_data/cros_ec_commands.h
+++ b/include/linux/platform_data/cros_ec_commands.h
@@ -3527,6 +3527,34 @@ union __ec_align_offset1 ec_response_get_next_data_v1 {
};
BUILD_ASSERT(sizeof(union ec_response_get_next_data_v1) == 16);
+union __ec_align_offset1 ec_response_get_next_data_v3 {
+ uint8_t key_matrix[18];
+
+ /* Unaligned */
+ uint32_t host_event;
+ uint64_t host_event64;
+
+ struct __ec_todo_unpacked {
+ /* For aligning the fifo_info */
+ uint8_t reserved[3];
+ struct ec_response_motion_sense_fifo_info info;
+ } sensor_fifo;
+
+ uint32_t buttons;
+
+ uint32_t switches;
+
+ uint32_t fp_events;
+
+ uint32_t sysrq;
+
+ /* CEC events from enum mkbp_cec_event */
+ uint32_t cec_events;
+
+ uint8_t cec_message[16];
+};
+BUILD_ASSERT(sizeof(union ec_response_get_next_data_v3) == 18);
+
struct ec_response_get_next_event {
uint8_t event_type;
/* Followed by event data if any */
@@ -3539,6 +3567,12 @@ struct ec_response_get_next_event_v1 {
union ec_response_get_next_data_v1 data;
} __ec_align1;
+struct ec_response_get_next_event_v3 {
+ uint8_t event_type;
+ /* Followed by event data if any */
+ union ec_response_get_next_data_v3 data;
+} __ec_align1;
+
/* Bit indices for buttons and switches.*/
/* Buttons */
#define EC_MKBP_POWER_BUTTON 0
--
2.45.1.288.g0e0cd299f1-goog
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
2024-06-04 3:12 ` Tzung-Bi Shih
2024-06-04 17:01 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
@ 2024-06-04 17:07 ` Daisuke Nojiri
2024-06-04 17:09 ` [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
` (8 subsequent siblings)
11 siblings, 0 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-04 17:07 UTC (permalink / raw)
Cc: Daisuke Nojiri, Benson Leung, Tzung-Bi Shih, Guenter Roeck,
Prashant Malani, Stephen Boyd, chrome-platform, linux-kernel
Upgrade EC_CMD_GET_NEXT_EVENT to version 3.
The max supported version will be v3. So, we speak v3 even if the EC
says it supports v4+.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
---
drivers/platform/chrome/cros_ec_proto.c | 27 ++++++++++++++-------
include/linux/platform_data/cros_ec_proto.h | 2 +-
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index 945b1b15a04c..df257ab12968 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -686,7 +686,7 @@ EXPORT_SYMBOL(cros_ec_cmd_xfer_status);
static int get_next_event_xfer(struct cros_ec_device *ec_dev,
struct cros_ec_command *msg,
- struct ec_response_get_next_event_v1 *event,
+ struct ec_response_get_next_event_v3 *event,
int version, uint32_t size)
{
int ret;
@@ -709,11 +709,12 @@ static int get_next_event(struct cros_ec_device *ec_dev)
{
struct {
struct cros_ec_command msg;
- struct ec_response_get_next_event_v1 event;
+ struct ec_response_get_next_event_v3 event;
} __packed buf;
struct cros_ec_command *msg = &buf.msg;
- struct ec_response_get_next_event_v1 *event = &buf.event;
- const int cmd_version = ec_dev->mkbp_event_supported - 1;
+ struct ec_response_get_next_event_v3 *event = &buf.event;
+ int cmd_version = ec_dev->mkbp_event_supported - 1;
+ uint32_t size;
memset(msg, 0, sizeof(*msg));
if (ec_dev->suspended) {
@@ -721,12 +722,20 @@ static int get_next_event(struct cros_ec_device *ec_dev)
return -EHOSTDOWN;
}
- if (cmd_version == 0)
- return get_next_event_xfer(ec_dev, msg, event, 0,
- sizeof(struct ec_response_get_next_event));
+ if (cmd_version == 0) {
+ size = sizeof(struct ec_response_get_next_event);
+ } else if (cmd_version < 3) {
+ size = sizeof(struct ec_response_get_next_event_v1);
+ } else {
+ /*
+ * The max version we support is v3. So, we speak v3 even if the
+ * EC says it supports v4+.
+ */
+ cmd_version = 3;
+ size = sizeof(struct ec_response_get_next_event_v3);
+ }
- return get_next_event_xfer(ec_dev, msg, event, cmd_version,
- sizeof(struct ec_response_get_next_event_v1));
+ return get_next_event_xfer(ec_dev, msg, event, cmd_version, size);
}
static int get_keyboard_state_event(struct cros_ec_device *ec_dev)
diff --git a/include/linux/platform_data/cros_ec_proto.h b/include/linux/platform_data/cros_ec_proto.h
index 8865e350c12a..dbfd38b3becd 100644
--- a/include/linux/platform_data/cros_ec_proto.h
+++ b/include/linux/platform_data/cros_ec_proto.h
@@ -185,7 +185,7 @@ struct cros_ec_device {
bool host_sleep_v1;
struct blocking_notifier_head event_notifier;
- struct ec_response_get_next_event_v1 event_data;
+ struct ec_response_get_next_event_v3 event_data;
int event_size;
u32 host_event_wake_mask;
u32 last_resume_result;
--
2.45.1.288.g0e0cd299f1-goog
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (2 preceding siblings ...)
2024-06-04 17:07 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
@ 2024-06-04 17:09 ` Daisuke Nojiri
2024-06-04 19:09 ` Dmitry Torokhov
2024-06-04 23:07 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
` (7 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-04 17:09 UTC (permalink / raw)
Cc: Daisuke Nojiri, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Benson Leung, Guenter Roeck, Tzung-Bi Shih, Dmitry Torokhov,
devicetree, chrome-platform, linux-kernel, linux-input
Add support for keyboard matrix version 3.0. To enable it, define
CONFIG_CROS_KBD_V30.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
---
arch/arm/boot/dts/cros-ec-keyboard.dtsi | 16 ++-
drivers/platform/chrome/Kconfig | 6 ++
include/dt-bindings/input/cros-ec-keyboard.h | 104 +++++++++++++++++++
3 files changed, 123 insertions(+), 3 deletions(-)
diff --git a/arch/arm/boot/dts/cros-ec-keyboard.dtsi b/arch/arm/boot/dts/cros-ec-keyboard.dtsi
index 55c4744fa7e7..0499e254596a 100644
--- a/arch/arm/boot/dts/cros-ec-keyboard.dtsi
+++ b/arch/arm/boot/dts/cros-ec-keyboard.dtsi
@@ -8,16 +8,26 @@
#include <dt-bindings/input/input.h>
#include <dt-bindings/input/cros-ec-keyboard.h>
+#ifdef CONFIG_CROS_KBD_V30
+#define CROS_EC_KEYBOARD_COLUMN_SIZE 18
+#define CROS_TOP_ROW_KEYMAP CROS_TOP_ROW_KEYMAP_V30
+#define CROS_MAIN_KEYMAP CROS_MAIN_KEYMAP_V30
+#else
+#define CROS_EC_KEYBOARD_COLUMN_SIZE 13
+#define CROS_TOP_ROW_KEYMAP CROS_STD_TOP_ROW_KEYMAP
+#define CROS_MAIN_KEYMAP CROS_STD_MAIN_KEYMAP
+#endif
+
&cros_ec {
keyboard_controller: keyboard-controller {
compatible = "google,cros-ec-keyb";
keypad,num-rows = <8>;
- keypad,num-columns = <13>;
+ keypad,num-columns = <CROS_EC_KEYBOARD_COLUMN_SIZE>;
google,needs-ghost-filter;
linux,keymap = <
- CROS_STD_TOP_ROW_KEYMAP
- CROS_STD_MAIN_KEYMAP
+ CROS_TOP_ROW_KEYMAP
+ CROS_MAIN_KEYMAP
>;
};
};
diff --git a/drivers/platform/chrome/Kconfig b/drivers/platform/chrome/Kconfig
index d48f7f43f9e5..8f66beaa48ec 100644
--- a/drivers/platform/chrome/Kconfig
+++ b/drivers/platform/chrome/Kconfig
@@ -157,6 +157,12 @@ config CROS_KBD_LED_BACKLIGHT
To compile this driver as a module, choose M here: the
module will be called cros_kbd_led_backlight.
+config CROS_KBD_V30
+ bool "ChromeOS built-in keyboard version 3.0"
+ default n
+ help
+ If you say Y here, you get support for built-in keyboard ver 3.0.
+
config CROS_EC_CHARDEV
tristate "ChromeOS EC miscdevice"
depends on MFD_CROS_EC_DEV
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 related [flat|nested] 25+ messages in thread
* Re: [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0
2024-06-04 17:09 ` [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
@ 2024-06-04 19:09 ` Dmitry Torokhov
0 siblings, 0 replies; 25+ messages in thread
From: Dmitry Torokhov @ 2024-06-04 19:09 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Benson Leung,
Guenter Roeck, Tzung-Bi Shih, devicetree, chrome-platform,
linux-kernel, linux-input
Hi Daisuke,
On Tue, Jun 04, 2024 at 10:09:33AM -0700, Daisuke Nojiri wrote:
> Add support for keyboard matrix version 3.0. To enable it, define
> CONFIG_CROS_KBD_V30.
I might be wrong but it looks to me if one enables support for v3 keymap
then the kernel will not work for devices using other/older versions of
keymap. It might be acceptable for Chrome OS kernels but will nto work
for upstream.
I think you need to create arch/arm/boot/dts/cros-ec-keyboard-v3.dtsi
that would define "keyboard_controller" node with proper keymap and
include this new dtsi into std files for devices/boards that need it.
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (3 preceding siblings ...)
2024-06-04 17:09 ` [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
@ 2024-06-04 23:07 ` Daisuke Nojiri
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-04 23:08 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (6 subsequent siblings)
11 siblings, 2 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-04 23:07 UTC (permalink / raw)
Cc: Daisuke Nojiri, Benson Leung, Guenter Roeck, Reka Norman,
Hans Verkuil, Tzung-Bi Shih, Gwendal Grignou,
Abhishek Pandit-Subedi, Pavan Holla, Ching-Kang Yen,
Lukasz Majczak, chrome-platform, linux-kernel
Add struct ec_response_get_next_event_v3 to upgrade
EC_CMD_GET_NEXT_EVENT to version 3.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Change-Id: I69ac374fd88c3d3ef294f8e81443a2fea588bbce
---
.../linux/platform_data/cros_ec_commands.h | 34 +++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h
index 070e49c5381e..fff191a8d413 100644
--- a/include/linux/platform_data/cros_ec_commands.h
+++ b/include/linux/platform_data/cros_ec_commands.h
@@ -3527,6 +3527,34 @@ union __ec_align_offset1 ec_response_get_next_data_v1 {
};
BUILD_ASSERT(sizeof(union ec_response_get_next_data_v1) == 16);
+union __ec_align_offset1 ec_response_get_next_data_v3 {
+ uint8_t key_matrix[18];
+
+ /* Unaligned */
+ uint32_t host_event;
+ uint64_t host_event64;
+
+ struct __ec_todo_unpacked {
+ /* For aligning the fifo_info */
+ uint8_t reserved[3];
+ struct ec_response_motion_sense_fifo_info info;
+ } sensor_fifo;
+
+ uint32_t buttons;
+
+ uint32_t switches;
+
+ uint32_t fp_events;
+
+ uint32_t sysrq;
+
+ /* CEC events from enum mkbp_cec_event */
+ uint32_t cec_events;
+
+ uint8_t cec_message[16];
+};
+BUILD_ASSERT(sizeof(union ec_response_get_next_data_v3) == 18);
+
struct ec_response_get_next_event {
uint8_t event_type;
/* Followed by event data if any */
@@ -3539,6 +3567,12 @@ struct ec_response_get_next_event_v1 {
union ec_response_get_next_data_v1 data;
} __ec_align1;
+struct ec_response_get_next_event_v3 {
+ uint8_t event_type;
+ /* Followed by event data if any */
+ union ec_response_get_next_data_v3 data;
+} __ec_align1;
+
/* Bit indices for buttons and switches.*/
/* Buttons */
#define EC_MKBP_POWER_BUTTON 0
--
2.45.1.288.g0e0cd299f1-goog
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (4 preceding siblings ...)
2024-06-04 23:07 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
@ 2024-06-04 23:08 ` Daisuke Nojiri
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-04 23:09 ` [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
` (5 subsequent siblings)
11 siblings, 2 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-04 23:08 UTC (permalink / raw)
Cc: Daisuke Nojiri, Benson Leung, Tzung-Bi Shih, Guenter Roeck,
Stephen Boyd, Prashant Malani, chrome-platform, linux-kernel
Upgrade EC_CMD_GET_NEXT_EVENT to version 3.
The max supported version will be v3. So, we speak v3 even if the EC
says it supports v4+.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Change-Id: I3af4912c4f7bfdb24445dbbff5f1c6b7a4453de4
---
drivers/platform/chrome/cros_ec_proto.c | 27 ++++++++++++++-------
include/linux/platform_data/cros_ec_proto.h | 2 +-
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index 945b1b15a04c..df257ab12968 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -686,7 +686,7 @@ EXPORT_SYMBOL(cros_ec_cmd_xfer_status);
static int get_next_event_xfer(struct cros_ec_device *ec_dev,
struct cros_ec_command *msg,
- struct ec_response_get_next_event_v1 *event,
+ struct ec_response_get_next_event_v3 *event,
int version, uint32_t size)
{
int ret;
@@ -709,11 +709,12 @@ static int get_next_event(struct cros_ec_device *ec_dev)
{
struct {
struct cros_ec_command msg;
- struct ec_response_get_next_event_v1 event;
+ struct ec_response_get_next_event_v3 event;
} __packed buf;
struct cros_ec_command *msg = &buf.msg;
- struct ec_response_get_next_event_v1 *event = &buf.event;
- const int cmd_version = ec_dev->mkbp_event_supported - 1;
+ struct ec_response_get_next_event_v3 *event = &buf.event;
+ int cmd_version = ec_dev->mkbp_event_supported - 1;
+ uint32_t size;
memset(msg, 0, sizeof(*msg));
if (ec_dev->suspended) {
@@ -721,12 +722,20 @@ static int get_next_event(struct cros_ec_device *ec_dev)
return -EHOSTDOWN;
}
- if (cmd_version == 0)
- return get_next_event_xfer(ec_dev, msg, event, 0,
- sizeof(struct ec_response_get_next_event));
+ if (cmd_version == 0) {
+ size = sizeof(struct ec_response_get_next_event);
+ } else if (cmd_version < 3) {
+ size = sizeof(struct ec_response_get_next_event_v1);
+ } else {
+ /*
+ * The max version we support is v3. So, we speak v3 even if the
+ * EC says it supports v4+.
+ */
+ cmd_version = 3;
+ size = sizeof(struct ec_response_get_next_event_v3);
+ }
- return get_next_event_xfer(ec_dev, msg, event, cmd_version,
- sizeof(struct ec_response_get_next_event_v1));
+ return get_next_event_xfer(ec_dev, msg, event, cmd_version, size);
}
static int get_keyboard_state_event(struct cros_ec_device *ec_dev)
diff --git a/include/linux/platform_data/cros_ec_proto.h b/include/linux/platform_data/cros_ec_proto.h
index 8865e350c12a..dbfd38b3becd 100644
--- a/include/linux/platform_data/cros_ec_proto.h
+++ b/include/linux/platform_data/cros_ec_proto.h
@@ -185,7 +185,7 @@ struct cros_ec_device {
bool host_sleep_v1;
struct blocking_notifier_head event_notifier;
- struct ec_response_get_next_event_v1 event_data;
+ struct ec_response_get_next_event_v3 event_data;
int event_size;
u32 host_event_wake_mask;
u32 last_resume_result;
--
2.45.1.288.g0e0cd299f1-goog
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (5 preceding siblings ...)
2024-06-04 23:08 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
@ 2024-06-04 23:09 ` Daisuke Nojiri
2024-06-06 0:24 ` Rob Herring
2024-06-06 1:06 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
` (4 subsequent siblings)
11 siblings, 1 reply; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-04 23:09 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
Add support for keyboard matrix version 3.0.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
Change-Id: I18957556bcd01c74ded84571638de2583dccb93f
---
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 related [flat|nested] 25+ messages in thread
* Re: [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3
2024-06-04 17:01 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
@ 2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:43 ` Tzung-Bi Shih
2 siblings, 0 replies; 25+ messages in thread
From: patchwork-bot+chrome-platform @ 2024-06-05 2:40 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: bleung, groeck, hverkuil-cisco, rekanorman, tzungbi,
abhishekpandit, gwendal, pholla, chingkang, lma, chrome-platform,
linux-kernel
Hello:
This patch was applied to chrome-platform/linux.git (for-kernelci)
by Tzung-Bi Shih <tzungbi@kernel.org>:
On Tue, 4 Jun 2024 10:01:48 -0700 you wrote:
> Add struct ec_response_get_next_event_v3 to upgrade
> EC_CMD_GET_NEXT_EVENT to version 3.
>
> Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
> ---
> .../linux/platform_data/cros_ec_commands.h | 34 +++++++++++++++++++
> 1 file changed, 34 insertions(+)
Here is the summary with links:
- [1/3] platform/chrome: Add struct ec_response_get_next_event_v3
https://git.kernel.org/chrome-platform/c/ba098ed9829c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3
2024-06-04 23:07 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
@ 2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:40 ` patchwork-bot+chrome-platform
1 sibling, 0 replies; 25+ messages in thread
From: patchwork-bot+chrome-platform @ 2024-06-05 2:40 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: bleung, groeck, rekanorman, hverkuil-cisco, tzungbi, gwendal,
abhishekpandit, pholla, chingkang, lma, chrome-platform,
linux-kernel
Hello:
This patch was applied to chrome-platform/linux.git (for-kernelci)
by Tzung-Bi Shih <tzungbi@kernel.org>:
On Tue, 4 Jun 2024 16:07:29 -0700 you wrote:
> Add struct ec_response_get_next_event_v3 to upgrade
> EC_CMD_GET_NEXT_EVENT to version 3.
>
> Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
> Change-Id: I69ac374fd88c3d3ef294f8e81443a2fea588bbce
> ---
> .../linux/platform_data/cros_ec_commands.h | 34 +++++++++++++++++++
> 1 file changed, 34 insertions(+)
Here is the summary with links:
- [1/3] platform/chrome: Add struct ec_response_get_next_event_v3
https://git.kernel.org/chrome-platform/c/ba098ed9829c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3
2024-06-04 17:01 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
2024-06-05 2:40 ` patchwork-bot+chrome-platform
@ 2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:43 ` Tzung-Bi Shih
2 siblings, 0 replies; 25+ messages in thread
From: patchwork-bot+chrome-platform @ 2024-06-05 2:40 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: bleung, groeck, hverkuil-cisco, rekanorman, tzungbi,
abhishekpandit, gwendal, pholla, chingkang, lma, chrome-platform,
linux-kernel
Hello:
This patch was applied to chrome-platform/linux.git (for-next)
by Tzung-Bi Shih <tzungbi@kernel.org>:
On Tue, 4 Jun 2024 10:01:48 -0700 you wrote:
> Add struct ec_response_get_next_event_v3 to upgrade
> EC_CMD_GET_NEXT_EVENT to version 3.
>
> Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
> ---
> .../linux/platform_data/cros_ec_commands.h | 34 +++++++++++++++++++
> 1 file changed, 34 insertions(+)
Here is the summary with links:
- [1/3] platform/chrome: Add struct ec_response_get_next_event_v3
https://git.kernel.org/chrome-platform/c/ba098ed9829c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
2024-06-04 23:08 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
@ 2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:40 ` patchwork-bot+chrome-platform
1 sibling, 0 replies; 25+ messages in thread
From: patchwork-bot+chrome-platform @ 2024-06-05 2:40 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: bleung, tzungbi, groeck, swboyd, pmalani, chrome-platform,
linux-kernel
Hello:
This patch was applied to chrome-platform/linux.git (for-kernelci)
by Tzung-Bi Shih <tzungbi@kernel.org>:
On Tue, 4 Jun 2024 16:08:25 -0700 you wrote:
> Upgrade EC_CMD_GET_NEXT_EVENT to version 3.
>
> The max supported version will be v3. So, we speak v3 even if the EC
> says it supports v4+.
>
> Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
> Change-Id: I3af4912c4f7bfdb24445dbbff5f1c6b7a4453de4
>
> [...]
Here is the summary with links:
- [2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
https://git.kernel.org/chrome-platform/c/db9b2f0fe681
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3
2024-06-04 23:07 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
2024-06-05 2:40 ` patchwork-bot+chrome-platform
@ 2024-06-05 2:40 ` patchwork-bot+chrome-platform
1 sibling, 0 replies; 25+ messages in thread
From: patchwork-bot+chrome-platform @ 2024-06-05 2:40 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: bleung, groeck, rekanorman, hverkuil-cisco, tzungbi, gwendal,
abhishekpandit, pholla, chingkang, lma, chrome-platform,
linux-kernel
Hello:
This patch was applied to chrome-platform/linux.git (for-next)
by Tzung-Bi Shih <tzungbi@kernel.org>:
On Tue, 4 Jun 2024 16:07:29 -0700 you wrote:
> Add struct ec_response_get_next_event_v3 to upgrade
> EC_CMD_GET_NEXT_EVENT to version 3.
>
> Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
> Change-Id: I69ac374fd88c3d3ef294f8e81443a2fea588bbce
> ---
> .../linux/platform_data/cros_ec_commands.h | 34 +++++++++++++++++++
> 1 file changed, 34 insertions(+)
Here is the summary with links:
- [1/3] platform/chrome: Add struct ec_response_get_next_event_v3
https://git.kernel.org/chrome-platform/c/ba098ed9829c
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
2024-06-04 23:08 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
2024-06-05 2:40 ` patchwork-bot+chrome-platform
@ 2024-06-05 2:40 ` patchwork-bot+chrome-platform
1 sibling, 0 replies; 25+ messages in thread
From: patchwork-bot+chrome-platform @ 2024-06-05 2:40 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: bleung, tzungbi, groeck, swboyd, pmalani, chrome-platform,
linux-kernel
Hello:
This patch was applied to chrome-platform/linux.git (for-next)
by Tzung-Bi Shih <tzungbi@kernel.org>:
On Tue, 4 Jun 2024 16:08:25 -0700 you wrote:
> Upgrade EC_CMD_GET_NEXT_EVENT to version 3.
>
> The max supported version will be v3. So, we speak v3 even if the EC
> says it supports v4+.
>
> Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
> Change-Id: I3af4912c4f7bfdb24445dbbff5f1c6b7a4453de4
>
> [...]
Here is the summary with links:
- [2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
https://git.kernel.org/chrome-platform/c/db9b2f0fe681
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3
2024-06-04 17:01 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:40 ` patchwork-bot+chrome-platform
@ 2024-06-05 2:43 ` Tzung-Bi Shih
2 siblings, 0 replies; 25+ messages in thread
From: Tzung-Bi Shih @ 2024-06-05 2:43 UTC (permalink / raw)
To: Daisuke Nojiri
Cc: Benson Leung, Guenter Roeck, Hans Verkuil, Reka Norman,
Tzung-Bi Shih, Abhishek Pandit-Subedi, Gwendal Grignou,
Pavan Holla, Ching-Kang Yen, Lukasz Majczak, chrome-platform,
linux-kernel
On Tue, Jun 04, 2024 at 10:01:48AM -0700, Daisuke Nojiri wrote:
> Add struct ec_response_get_next_event_v3 to upgrade
> EC_CMD_GET_NEXT_EVENT to version 3.
Something wrong: it should provide a cover letter for the series and also it
should be v2...
Anyway, the patches are clear to me. Applied.
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0
2024-06-04 23:09 ` [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
@ 2024-06-06 0:24 ` Rob Herring
0 siblings, 0 replies; 25+ messages in thread
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
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 [flat|nested] 25+ messages in thread
* [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (6 preceding siblings ...)
2024-06-04 23:09 ` [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
@ 2024-06-06 1:06 ` Daisuke Nojiri
2024-06-06 1:07 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (3 subsequent siblings)
11 siblings, 0 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-06 1:06 UTC (permalink / raw)
Cc: Daisuke Nojiri, Benson Leung, Guenter Roeck, Reka Norman,
Hans Verkuil, Tzung-Bi Shih, Pavan Holla, Abhishek Pandit-Subedi,
Gwendal Grignou, Lukasz Majczak, Ching-Kang Yen, chrome-platform,
linux-kernel
Add struct ec_response_get_next_event_v3 to upgrade
EC_CMD_GET_NEXT_EVENT to version 3.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
---
.../linux/platform_data/cros_ec_commands.h | 34 +++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h
index 070e49c5381e..fff191a8d413 100644
--- a/include/linux/platform_data/cros_ec_commands.h
+++ b/include/linux/platform_data/cros_ec_commands.h
@@ -3527,6 +3527,34 @@ union __ec_align_offset1 ec_response_get_next_data_v1 {
};
BUILD_ASSERT(sizeof(union ec_response_get_next_data_v1) == 16);
+union __ec_align_offset1 ec_response_get_next_data_v3 {
+ uint8_t key_matrix[18];
+
+ /* Unaligned */
+ uint32_t host_event;
+ uint64_t host_event64;
+
+ struct __ec_todo_unpacked {
+ /* For aligning the fifo_info */
+ uint8_t reserved[3];
+ struct ec_response_motion_sense_fifo_info info;
+ } sensor_fifo;
+
+ uint32_t buttons;
+
+ uint32_t switches;
+
+ uint32_t fp_events;
+
+ uint32_t sysrq;
+
+ /* CEC events from enum mkbp_cec_event */
+ uint32_t cec_events;
+
+ uint8_t cec_message[16];
+};
+BUILD_ASSERT(sizeof(union ec_response_get_next_data_v3) == 18);
+
struct ec_response_get_next_event {
uint8_t event_type;
/* Followed by event data if any */
@@ -3539,6 +3567,12 @@ struct ec_response_get_next_event_v1 {
union ec_response_get_next_data_v1 data;
} __ec_align1;
+struct ec_response_get_next_event_v3 {
+ uint8_t event_type;
+ /* Followed by event data if any */
+ union ec_response_get_next_data_v3 data;
+} __ec_align1;
+
/* Bit indices for buttons and switches.*/
/* Buttons */
#define EC_MKBP_POWER_BUTTON 0
--
2.45.1.467.gbab1589fc0-goog
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (7 preceding siblings ...)
2024-06-06 1:06 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
@ 2024-06-06 1:07 ` Daisuke Nojiri
2024-06-06 1:08 ` [PATCH 3/3] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
` (2 subsequent siblings)
11 siblings, 0 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-06 1:07 UTC (permalink / raw)
Cc: Daisuke Nojiri, Benson Leung, Tzung-Bi Shih, Guenter Roeck,
Prashant Malani, Stephen Boyd, chrome-platform, linux-kernel
Upgrade EC_CMD_GET_NEXT_EVENT to version 3.
The max supported version will be v3. So, we speak v3 even if the EC
says it supports v4+.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
---
drivers/platform/chrome/cros_ec_proto.c | 27 ++++++++++++++-------
include/linux/platform_data/cros_ec_proto.h | 2 +-
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index 945b1b15a04c..df257ab12968 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -686,7 +686,7 @@ EXPORT_SYMBOL(cros_ec_cmd_xfer_status);
static int get_next_event_xfer(struct cros_ec_device *ec_dev,
struct cros_ec_command *msg,
- struct ec_response_get_next_event_v1 *event,
+ struct ec_response_get_next_event_v3 *event,
int version, uint32_t size)
{
int ret;
@@ -709,11 +709,12 @@ static int get_next_event(struct cros_ec_device *ec_dev)
{
struct {
struct cros_ec_command msg;
- struct ec_response_get_next_event_v1 event;
+ struct ec_response_get_next_event_v3 event;
} __packed buf;
struct cros_ec_command *msg = &buf.msg;
- struct ec_response_get_next_event_v1 *event = &buf.event;
- const int cmd_version = ec_dev->mkbp_event_supported - 1;
+ struct ec_response_get_next_event_v3 *event = &buf.event;
+ int cmd_version = ec_dev->mkbp_event_supported - 1;
+ uint32_t size;
memset(msg, 0, sizeof(*msg));
if (ec_dev->suspended) {
@@ -721,12 +722,20 @@ static int get_next_event(struct cros_ec_device *ec_dev)
return -EHOSTDOWN;
}
- if (cmd_version == 0)
- return get_next_event_xfer(ec_dev, msg, event, 0,
- sizeof(struct ec_response_get_next_event));
+ if (cmd_version == 0) {
+ size = sizeof(struct ec_response_get_next_event);
+ } else if (cmd_version < 3) {
+ size = sizeof(struct ec_response_get_next_event_v1);
+ } else {
+ /*
+ * The max version we support is v3. So, we speak v3 even if the
+ * EC says it supports v4+.
+ */
+ cmd_version = 3;
+ size = sizeof(struct ec_response_get_next_event_v3);
+ }
- return get_next_event_xfer(ec_dev, msg, event, cmd_version,
- sizeof(struct ec_response_get_next_event_v1));
+ return get_next_event_xfer(ec_dev, msg, event, cmd_version, size);
}
static int get_keyboard_state_event(struct cros_ec_device *ec_dev)
diff --git a/include/linux/platform_data/cros_ec_proto.h b/include/linux/platform_data/cros_ec_proto.h
index 8865e350c12a..dbfd38b3becd 100644
--- a/include/linux/platform_data/cros_ec_proto.h
+++ b/include/linux/platform_data/cros_ec_proto.h
@@ -185,7 +185,7 @@ struct cros_ec_device {
bool host_sleep_v1;
struct blocking_notifier_head event_notifier;
- struct ec_response_get_next_event_v1 event_data;
+ struct ec_response_get_next_event_v3 event_data;
int event_size;
u32 host_event_wake_mask;
u32 last_resume_result;
--
2.45.1.467.gbab1589fc0-goog
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 3/3] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (8 preceding siblings ...)
2024-06-06 1:07 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
@ 2024-06-06 1:08 ` Daisuke Nojiri
2024-06-06 6:27 ` Krzysztof Kozlowski
[not found] ` <20240606173509.243739-1-dnojiri@chromium.org>
2024-06-06 17:40 ` [PATCH 0/3 v4] Add cros-ec-keyboard v3.0 Daisuke Nojiri
11 siblings, 1 reply; 25+ messages in thread
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
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 [flat|nested] 25+ messages in thread
* Re: [PATCH 3/3] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0
2024-06-06 1:08 ` [PATCH 3/3] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
@ 2024-06-06 6:27 ` Krzysztof Kozlowski
0 siblings, 0 replies; 25+ messages in thread
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
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 [flat|nested] 25+ messages in thread
* [PATCH 1/3 v4] platform/chrome: Add struct ec_response_get_next_event_v3
[not found] ` <20240606173509.243739-1-dnojiri@chromium.org>
@ 2024-06-06 17:34 ` Daisuke Nojiri
2024-06-06 17:34 ` [PATCH 2/3 v4] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
2024-06-06 17:34 ` [PATCH 3/3 v4] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
2 siblings, 0 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-06 17:34 UTC (permalink / raw)
Cc: Daisuke Nojiri, Benson Leung, Guenter Roeck, Hans Verkuil,
Reka Norman, Tzung-Bi Shih, Gwendal Grignou,
Abhishek Pandit-Subedi, Pavan Holla, Ching-Kang Yen,
Lukasz Majczak, chrome-platform, linux-kernel
Add struct ec_response_get_next_event_v3 to upgrade
EC_CMD_GET_NEXT_EVENT to version 3.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
---
.../linux/platform_data/cros_ec_commands.h | 34 +++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/include/linux/platform_data/cros_ec_commands.h b/include/linux/platform_data/cros_ec_commands.h
index 070e49c5381e..fff191a8d413 100644
--- a/include/linux/platform_data/cros_ec_commands.h
+++ b/include/linux/platform_data/cros_ec_commands.h
@@ -3527,6 +3527,34 @@ union __ec_align_offset1 ec_response_get_next_data_v1 {
};
BUILD_ASSERT(sizeof(union ec_response_get_next_data_v1) == 16);
+union __ec_align_offset1 ec_response_get_next_data_v3 {
+ uint8_t key_matrix[18];
+
+ /* Unaligned */
+ uint32_t host_event;
+ uint64_t host_event64;
+
+ struct __ec_todo_unpacked {
+ /* For aligning the fifo_info */
+ uint8_t reserved[3];
+ struct ec_response_motion_sense_fifo_info info;
+ } sensor_fifo;
+
+ uint32_t buttons;
+
+ uint32_t switches;
+
+ uint32_t fp_events;
+
+ uint32_t sysrq;
+
+ /* CEC events from enum mkbp_cec_event */
+ uint32_t cec_events;
+
+ uint8_t cec_message[16];
+};
+BUILD_ASSERT(sizeof(union ec_response_get_next_data_v3) == 18);
+
struct ec_response_get_next_event {
uint8_t event_type;
/* Followed by event data if any */
@@ -3539,6 +3567,12 @@ struct ec_response_get_next_event_v1 {
union ec_response_get_next_data_v1 data;
} __ec_align1;
+struct ec_response_get_next_event_v3 {
+ uint8_t event_type;
+ /* Followed by event data if any */
+ union ec_response_get_next_data_v3 data;
+} __ec_align1;
+
/* Bit indices for buttons and switches.*/
/* Buttons */
#define EC_MKBP_POWER_BUTTON 0
--
2.45.2.505.gda0bf45e8d-goog
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 2/3 v4] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
[not found] ` <20240606173509.243739-1-dnojiri@chromium.org>
2024-06-06 17:34 ` [PATCH 1/3 v4] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
@ 2024-06-06 17:34 ` Daisuke Nojiri
2024-06-06 17:34 ` [PATCH 3/3 v4] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
2 siblings, 0 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-06 17:34 UTC (permalink / raw)
Cc: Daisuke Nojiri, Benson Leung, Tzung-Bi Shih, Guenter Roeck,
Stephen Boyd, Prashant Malani, chrome-platform, linux-kernel
Upgrade EC_CMD_GET_NEXT_EVENT to version 3.
The max supported version will be v3. So, we speak v3 even if the EC
says it supports v4+.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
---
drivers/platform/chrome/cros_ec_proto.c | 27 ++++++++++++++-------
include/linux/platform_data/cros_ec_proto.h | 2 +-
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index 945b1b15a04c..df257ab12968 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -686,7 +686,7 @@ EXPORT_SYMBOL(cros_ec_cmd_xfer_status);
static int get_next_event_xfer(struct cros_ec_device *ec_dev,
struct cros_ec_command *msg,
- struct ec_response_get_next_event_v1 *event,
+ struct ec_response_get_next_event_v3 *event,
int version, uint32_t size)
{
int ret;
@@ -709,11 +709,12 @@ static int get_next_event(struct cros_ec_device *ec_dev)
{
struct {
struct cros_ec_command msg;
- struct ec_response_get_next_event_v1 event;
+ struct ec_response_get_next_event_v3 event;
} __packed buf;
struct cros_ec_command *msg = &buf.msg;
- struct ec_response_get_next_event_v1 *event = &buf.event;
- const int cmd_version = ec_dev->mkbp_event_supported - 1;
+ struct ec_response_get_next_event_v3 *event = &buf.event;
+ int cmd_version = ec_dev->mkbp_event_supported - 1;
+ uint32_t size;
memset(msg, 0, sizeof(*msg));
if (ec_dev->suspended) {
@@ -721,12 +722,20 @@ static int get_next_event(struct cros_ec_device *ec_dev)
return -EHOSTDOWN;
}
- if (cmd_version == 0)
- return get_next_event_xfer(ec_dev, msg, event, 0,
- sizeof(struct ec_response_get_next_event));
+ if (cmd_version == 0) {
+ size = sizeof(struct ec_response_get_next_event);
+ } else if (cmd_version < 3) {
+ size = sizeof(struct ec_response_get_next_event_v1);
+ } else {
+ /*
+ * The max version we support is v3. So, we speak v3 even if the
+ * EC says it supports v4+.
+ */
+ cmd_version = 3;
+ size = sizeof(struct ec_response_get_next_event_v3);
+ }
- return get_next_event_xfer(ec_dev, msg, event, cmd_version,
- sizeof(struct ec_response_get_next_event_v1));
+ return get_next_event_xfer(ec_dev, msg, event, cmd_version, size);
}
static int get_keyboard_state_event(struct cros_ec_device *ec_dev)
diff --git a/include/linux/platform_data/cros_ec_proto.h b/include/linux/platform_data/cros_ec_proto.h
index 8865e350c12a..dbfd38b3becd 100644
--- a/include/linux/platform_data/cros_ec_proto.h
+++ b/include/linux/platform_data/cros_ec_proto.h
@@ -185,7 +185,7 @@ struct cros_ec_device {
bool host_sleep_v1;
struct blocking_notifier_head event_notifier;
- struct ec_response_get_next_event_v1 event_data;
+ struct ec_response_get_next_event_v3 event_data;
int event_size;
u32 host_event_wake_mask;
u32 last_resume_result;
--
2.45.2.505.gda0bf45e8d-goog
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 3/3 v4] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0
[not found] ` <20240606173509.243739-1-dnojiri@chromium.org>
2024-06-06 17:34 ` [PATCH 1/3 v4] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
2024-06-06 17:34 ` [PATCH 2/3 v4] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
@ 2024-06-06 17:34 ` Daisuke Nojiri
2 siblings, 0 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-06 17:34 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
Add support for keyboard matrix version 3.0, which reduces keyboard
ghosting.
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.2.505.gda0bf45e8d-goog
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 0/3 v4] Add cros-ec-keyboard v3.0
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
` (10 preceding siblings ...)
[not found] ` <20240606173509.243739-1-dnojiri@chromium.org>
@ 2024-06-06 17:40 ` Daisuke Nojiri
11 siblings, 0 replies; 25+ messages in thread
From: Daisuke Nojiri @ 2024-06-06 17:40 UTC (permalink / raw)
Cc: dmitry.torokhov, robh, krzk+dt, conor+dt, bleung, groeck,
linux-input, devicetree, chrome-platform, linux-kernel, pmalani,
swboyd, hverkuil-cisco, rekanorman, abhishekpandit, pholla,
chingkang, lma, Daisuke Nojiri
This patch series adds a support for cros-ec-keyboard v3.0, which uses a
reorganized and larger keyboard matrix thus also requires a protocol update.
---
Changes in v4:
- Change subject line: ARM:... to dt-bindings:...
- Add description about keyboard matrix v3.0.
- Add cover letter.
---
Changes in v3:
- Remove CROS_KBD_V30 in Kconfig and macros conditionally set in
cros-ec-keyboard.dtsi.
---
Changes in v2:
- Separate cros_ec_commands.h from cros_ec_proto.{c.h}.
- Remove Change-Id, TEST=, BUG= lines.
Daisuke Nojiri (3):
platform/chrome: Add struct ec_response_get_next_event_v3
platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0
drivers/platform/chrome/cros_ec_proto.c | 27 +++--
include/dt-bindings/input/cros-ec-keyboard.h | 104 ++++++++++++++++++
.../linux/platform_data/cros_ec_commands.h | 34 ++++++
include/linux/platform_data/cros_ec_proto.h | 2 +-
4 files changed, 157 insertions(+), 10 deletions(-)
--
2.45.2.505.gda0bf45e8d-goog
^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2024-06-06 17:40 UTC | newest]
Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-04 0:53 [PATCH 1/2] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
2024-06-04 3:12 ` Tzung-Bi Shih
2024-06-04 17:01 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:43 ` Tzung-Bi Shih
2024-06-04 17:07 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
2024-06-04 17:09 ` [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
2024-06-04 19:09 ` Dmitry Torokhov
2024-06-04 23:07 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-04 23:08 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-05 2:40 ` patchwork-bot+chrome-platform
2024-06-04 23:09 ` [PATCH 3/3] ARM: dts: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
2024-06-06 0:24 ` Rob Herring
2024-06-06 1:06 ` [PATCH 1/3] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
2024-06-06 1:07 ` [PATCH 2/3] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
2024-06-06 1:08 ` [PATCH 3/3] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
2024-06-06 6:27 ` Krzysztof Kozlowski
[not found] ` <20240606173509.243739-1-dnojiri@chromium.org>
2024-06-06 17:34 ` [PATCH 1/3 v4] platform/chrome: Add struct ec_response_get_next_event_v3 Daisuke Nojiri
2024-06-06 17:34 ` [PATCH 2/3 v4] platform/chrome: cros_ec_proto: Upgrade get_next_event to v3 Daisuke Nojiri
2024-06-06 17:34 ` [PATCH 3/3 v4] dt-bindings: cros-ec-keyboard: Add keyboard matrix v3.0 Daisuke Nojiri
2024-06-06 17:40 ` [PATCH 0/3 v4] Add cros-ec-keyboard v3.0 Daisuke Nojiri
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox