From 2c99989c75ed9ecfceea8e755628e37b18beb280 Mon Sep 17 00:00:00 2001 From: Luke Go Date: Thu, 25 Aug 2022 11:31:01 +0900 Subject: [PATCH] ODROID: arm64/dts: overlay: Add keymatrix exmaple. - this Exampel support keyboard matrix driver. Added 4 by 4 gpio, and 11 key map. Signed-off-by: Luke Go Change-Id: If7d0c801756885c28f316d56a797425b1a8385b4 --- .../dts/amlogic/overlays/odroidc4/Makefile | 42 ++++++++-------- .../amlogic/overlays/odroidc4/keymatrix.dts | 48 +++++++++++++++++++ .../dts/amlogic/overlays/odroidn2/Makefile | 36 +++++++------- .../amlogic/overlays/odroidn2/keymatrix.dts | 48 +++++++++++++++++++ 4 files changed, 137 insertions(+), 37 deletions(-) create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidc4/keymatrix.dts create mode 100644 arch/arm64/boot/dts/amlogic/overlays/odroidn2/keymatrix.dts diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/Makefile b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/Makefile index cfdc76fae08c..490165cceb4f 100644 --- a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/Makefile +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/Makefile @@ -1,31 +1,33 @@ # Overlays for the Odroid platform -dtbo-$(CONFIG_ARCH_MESON64_ODROIDC4) += spi0.dtbo \ +dtbo-$(CONFIG_ARCH_MESON64_ODROIDC4) += \ + ads7846.dtbo \ + can0.dtbo \ + display_vu7c.dtbo \ + esp8089.dtbo \ + fanspeed-full.dtbo \ + gpio_shortcut.dtbo \ + hktft32.dtbo \ + hktft35.dtbo \ i2c0.dtbo \ i2c1.dtbo \ + keymatrix.dtbo \ + onewire.dtbo \ + otg_host_mode.dtbo \ + pcf8563.dtbo \ + pwm_a-pwmfan.dtbo \ + pwm_ab.dtbo \ + pwm_backlight.dtbo \ + pwm_cd.dtbo \ + pwm_ef.dtbo \ + sdio.dtbo \ + spi0.dtbo \ + sx865x-i2c1.dtbo \ uart0.dtbo \ uart1.dtbo \ uart2.dtbo \ uart3.dtbo \ - hktft32.dtbo \ - hktft35.dtbo \ - ads7846.dtbo \ - sx865x-i2c1.dtbo \ - pcf8563.dtbo \ - onewire.dtbo \ - can0.dtbo \ - pwm_ab.dtbo \ - pwm_cd.dtbo \ - pwm_ef.dtbo \ - pwm_a-pwmfan.dtbo \ - pwm_backlight.dtbo \ - wifi_bt_combo.dtbo \ - sdio.dtbo \ - gpio_shortcut.dtbo \ - esp8089.dtbo \ - fanspeed-full.dtbo \ - otg_host_mode.dtbo \ - display_vu7c.dtbo + wifi_bt_combo.dtbo targets += $(dtbo-y) always := $(dtbo-y) diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidc4/keymatrix.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/keymatrix.dts new file mode 100644 index 000000000000..b41f0358c54d --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidc4/keymatrix.dts @@ -0,0 +1,48 @@ +/dts-v1/; +/plugin/; + +#include +#include + +/{ + fragment@0 { + target-path = "/"; + + __overlay__ { + matrix_keypad: matrix-keypad { + compatible = "gpio-matrix-keypad"; + col-gpios = < + &gpio GPIOX_4 GPIO_ACTIVE_HIGH + &gpio GPIOX_0 GPIO_ACTIVE_HIGH + &gpio GPIOX_1 GPIO_ACTIVE_HIGH + &gpio GPIOX_2 GPIO_ACTIVE_HIGH + >; + row-gpios = < + &gpio GPIOX_14 GPIO_ACTIVE_HIGH + &gpio GPIOX_15 GPIO_ACTIVE_HIGH + &gpio GPIOH_7 GPIO_ACTIVE_HIGH + &gpio GPIOH_5 GPIO_ACTIVE_HIGH + >; + /* sample keymap */ + linux,keymap = < + 0x00000074 /* row 0, col 0, KEY_POWER */ + 0x00010052 /* row 0, col 1, KEY_KP0 */ + 0x0002004f /* row 0, col 2, KEY_KP1 */ + 0x00030050 /* row 0, col 3, KEY_KP2 */ + 0x01000051 /* row 1, col 0, KEY_KP3 */ + 0x0101004b /* row 1, col 1, KEY_KP4 */ + 0x0102004c /* row 1, col 2, KEY_KP5 */ + 0x0103004d /* row 1, col 3, KEY_KP6 */ + 0x02000047 /* row 2, col 0, KEY_KP7 */ + 0x02010048 /* row 2, col 1, KEY_KP8 */ + 0x02020049 /* row 2, col 2, KEY_KP9 */ + >; + gpio-activelow; + debounce-delay-ms = <100>; + col-scan-delay-us = <500>; + col-switch-delay-ms = <20>; + linux,no-autorepeat; + }; + }; + }; +}; diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/Makefile b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/Makefile index 6efd6e4f1cbc..85311548e715 100644 --- a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/Makefile +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/Makefile @@ -1,31 +1,33 @@ # Overlays for the Odroid platform -dtbo-$(CONFIG_ARCH_MESON64_ODROIDN2) += spi0.dtbo \ - i2c0.dtbo \ - i2c1.dtbo \ - uart0.dtbo \ - uart1.dtbo \ +dtbo-$(CONFIG_ARCH_MESON64_ODROIDN2) += \ + ads7846.dtbo \ + can0.dtbo \ + codec_mm_cma.dtbo \ + display_vu7c.dtbo \ + fanspeed-full.dtbo \ + gpio_shortcut.dtbo \ + gpio_spdif.dtbo \ hktft32.dtbo \ hktft35.dtbo \ - ads7846.dtbo \ - sx865x-i2c1.dtbo \ - saradc.dtbo \ + i2c0.dtbo \ + i2c1.dtbo \ irblaster.dtbo \ + keymatrix.dtbo \ odroidn2-opp.dtbo \ odroidn2_plus-opp.dtbo \ onewire.dtbo \ - can0.dtbo \ - fanspeed-full.dtbo \ + otg_host_mode.dtbo \ + pwm_backlight.dtbo \ + pwm_c-pwmfan.dtbo \ pwm_cd.dtbo \ pwm_ef.dtbo \ - pwm_c-pwmfan.dtbo \ - pwm_backlight.dtbo \ - gpio_spdif.dtbo \ + saradc.dtbo \ sdio.dtbo \ - gpio_shortcut.dtbo \ - codec_mm_cma.dtbo \ - otg_host_mode.dtbo \ - display_vu7c.dtbo + spi0.dtbo \ + sx865x-i2c1.dtbo \ + uart0.dtbo \ + uart1.dtbo targets += $(dtbo-y) always := $(dtbo-y) diff --git a/arch/arm64/boot/dts/amlogic/overlays/odroidn2/keymatrix.dts b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/keymatrix.dts new file mode 100644 index 000000000000..c48244e4ac60 --- /dev/null +++ b/arch/arm64/boot/dts/amlogic/overlays/odroidn2/keymatrix.dts @@ -0,0 +1,48 @@ +/dts-v1/; +/plugin/; + +#include +#include + +/{ + fragment@0 { + target-path = "/"; + + __overlay__ { + matrix_keypad: matrix-keypad { + compatible = "gpio-matrix-keypad"; + col-gpios = < + &gpio GPIOA_13 GPIO_ACTIVE_HIGH + &gpio GPIOX_3 GPIO_ACTIVE_HIGH + &gpio GPIOX_4 GPIO_ACTIVE_HIGH + &gpio GPIOX_0 GPIO_ACTIVE_HIGH + >; + row-gpios = < + &gpio GPIOX_1 GPIO_ACTIVE_HIGH + &gpio GPIOX_2 GPIO_ACTIVE_HIGH + &gpio GPIOX_14 GPIO_ACTIVE_HIGH + &gpio GPIOX_15 GPIO_ACTIVE_HIGH + >; + /* sample keymap */ + linux,keymap = < + 0x00000074 /* row 0, col 0, KEY_POWER */ + 0x00010052 /* row 0, col 1, KEY_KP0 */ + 0x0002004f /* row 0, col 2, KEY_KP1 */ + 0x00030050 /* row 0, col 3, KEY_KP2 */ + 0x01000051 /* row 1, col 0, KEY_KP3 */ + 0x0101004b /* row 1, col 1, KEY_KP4 */ + 0x0102004c /* row 1, col 2, KEY_KP5 */ + 0x0103004d /* row 1, col 3, KEY_KP6 */ + 0x02000047 /* row 2, col 0, KEY_KP7 */ + 0x02010048 /* row 2, col 1, KEY_KP8 */ + 0x02020049 /* row 2, col 2, KEY_KP9 */ + >; + gpio-activelow; + debounce-delay-ms = <100>; + col-scan-delay-us = <500>; + col-switch-delay-ms = <20>; + linux,no-autorepeat; + }; + }; + }; +};