From patchwork Tue Apr 15 16:13:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aditya Garg X-Patchwork-Id: 14052421 X-Patchwork-Delegate: jikos@jikos.cz Received: from MA0PR01CU009.outbound.protection.outlook.com (mail-southindiaazolkn19010006.outbound.protection.outlook.com [52.103.67.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A758D20AF9C; Tue, 15 Apr 2025 16:13:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.103.67.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744733603; cv=fail; b=E7OHD0lhvFd9VNRLqaatbEL31VllYYBj+I5Mervy0qvxTvUAR3QMoLZskaRYmrkHdLW6jiquO6NzEQiEXPF7HYiFZPCI/BkQDSq2OmxtLR/jO+gNV6wEbENx1r1XIAElfo+V4n4+GrLh8+w9FoMfhx/XaUSOzChwB8bniBmj44Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744733603; c=relaxed/simple; bh=FS7hBHvXyqLE+Clhwk5Ap0AeWggtrPNArMYSNfkgerM=; h=Message-ID:Date:Subject:From:To:Cc:References:In-Reply-To: Content-Type:MIME-Version; b=hgZM7waPVVXKg3E0PFy1HfnPqm89O+2sI5WSzt+erb6iCbOCJ1HvG1EYeq9jxLmiQ78Yen6rxAUaU5opqp9dkwm2ePW5d5kZN9C7brPJRIbHoH/6J9wsRjp1TpRDlskvjJdA8GXjIt+/xqFU2Fss6dHSqoIhC4IxINKHiBVf0YY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=live.com; spf=pass smtp.mailfrom=live.com; dkim=pass (2048-bit key) header.d=live.com header.i=@live.com header.b=WGd10ofT; arc=fail smtp.client-ip=52.103.67.6 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=live.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=live.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=live.com header.i=@live.com header.b="WGd10ofT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IC3pdHj7pTL0racm0MXPyK6cUt5z/lNAnO0O+KTDwIxM4tP0uAkNjbnSY7McZvSM/1cg3TWAQSQd4HQwJcC1PgcKmGfEfU0LNcjwVUbN9elYbi4guS34Rga/m7kaCvFDihVTFG9kl8MN/RqYsk8OHGtPYFr0osUU9ja7v403ApEEiMGWuAM/PZKCkVrsWJVDFOoWiyw5DwSIUHEWJKrLCy2siFy4bj3dzHYJ7zCfa/Be6l6/onZvAXkZTTbY4PBIfn/BC6TFxdMWciMffob2TxGqIsTytxzM3V6M6dCOwPUkDdfB/K891r9mbWhm1oqqCZN4yblDJ1g202DvHACLig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Gtc+M+CQmqzmrC0LRrLgaPI0HpccnUQG4WHu9ptieOc=; b=nYXsH8Jdr+/viD2WilUD/bw1BFFV3ajqm502YNzZLtcHujX4oV2B0b2F+cA0LC+fzQGWRZu47eSs1R+9JEqC+4apghSRaNAgkpXu+KRZ8OmnT5Jvx2DOZjx/CcUyNQXe5tLU7MsV48JHWxhXrO9qux1CYnN84QzA1mcJQKFLCtAeGbBJbkV7AkungwAkLRfzPRHCfh0bZTw0iw4AH7nqYG8jl5rrR0sk+cQTeApXrcQOsTcQOCGrMnGodp1FehJqxDKp4A4mKHyHeDEoEEiG9ytimrCrUkuHFZibZqirbBl/Hqf/yqvK7NmZJx/rm9hDD9Z8VgkYPfRPFlsE81336g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Gtc+M+CQmqzmrC0LRrLgaPI0HpccnUQG4WHu9ptieOc=; b=WGd10ofTjRT5TyHr8MPSHEkm1WH0gp0Qed3ywv2Gk1+RdiWd+xAFNIKmspMP4CDoSO4jXu4qlzBOCIlD//giJwUuP5pwT+og32prRA6CZ9/16tGTfJiErprhcdnEsR0lihRZjiLlVNV01ftT+GEkdt6nFB5hzL/XJgsJv/S6504GOeYSOAkI/czn5QdidMPYIgA0sA19oiRjOqkiRKB1VBTGge+N5J1ccBL4Yx9ad/4bFcmBS15hWwbcfatPGB79lJ6nWxb5iGbaQ54n1/VTblwo/Mj+QH6SsZQRS07brPV38NIdyPvJufPQiUNxdt982rrhY9EozwQTagbqxRlDOg== Received: from PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:f7::14) by PN2PR01MB9735.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:12d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.32; Tue, 15 Apr 2025 16:13:17 +0000 Received: from PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM ([fe80::324:c085:10c8:4e77]) by PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM ([fe80::324:c085:10c8:4e77%5]) with mapi id 15.20.8632.035; Tue, 15 Apr 2025 16:13:17 +0000 Message-ID: Date: Tue, 15 Apr 2025 21:43:14 +0530 User-Agent: Mozilla Thunderbird Subject: [PATCH RESEND v5 4/5] HID: apple: Add Apple Magic Keyboard A3118 USB-C support From: Aditya Garg To: Jiri Kosina , Jiri Kosina , Benjamin Tissoires , Benjamin Tissoires Cc: Grigorii Sokolik , Linux Kernel Mailing List , linux-input@vger.kernel.org References: <7EB9780A-026A-405E-AC07-DD33C11E7EE5@live.com> Content-Language: en-US In-Reply-To: <7EB9780A-026A-405E-AC07-DD33C11E7EE5@live.com> X-ClientProxiedBy: BM1PR01CA0165.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:68::35) To PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:f7::14) X-Microsoft-Original-Message-ID: Precedence: bulk X-Mailing-List: linux-input@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PN3PR01MB9597:EE_|PN2PR01MB9735:EE_ X-MS-Office365-Filtering-Correlation-Id: af53ffd2-2894-4015-e583-08dd7c386e84 X-Microsoft-Antispam: BCL:0;ARA:14566002|461199028|8060799006|6090799003|19110799003|5072599009|15080799006|7092599003|440099028|3412199025; X-Microsoft-Antispam-Message-Info: =?utf-8?q?UfB8F6YzXzEQvbT7VR1+U5Oq0KSQIwP?= =?utf-8?q?6PTFBsK3YV324GJ9Sxyvdxan5HjrDxydPfqJ4nEk74Dv/M4tExp8Cplx66DI/PNL8?= =?utf-8?q?PbX3tP58l5SyhCi6vbLqqxN48j+OO1kQestZaJQbHuLSiWFIOlakP5T7xIdHOYXeI?= =?utf-8?q?tb4Ti6muZA4cGSb158U+OrbrxjgofMvPA1w2bzbaDLPfgsjZfGopa6uW20wfqkByn?= =?utf-8?q?SajcAwQW7NdNR5RuLoVjlH+fhYw7eIRHIK0vDykyZpkCBKTEZ3+2f0FJFzjMN5+vb?= =?utf-8?q?3q53ZOyBOQBjmy5rZmpHZu1XYgREwMOz0eSDYIBghsOh5/U6A87127SPHAsMDXmFH?= =?utf-8?q?ZFHlBNbwvAnKRrY83G10ck/8NrHd/RyYICeKnJK44L8H8o6E5Ra5bNac4oDvMsSRF?= =?utf-8?q?7R7WXQBCPvnOK/5zvuJKTxnabxQpv0ElXRRgRmetL3KY+BZxp7Znh/qtdzCEa5/VN?= =?utf-8?q?tQx66PZii5KhTjMBdxaHNJUB+eRxEXL3kjfIjccvT/oc0RNmI+l+ucUVV9iNvtCHj?= =?utf-8?q?GDf0QdzjwKCURTz0im/37lmrKutIvh6M/rArYj3zwLZknLQ0vXZOGFIg+UXU+YRdH?= =?utf-8?q?Ixw1uLuXdbdWO1HCGBtPE4ufk/KVh8OZApdSJoakXT1jFIVvGUEO/LtGbh7L5Y3sP?= =?utf-8?q?UYH4pmm2e6TFHTuf8mSDK9MYG+f0Yp+f4a0Hq1Rb6OidGMiP7B2/Gvk96fi/EpOVq?= =?utf-8?q?mXlgHzU+PDAWk9Wxd5PVu5SrPg15B6EWPAIVuqwPyyDDbghpfS00LVJZufb/a0Pq7?= =?utf-8?q?9jIVk+emJyQfD8J5IalvbWZUkYZioOd3J4iD1GL/vXRwhyVbA6IoByoXdp9CEzBXq?= =?utf-8?q?2bryugI3QIfGEp9KsSAjay2/K7+HjYQ2T12+xBi0h1JoL+x3OQIW7eacLALnnMBAv?= =?utf-8?q?c5mfWL/GI66Tf/boKWpdIW8xsjJzwW7yIk8ARM8h8Mt4PvMs56MsRslLqoFjYXePB?= =?utf-8?q?Zczxo41zEe21sZ2VQkMKd8IxvQ1tzDu8MQzdvMwyGPiTLLE70yMY3xinL0oh94Sur?= =?utf-8?q?YpbHUVDctjJ8ziG/HbGvGMUzyg8EQQ/bH6hjqulS8Suggjgje+O3A20MKwFHmqhGw?= =?utf-8?q?lBuncZoVpx8cWKSZ38CeM+SXBgyPefEjbIc2WQ=3D=3D?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?txA3aJdPMYDqZdtfbre5E0S73p5l?= =?utf-8?q?8V2adFexC/Q5g1Iq1Fi9x4wC0VjxOIcdD16mdu7LDmOvlkWM476I/iyii8VOc/maX?= =?utf-8?q?IdX6AhPcmOPXiaYqrnaoxz1pWm+Lb6trJUB/GAzlmZySOraE8gzJ7Ye6OG1ZxDUJL?= =?utf-8?q?2xexUVtlUkdq1pbGaJSCm4DCwgV6lUQq4orfa8laaZgy5wnai5xLnq9vYgj2HjQkN?= =?utf-8?q?412lbvjd0uHvsnearLGTTWjpTTwHrpfqas8ilhQO0Me5/PDLsUdvUN4css0R75JAL?= =?utf-8?q?0bS2F0rOwQ6TlsNKXV6z7OysovK67dP27YK63vq1ZMGLn9/W3qHQa8fsly2g6a8za?= =?utf-8?q?i1bhmw0V/YbiIwkf45IdqPSO9mbfjEe2ESi6rtKPcOrZ7iziyxl+oCLN0HmtY1AnO?= =?utf-8?q?BPutfvVgZwn3Xn+6VFrjNXMZbSXrRbJup3z5vRDq3HNInKPTCaY3w4tTakBz2xpR2?= =?utf-8?q?Yedko1XzhQIbd0tPHve/T0V1XAQ8qQ1mpZKiCPUHG8+32SrOBhpv9pDoqezIutjDT?= =?utf-8?q?rECexWXdh/egkN4zPAHxJRQy3r79YY9VDEjUiwj4Jeum4h6kRfz9xhpkaoqxZ9md2?= =?utf-8?q?HT00XDa8+ecU2QBl13IA2oeowvT/1sIDa1i8n/iaa/I6plZvBpkXeIalrq23ztPcx?= =?utf-8?q?2RoNN7xex0Ja3Wf8lblST3KV4fAesmO74uy8wJRPMLNbIcUl4wzr7OMSM0om4ifBs?= =?utf-8?q?K4T6B6LMYsH6PrJUonh3f6b78zaJeJomGbJgcGVF3nx5BfCus/f9aCezCe7jrAlHK?= =?utf-8?q?u9Y6ztVS7qfIgYVgIKy9I+IE2/1gAfr7483eJIZTa0QSQsmh+x9ZHpfgLbbK78vyk?= =?utf-8?q?xNCOzZgW6XqEgsP3Xt7CYtBwOKq9f0WdRoJgx/9wkr7MzJmj5DOBmfYKfvZLYzUHM?= =?utf-8?q?8CCHs6rHnVLy6IDHLXlZQ+7vW37TiXuSb2PES8lvSXjnhFHQFlcK25yek3kQyKoxC?= =?utf-8?q?cyt2ziSopA4DmPIfwV5DiPa23smVuMUcQ7Qugbjv1GbaGANZRxbXI5kyUcuBzSHN3?= =?utf-8?q?TD+CIHnxAv5tP6WJyR6rrf996GuooR9eJyt5VMu2bzVhsEM6ytnBxUHrY26H1wRKA?= =?utf-8?q?YHA3p2iOXrWH/X5rxT8LXvhTOtTbRsUyfSwzwR6SI4XpMKvsxknfuBEtPeKzBbRoD?= =?utf-8?q?rmkyCieDvM0aD5gjV0mr8k1Q+RRXkJg+udnZd0gDWHzluLHqUlysuJYGSc9bK+4Kf?= =?utf-8?q?3KxxO/HZaZWBU84Vhpm7BS1emMxSyDJDVcIR6hJCz5vfuXYzYvNyGydyycm1vY356?= =?utf-8?q?v/5oYSd3Qw2ee2Kl?= X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-ae5c4.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: af53ffd2-2894-4015-e583-08dd7c386e84 X-MS-Exchange-CrossTenant-AuthSource: PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Apr 2025 16:13:17.3182 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PN2PR01MB9735 From: Grigorii Sokolik 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 Co-developed-by: Aditya Garg Signed-off-by: Aditya Garg --- drivers/hid/hid-apple.c | 21 +++++++++++++-------- drivers/hid/hid-ids.h | 9 +++++---- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c index fde438bee..e95a54113 100644 --- a/drivers/hid/hid-apple.c +++ b/drivers/hid/hid-apple.c @@ -165,7 +165,7 @@ static const struct apple_key_translation magic_keyboard_2015_fn_keys[] = { { } }; -static const struct apple_key_translation apple2021_fn_keys[] = { +static const struct apple_key_translation magic_keyboard_2021_and_2024_fn_keys[] = { { KEY_BACKSPACE, KEY_DELETE }, { KEY_ENTER, KEY_INSERT }, { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY }, @@ -482,10 +482,11 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input, table = magic_keyboard_2015_fn_keys; break; case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021: - case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024: case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021: case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021: - table = apple2021_fn_keys; + case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024: + case USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024: + table = magic_keyboard_2021_and_2024_fn_keys; break; case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J132: case USB_DEVICE_ID_APPLE_WELLSPRINGT2_J213: @@ -690,7 +691,7 @@ static void apple_setup_input(struct input_dev *input) apple_setup_key_translation(input, apple_iso_keyboard); apple_setup_key_translation(input, magic_keyboard_alu_fn_keys); apple_setup_key_translation(input, magic_keyboard_2015_fn_keys); - apple_setup_key_translation(input, apple2021_fn_keys); + apple_setup_key_translation(input, magic_keyboard_2021_and_2024_fn_keys); apple_setup_key_translation(input, macbookpro_no_esc_fn_keys); apple_setup_key_translation(input, macbookpro_dedicated_esc_fn_keys); } @@ -1165,10 +1166,6 @@ 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_2021), .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, - { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024), - .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_2024), - .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021), .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_FINGERPRINT_2021), @@ -1177,6 +1174,14 @@ 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_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024), + .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_2024), + .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024), + .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_FINGERPRINT_2024), + .driver_data = APPLE_HAS_FN | APPLE_ISO_TILDE_QUIRK }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT), .driver_data = APPLE_MAGIC_BACKLIGHT }, diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 288a2b864..8682e1b11 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -162,6 +162,11 @@ #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_JIS 0x0257 #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2015 0x0267 #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2015 0x026c +#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 USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024 0x0320 +#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2024 0x0321 #define USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI 0x0290 #define USB_DEVICE_ID_APPLE_WELLSPRING8_ISO 0x0291 #define USB_DEVICE_ID_APPLE_WELLSPRING8_JIS 0x0292 @@ -183,10 +188,6 @@ #define USB_DEVICE_ID_APPLE_IRCONTROL3 0x8241 #define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242 #define USB_DEVICE_ID_APPLE_IRCONTROL5 0x8243 -#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c -#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2024 0x0320 -#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 0x029a -#define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021 0x029f #define USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT 0x8102 #define USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY 0x8302