mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-07-17 09:16:59 +08:00
65 lines
2.4 KiB
Diff
65 lines
2.4 KiB
Diff
From 2774e7333992ed45f44c7e190863b60a49876663 Mon Sep 17 00:00:00 2001
|
|
From: Janne Grunau <j@jannau.net>
|
|
Date: Sun, 19 Dec 2021 18:08:15 +0100
|
|
Subject: [PATCH 118/171] HID: apple: add Fn key mapping for Apple silicon
|
|
MacBooks
|
|
|
|
Signed-off-by: Janne Grunau <j@jannau.net>
|
|
---
|
|
drivers/hid/hid-apple.c | 25 +++++++++++++++++++++++++
|
|
1 file changed, 25 insertions(+)
|
|
|
|
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
|
|
index a085ea01d5b9..1511a2bda01f 100644
|
|
--- a/drivers/hid/hid-apple.c
|
|
+++ b/drivers/hid/hid-apple.c
|
|
@@ -252,6 +252,28 @@ static const struct apple_key_translation apple_fn_keys[] = {
|
|
{ }
|
|
};
|
|
|
|
+static const struct apple_key_translation apple_fn_keys_spi[] = {
|
|
+ { KEY_BACKSPACE, KEY_DELETE },
|
|
+ { KEY_ENTER, KEY_INSERT },
|
|
+ { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY },
|
|
+ { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY },
|
|
+ { KEY_F3, KEY_SCALE, APPLE_FLAG_FKEY },
|
|
+ { KEY_F4, KEY_SEARCH, APPLE_FLAG_FKEY },
|
|
+ { KEY_F5, KEY_RECORD, APPLE_FLAG_FKEY },
|
|
+ { KEY_F6, KEY_SLEEP, APPLE_FLAG_FKEY },
|
|
+ { KEY_F7, KEY_PREVIOUSSONG, APPLE_FLAG_FKEY },
|
|
+ { KEY_F8, KEY_PLAYPAUSE, APPLE_FLAG_FKEY },
|
|
+ { KEY_F9, KEY_NEXTSONG, APPLE_FLAG_FKEY },
|
|
+ { KEY_F10, KEY_MUTE, APPLE_FLAG_FKEY },
|
|
+ { KEY_F11, KEY_VOLUMEDOWN, APPLE_FLAG_FKEY },
|
|
+ { KEY_F12, KEY_VOLUMEUP, APPLE_FLAG_FKEY },
|
|
+ { KEY_UP, KEY_PAGEUP },
|
|
+ { KEY_DOWN, KEY_PAGEDOWN },
|
|
+ { KEY_LEFT, KEY_HOME },
|
|
+ { KEY_RIGHT, KEY_END },
|
|
+ { }
|
|
+};
|
|
+
|
|
static const struct apple_key_translation powerbook_fn_keys[] = {
|
|
{ KEY_BACKSPACE, KEY_DELETE },
|
|
{ KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY },
|
|
@@ -400,6 +422,8 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
|
|
else if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI &&
|
|
hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS)
|
|
table = macbookair_fn_keys;
|
|
+ else if (hid->vendor == SPI_VENDOR_ID_APPLE)
|
|
+ table = apple_fn_keys_spi;
|
|
else if (hid->product < 0x21d || hid->product >= 0x300)
|
|
table = powerbook_fn_keys;
|
|
else
|
|
@@ -607,6 +631,7 @@ static void apple_setup_input(struct input_dev *input)
|
|
|
|
/* Enable all needed keys */
|
|
apple_setup_key_translation(input, apple_fn_keys);
|
|
+ apple_setup_key_translation(input, apple_fn_keys_spi);
|
|
apple_setup_key_translation(input, powerbook_fn_keys);
|
|
apple_setup_key_translation(input, powerbook_numlock_keys);
|
|
apple_setup_key_translation(input, apple_iso_keyboard);
|
|
--
|
|
2.34.1
|
|
|