Skip to content

Commit e77bdf5

Browse files
GSokolJiri Kosina
authored andcommitted
HID: apple: Add Apple Magic Keyboard A3118 USB-C support
Add Apple Magic Keyboard 2024 with Touch ID device ID (05ac:0321) to those recognized by the hid-apple driver. Keyboard is otherwise compatible with the existing implementation for its earlier 2021 model. Signed-off-by: Grigorii Sokolik <[email protected]> Co-developed-by: Aditya Garg <[email protected]> Signed-off-by: Aditya Garg <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
1 parent 46d74dd commit e77bdf5

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

drivers/hid/hid-apple.c

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ static const struct apple_key_translation magic_keyboard_2015_fn_keys[] = {
165165
{ }
166166
};
167167

168-
static const struct apple_key_translation apple2021_fn_keys[] = {
168+
static const struct apple_key_translation magic_keyboard_2021_and_2024_fn_keys[] = {
169169
{ KEY_BACKSPACE, KEY_DELETE },
170170
{ KEY_ENTER, KEY_INSERT },
171171
{ KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY },
@@ -482,10 +482,11 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
482482
table = magic_keyboard_2015_fn_keys;
483483
break;
484484
case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021:
485-
case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024:
486485
case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021:
487486
case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021:
488-
table = apple2021_fn_keys;
487+
case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024:
488+
case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024:
489+
table = magic_keyboard_2021_and_2024_fn_keys;
489490
break;
490491
case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J132:
491492
case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J213:
@@ -690,7 +691,7 @@ static void apple_setup_input(struct input_dev *input)
690691
apple_setup_key_translation(input, apple_iso_keyboard);
691692
apple_setup_key_translation(input, magic_keyboard_alu_fn_keys);
692693
apple_setup_key_translation(input, magic_keyboard_2015_fn_keys);
693-
apple_setup_key_translation(input, apple2021_fn_keys);
694+
apple_setup_key_translation(input, magic_keyboard_2021_and_2024_fn_keys);
694695
apple_setup_key_translation(input, macbookpro_no_esc_fn_keys);
695696
apple_setup_key_translation(input, macbookpro_dedicated_esc_fn_keys);
696697
}
@@ -1165,10 +1166,6 @@ static const struct hid_device_id apple_devices[] = {
11651166
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
11661167
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021),
11671168
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK },
1168-
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024),
1169-
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
1170-
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024),
1171-
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK },
11721169
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021),
11731170
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
11741171
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021),
@@ -1177,6 +1174,14 @@ static const struct hid_device_id apple_devices[] = {
11771174
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
11781175
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021),
11791176
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK },
1177+
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024),
1178+
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
1179+
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024),
1180+
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK },
1181+
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024),
1182+
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK | APPLE_RDESC_BATTERY },
1183+
{ HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024),
1184+
.driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK },
11801185
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT),
11811186
.driver_data = APPLE_MAGIC_BACKLIGHT },
11821187

drivers/hid/hid-ids.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,11 @@
167167
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_JIS 0x0257
168168
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2015 0x0267
169169
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2015 0x026c
170+
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c
171+
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 0x029a
172+
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021 0x029f
173+
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024 0x0320
174+
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024 0x0321
170175
#define USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI 0x0290
171176
#define USB_DEVICE_ID_APPLE_WELLSPRING8_ISO 0x0291
172177
#define USB_DEVICE_ID_APPLE_WELLSPRING8_JIS 0x0292
@@ -188,10 +193,6 @@
188193
#define USB_DEVICE_ID_APPLE_IRCONTROL3 0x8241
189194
#define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242
190195
#define USB_DEVICE_ID_APPLE_IRCONTROL5 0x8243
191-
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c
192-
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024 0x0320
193-
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 0x029a
194-
#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021 0x029f
195196
#define USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT 0x8102
196197
#define USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY 0x8302
197198

0 commit comments

Comments
 (0)