From 2bc330845ee082dbe565fb6ebe154fd28082014d Mon Sep 17 00:00:00 2001 From: Exodus Date: Sat, 3 May 2025 12:41:06 +0300 Subject: [PATCH] sunxi-6.14: Add volume up/down keyboard overlay for h616, h618 Signed-off-by: The-going <48602507+The-going@users.noreply.github.com> --- .../patches.armbian/h616-add-keys.patch | 101 ++++++++++++++++++ .../kernel/archive/sunxi-6.14/series.armbian | 1 + patch/kernel/archive/sunxi-6.14/series.conf | 1 + 3 files changed, 103 insertions(+) create mode 100644 patch/kernel/archive/sunxi-6.14/patches.armbian/h616-add-keys.patch diff --git a/patch/kernel/archive/sunxi-6.14/patches.armbian/h616-add-keys.patch b/patch/kernel/archive/sunxi-6.14/patches.armbian/h616-add-keys.patch new file mode 100644 index 000000000..7667b8e5a --- /dev/null +++ b/patch/kernel/archive/sunxi-6.14/patches.armbian/h616-add-keys.patch @@ -0,0 +1,101 @@ +From b0d0e0e7cbe9d70a50a8a9cfdcfdffb028d6cef7 Mon Sep 17 00:00:00 2001 +From: Exodus +Date: Wed, 30 Apr 2025 23:55:25 +0200 +Subject: [PATCH 1/6] h616: add keys + +KEY1 and KEY2 VOL +/- +--- + .../arm64/boot/dts/allwinner/overlay/Makefile | 1 + + .../allwinner/overlay/sun50i-h616-keys.dtso | 28 +++++++++++++++++++ + .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 1 + + drivers/input/keyboard/sun4i-lradc-keys.c | 8 ++++++ + 4 files changed, 38 insertions(+) + create mode 100644 arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-keys.dtso + +diff --git a/arch/arm64/boot/dts/allwinner/overlay/Makefile b/arch/arm64/boot/dts/allwinner/overlay/Makefile +index 3b0e2393552d..f637933c003f 100644 +--- a/arch/arm64/boot/dts/allwinner/overlay/Makefile ++++ b/arch/arm64/boot/dts/allwinner/overlay/Makefile +@@ -71,6 +71,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += \ + sun50i-h616-i2c3-ph.dtbo \ + sun50i-h616-i2c4-pg.dtbo \ + sun50i-h616-i2c4-ph.dtbo \ ++ sun50i-h616-keys.dtbo \ + sun50i-h616-pwm1-ph3.dtbo \ + sun50i-h616-pwm1-pi11.dtbo \ + sun50i-h616-pwm4-ph1.dtbo \ +diff --git a/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-keys.dtso b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-keys.dtso +new file mode 100644 +index 000000000000..e8a5665d77ce +--- /dev/null ++++ b/arch/arm64/boot/dts/allwinner/overlay/sun50i-h616-keys.dtso +@@ -0,0 +1,28 @@ ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "xunlong,orangepi-zero2w", "allwinner,sun50i-h616", "allwinner,sun50i-h618"; ++ ++ fragment@0 { ++ target = <&lradc>; ++ __overlay__ { ++ vref-supply = <®_aldo1>; ++ status = "okay"; ++ ++ button-500 { ++ label = "KEY_VOLUMEUP"; ++ linux,code = <115>; // KEY_VOLUMEUP ++ channel = <0>; ++ voltage = <500000>; ++ }; ++ ++ button-800 { ++ label = "KEY_VOLUMEDOWN"; ++ linux,code = <114>; // KEY_VOLUMEDOWN ++ channel = <0>; ++ voltage = <800000>; ++ }; ++ }; ++ }; ++}; +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +index 0f4587be1c0e..7ccc45ff3446 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + / { + interrupt-parent = <&gic>; +diff --git a/drivers/input/keyboard/sun4i-lradc-keys.c b/drivers/input/keyboard/sun4i-lradc-keys.c +index 5730f08f82d7..0ee681630f9c 100644 +--- a/drivers/input/keyboard/sun4i-lradc-keys.c ++++ b/drivers/input/keyboard/sun4i-lradc-keys.c +@@ -86,6 +86,12 @@ static const struct lradc_variant lradc_variant_r329 = { + .has_clock_reset = true, + }; + ++static const struct lradc_variant lradc_variant_h616 = { ++ .divisor_numerator = 3, ++ .divisor_denominator = 4, ++ .has_clock_reset = true, ++}; ++ + struct sun4i_lradc_keymap { + u32 voltage; + u32 keycode; +@@ -341,6 +347,8 @@ static const struct of_device_id sun4i_lradc_of_match[] = { + .data = &r_lradc_variant_a83t }, + { .compatible = "allwinner,sun50i-r329-lradc", + .data = &lradc_variant_r329 }, ++ { .compatible = "allwinner,sun50i-h616-lradc", ++ .data = &lradc_variant_h616 }, + { /* sentinel */ } + }; + MODULE_DEVICE_TABLE(of, sun4i_lradc_of_match); +-- +2.35.3 + diff --git a/patch/kernel/archive/sunxi-6.14/series.armbian b/patch/kernel/archive/sunxi-6.14/series.armbian index cec3991ad..e6855667a 100644 --- a/patch/kernel/archive/sunxi-6.14/series.armbian +++ b/patch/kernel/archive/sunxi-6.14/series.armbian @@ -180,3 +180,4 @@ patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch + patches.armbian/h616-add-keys.patch diff --git a/patch/kernel/archive/sunxi-6.14/series.conf b/patch/kernel/archive/sunxi-6.14/series.conf index 48216cde7..25d29f18f 100644 --- a/patch/kernel/archive/sunxi-6.14/series.conf +++ b/patch/kernel/archive/sunxi-6.14/series.conf @@ -483,3 +483,4 @@ patches.armbian/arm-dts-sun8i-h2-plus-orangepi-zero-fix-usb_otg-dr_mode.patch patches.armbian/BigTreeTech-CB1-dts-i2c-gpio-mode-adjustment-and-ws2812-rgb_val.patch patches.armbian/arm64-allwinner-Add-sun50i-h618-bananapi-m4-berry-support.patch + patches.armbian/h616-add-keys.patch