Skip to content

Commit 5d9f9ec

Browse files
jannaumarcan
authored andcommitted
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>
1 parent 64450ab commit 5d9f9ec

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

drivers/hid/Kconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ config HID_APPLE
129129
tristate "Apple {i,Power,Mac}Books"
130130
depends on LEDS_CLASS
131131
depends on NEW_LEDS
132-
default !EXPERT
132+
default !EXPERT || SPI_HID_APPLE
133133
help
134134
Support for some Apple devices which less or more break
135135
HID specification.
@@ -1046,7 +1046,7 @@ config HID_SONY
10461046
* Guitar Hero PS3 and PC guitar dongles
10471047

10481048
config SONY_FF
1049-
bool "Sony PS2/3/4 accessories force feedback support"
1049+
bool "Sony PS2/3/4 accessories force feedback support"
10501050
depends on HID_SONY
10511051
select INPUT_FF_MEMLESS
10521052
help

drivers/hid/hid-apple.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -826,6 +826,10 @@ static int apple_probe(struct hid_device *hdev,
826826
struct apple_sc *asc;
827827
int ret;
828828

829+
if (id->bus == BUS_SPI && id->vendor == SPI_VENDOR_ID_APPLE &&
830+
hdev->type != HID_TYPE_SPI_KEYBOARD)
831+
return -ENODEV;
832+
829833
asc = devm_kzalloc(&hdev->dev, sizeof(*asc), GFP_KERNEL);
830834
if (asc == NULL) {
831835
hid_err(hdev, "can't alloc apple descriptor\n");
@@ -1070,6 +1074,8 @@ static const struct hid_device_id apple_devices[] = {
10701074
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
10711075
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021),
10721076
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK },
1077+
{ HID_SPI_DEVICE(SPI_VENDOR_ID_APPLE, HID_ANY_ID),
1078+
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK },
10731079

10741080
{ }
10751081
};

0 commit comments

Comments
 (0)