mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-07-23 17:47:28 +08:00
85 lines
2.8 KiB
Diff
85 lines
2.8 KiB
Diff
From 2f160927c7f5de32ea8fe86c682565cacccdbaa4 Mon Sep 17 00:00:00 2001
|
|
From: Janne Grunau <j@jannau.net>
|
|
Date: Sun, 12 Dec 2021 20:40:04 +0100
|
|
Subject: [PATCH 116/171] HID: add device IDs for Apple SPI HID devices
|
|
|
|
Apple Silicon based laptop use SPI as transport for HID. Add support for
|
|
SPI-based HID devices and and Apple keyboard and trackpad devices.
|
|
Intel based laptops using the keyboard input driver applespi use the
|
|
same HID over SPI protocol and can be supported later.
|
|
|
|
This requires SPI keyboard/mouse HID types since Apple's intenal
|
|
keyboards/trackpads use the same product id.
|
|
|
|
Signed-off-by: Janne Grunau <j@jannau.net>
|
|
---
|
|
drivers/hid/hid-core.c | 3 +++
|
|
drivers/hid/hid-ids.h | 5 +++++
|
|
include/linux/hid.h | 6 +++++-
|
|
3 files changed, 13 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
|
|
index 00154a1cd2d8..22f313716a12 100644
|
|
--- a/drivers/hid/hid-core.c
|
|
+++ b/drivers/hid/hid-core.c
|
|
@@ -2219,6 +2219,9 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask)
|
|
case BUS_I2C:
|
|
bus = "I2C";
|
|
break;
|
|
+ case BUS_SPI:
|
|
+ bus = "SPI";
|
|
+ break;
|
|
case BUS_VIRTUAL:
|
|
bus = "VIRTUAL";
|
|
break;
|
|
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
|
index d9eb676abe96..98f922774df9 100644
|
|
--- a/drivers/hid/hid-ids.h
|
|
+++ b/drivers/hid/hid-ids.h
|
|
@@ -89,6 +89,7 @@
|
|
|
|
#define USB_VENDOR_ID_APPLE 0x05ac
|
|
#define BT_VENDOR_ID_APPLE 0x004c
|
|
+#define SPI_VENDOR_ID_APPLE 0x05ac
|
|
#define USB_DEVICE_ID_APPLE_MIGHTYMOUSE 0x0304
|
|
#define USB_DEVICE_ID_APPLE_MAGICMOUSE 0x030d
|
|
#define USB_DEVICE_ID_APPLE_MAGICMOUSE2 0x0269
|
|
@@ -185,6 +186,10 @@
|
|
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c
|
|
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 0x029a
|
|
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021 0x029f
|
|
+#define SPI_DEVICE_ID_APPLE_MACBOOK_AIR_2020 0x0281
|
|
+#define SPI_DEVICE_ID_APPLE_MACBOOK_PRO13_2020 0x0341
|
|
+#define SPI_DEVICE_ID_APPLE_MACBOOK_PRO14_2021 0x0342
|
|
+#define SPI_DEVICE_ID_APPLE_MACBOOK_PRO16_2021 0x0343
|
|
|
|
#define USB_VENDOR_ID_ASUS 0x0486
|
|
#define USB_DEVICE_ID_ASUS_T91MT 0x0185
|
|
diff --git a/include/linux/hid.h b/include/linux/hid.h
|
|
index 4363a63b9775..dacfc4c7ce01 100644
|
|
--- a/include/linux/hid.h
|
|
+++ b/include/linux/hid.h
|
|
@@ -569,7 +569,9 @@ struct hid_input {
|
|
enum hid_type {
|
|
HID_TYPE_OTHER = 0,
|
|
HID_TYPE_USBMOUSE,
|
|
- HID_TYPE_USBNONE
|
|
+ HID_TYPE_USBNONE,
|
|
+ HID_TYPE_SPI_KEYBOARD,
|
|
+ HID_TYPE_SPI_MOUSE,
|
|
};
|
|
|
|
enum hid_battery_status {
|
|
@@ -715,6 +717,8 @@ struct hid_descriptor {
|
|
.bus = BUS_BLUETOOTH, .vendor = (ven), .product = (prod)
|
|
#define HID_I2C_DEVICE(ven, prod) \
|
|
.bus = BUS_I2C, .vendor = (ven), .product = (prod)
|
|
+#define HID_SPI_DEVICE(ven, prod) \
|
|
+ .bus = BUS_SPI, .vendor = (ven), .product = (prod)
|
|
|
|
#define HID_REPORT_ID(rep) \
|
|
.report_type = (rep)
|
|
--
|
|
2.34.1
|
|
|