Chromebooks' embedded keyboards differ from standard layouts for the
top row in that they have shortcuts in place of the standard function
keys. Map these keys to achieve the functionality that is pictured on
the printouts.
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
.../boot/dts/mediatek/mt8192-asurada.dtsi | 29 +++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
index bd2730ab6266..1d1a4b9a989a 100644
--- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
@@ -525,3 +525,32 @@ &uart0 {
#include <arm/cros-ec-keyboard.dtsi>
#include <arm/cros-ec-sbs.dtsi>
+
+&keyboard_controller {
+ function-row-physmap = <
+ MATRIX_KEY(0x00, 0x02, 0) /* T1 */
+ MATRIX_KEY(0x03, 0x02, 0) /* T2 */
+ MATRIX_KEY(0x02, 0x02, 0) /* T3 */
+ MATRIX_KEY(0x01, 0x02, 0) /* T4 */
+ MATRIX_KEY(0x03, 0x04, 0) /* T5 */
+ MATRIX_KEY(0x02, 0x04, 0) /* T6 */
+ MATRIX_KEY(0x01, 0x04, 0) /* T7 */
+ MATRIX_KEY(0x02, 0x09, 0) /* T8 */
+ MATRIX_KEY(0x01, 0x09, 0) /* T9 */
+ MATRIX_KEY(0x00, 0x04, 0) /* T10 */
+ >;
+ linux,keymap = <
+ MATRIX_KEY(0x00, 0x02, KEY_BACK)
+ MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
+ MATRIX_KEY(0x02, 0x02, KEY_ZOOM)
+ MATRIX_KEY(0x01, 0x02, KEY_SCALE)
+ MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)
+ MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN)
+ MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)
+ MATRIX_KEY(0x02, 0x09, KEY_MUTE)
+ MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)
+ MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP)
+
+ CROS_STD_MAIN_KEYMAP
+ >;
+};
--
2.35.1
śr., 16 mar 2022 o 16:26 Nícolas F. R. A. Prado <nfraprado@collabora.com> napisał(a): > > Chromebooks' embedded keyboards differ from standard layouts for the > top row in that they have shortcuts in place of the standard function > keys. Map these keys to achieve the functionality that is pictured on > the printouts. > > Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com> > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > --- > > .../boot/dts/mediatek/mt8192-asurada.dtsi | 29 +++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi > index bd2730ab6266..1d1a4b9a989a 100644 > --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi > +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi > @@ -525,3 +525,32 @@ &uart0 { > > #include <arm/cros-ec-keyboard.dtsi> > #include <arm/cros-ec-sbs.dtsi> > + > +&keyboard_controller { > + function-row-physmap = < > + MATRIX_KEY(0x00, 0x02, 0) /* T1 */ > + MATRIX_KEY(0x03, 0x02, 0) /* T2 */ > + MATRIX_KEY(0x02, 0x02, 0) /* T3 */ > + MATRIX_KEY(0x01, 0x02, 0) /* T4 */ > + MATRIX_KEY(0x03, 0x04, 0) /* T5 */ > + MATRIX_KEY(0x02, 0x04, 0) /* T6 */ > + MATRIX_KEY(0x01, 0x04, 0) /* T7 */ > + MATRIX_KEY(0x02, 0x09, 0) /* T8 */ > + MATRIX_KEY(0x01, 0x09, 0) /* T9 */ > + MATRIX_KEY(0x00, 0x04, 0) /* T10 */ > + >; > + linux,keymap = < > + MATRIX_KEY(0x00, 0x02, KEY_BACK) > + MATRIX_KEY(0x03, 0x02, KEY_REFRESH) > + MATRIX_KEY(0x02, 0x02, KEY_ZOOM) > + MATRIX_KEY(0x01, 0x02, KEY_SCALE) > + MATRIX_KEY(0x03, 0x04, KEY_SYSRQ) > + MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN) > + MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP) > + MATRIX_KEY(0x02, 0x09, KEY_MUTE) > + MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN) > + MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP) > + > + CROS_STD_MAIN_KEYMAP > + >; > +}; > -- > 2.35.1 > I'm honestly a bit confused about function of this. Does this change the reported key codes via evdev interface? Or is this just a hint to userspace? If yes, would libinput report key presses as F-keys or the custom function keys? Would users be able to use the usual key combination to switch between TTYs? Would programs requiring F-keys still work? Best regards, Maya Matuszczyk > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek
Hi Maya, On Wed, Mar 16, 2022 at 05:42:20PM +0100, Maya Matuszczyk wrote: > śr., 16 mar 2022 o 16:26 Nícolas F. R. A. Prado > <nfraprado@collabora.com> napisał(a): > > > > Chromebooks' embedded keyboards differ from standard layouts for the > > top row in that they have shortcuts in place of the standard function > > keys. Map these keys to achieve the functionality that is pictured on > > the printouts. > > > > Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com> > > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > > --- > > > > .../boot/dts/mediatek/mt8192-asurada.dtsi | 29 +++++++++++++++++++ > > 1 file changed, 29 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi > > index bd2730ab6266..1d1a4b9a989a 100644 > > --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi > > +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi > > @@ -525,3 +525,32 @@ &uart0 { > > > > #include <arm/cros-ec-keyboard.dtsi> > > #include <arm/cros-ec-sbs.dtsi> > > + > > +&keyboard_controller { > > + function-row-physmap = < > > + MATRIX_KEY(0x00, 0x02, 0) /* T1 */ > > + MATRIX_KEY(0x03, 0x02, 0) /* T2 */ > > + MATRIX_KEY(0x02, 0x02, 0) /* T3 */ > > + MATRIX_KEY(0x01, 0x02, 0) /* T4 */ > > + MATRIX_KEY(0x03, 0x04, 0) /* T5 */ > > + MATRIX_KEY(0x02, 0x04, 0) /* T6 */ > > + MATRIX_KEY(0x01, 0x04, 0) /* T7 */ > > + MATRIX_KEY(0x02, 0x09, 0) /* T8 */ > > + MATRIX_KEY(0x01, 0x09, 0) /* T9 */ > > + MATRIX_KEY(0x00, 0x04, 0) /* T10 */ > > + >; > > + linux,keymap = < > > + MATRIX_KEY(0x00, 0x02, KEY_BACK) > > + MATRIX_KEY(0x03, 0x02, KEY_REFRESH) > > + MATRIX_KEY(0x02, 0x02, KEY_ZOOM) > > + MATRIX_KEY(0x01, 0x02, KEY_SCALE) > > + MATRIX_KEY(0x03, 0x04, KEY_SYSRQ) > > + MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN) > > + MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP) > > + MATRIX_KEY(0x02, 0x09, KEY_MUTE) > > + MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN) > > + MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP) > > + > > + CROS_STD_MAIN_KEYMAP > > + >; > > +}; > > -- > > 2.35.1 > > > I'm honestly a bit confused about function of this. > Does this change the reported key codes via evdev interface? Yes. > Or is this just a hint to userspace? If yes, would libinput report > key presses as F-keys or the custom function keys? > Would users be able to use the usual key combination to switch > between TTYs? > Would programs requiring F-keys still work? Not with this keyboard, since the embedded keyboard on Chromebooks doesn't have F-keys. This patch is just setting the keymap present on this platform, so that the devicetree correctly describes the hardware. Thanks, Nícolas > > Best regards, > Maya Matuszczyk > > > > > _______________________________________________ > > Linux-mediatek mailing list > > Linux-mediatek@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/linux-mediatek
© 2016 - 2024 Red Hat, Inc.