mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-07-17 09:16:59 +08:00
69 lines
2.3 KiB
Diff
69 lines
2.3 KiB
Diff
From f0822fe21629ff17bacc0bc48a89bc956d6343a5 Mon Sep 17 00:00:00 2001
|
|
From: Janne Grunau <j@jannau.net>
|
|
Date: Thu, 16 Dec 2021 21:15:31 +0100
|
|
Subject: [PATCH 117/171] HID: apple: add support for internal keyboards
|
|
|
|
Apple MacBook keyboards started using HID over SPI in 2015. With the
|
|
addition of the SPI HID transport they can be supported by this driver.
|
|
Support all product ids over with the Apple SPI vendor id for now.
|
|
Individual product ids will have to be added for a correct Fn/function
|
|
key mapping.
|
|
|
|
Enable by default on the Apple Arm platform.
|
|
|
|
Signed-off-by: Janne Grunau <j@jannau.net>
|
|
---
|
|
drivers/hid/Kconfig | 4 ++--
|
|
drivers/hid/hid-apple.c | 6 ++++++
|
|
2 files changed, 8 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
|
index 70da5931082f..77c3c00c877c 100644
|
|
--- a/drivers/hid/Kconfig
|
|
+++ b/drivers/hid/Kconfig
|
|
@@ -130,7 +130,7 @@ config HID_APPLE
|
|
depends on HID
|
|
depends on LEDS_CLASS
|
|
depends on NEW_LEDS
|
|
- default !EXPERT
|
|
+ default !EXPERT || SPI_HID_APPLE
|
|
help
|
|
Support for some Apple devices which less or more break
|
|
HID specification.
|
|
@@ -1041,7 +1041,7 @@ config HID_SONY
|
|
* Guitar Hero PS3 and PC guitar dongles
|
|
|
|
config SONY_FF
|
|
- bool "Sony PS2/3/4 accessories force feedback support"
|
|
+ bool "Sony PS2/3/4 accessories force feedback support"
|
|
depends on HID_SONY
|
|
select INPUT_FF_MEMLESS
|
|
help
|
|
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
|
|
index 42a568902f49..a085ea01d5b9 100644
|
|
--- a/drivers/hid/hid-apple.c
|
|
+++ b/drivers/hid/hid-apple.c
|
|
@@ -783,6 +783,10 @@ static int apple_probe(struct hid_device *hdev,
|
|
struct apple_sc *asc;
|
|
int ret;
|
|
|
|
+ if (id->bus == BUS_SPI && id->vendor == SPI_VENDOR_ID_APPLE &&
|
|
+ hdev->type != HID_TYPE_SPI_KEYBOARD)
|
|
+ return -ENODEV;
|
|
+
|
|
asc = devm_kzalloc(&hdev->dev, sizeof(*asc), GFP_KERNEL);
|
|
if (asc == NULL) {
|
|
hid_err(hdev, "can't alloc apple descriptor\n");
|
|
@@ -1024,6 +1028,8 @@ static const struct hid_device_id apple_devices[] = {
|
|
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
|
|
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021),
|
|
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK },
|
|
+ { HID_SPI_DEVICE(SPI_VENDOR_ID_APPLE, HID_ANY_ID),
|
|
+ .driver_data = APPLE_HAS_FN },
|
|
|
|
{ }
|
|
};
|
|
--
|
|
2.34.1
|
|
|