Add support for PMIC and GPIO keys on the Radxa NIO 12L board:
Declare a gpio-keys node for the Volume Up button using GPIO106.
Add the corresponding pin configuration in the pinctrl node.
Add a mediatek,mt6359-keys subnode under the PMIC to handle the
power and home buttons exposed by the MT6359.
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Julien Massot <julien.massot@collabora.com>
---
.../boot/dts/mediatek/mt8395-radxa-nio-12l.dts | 36 ++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
index 329c60cc6a6be0b4be8c0b8bb033b32d35302804..fd596e2298285361ad7c2fb828feec598d75a73e 100644
--- a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
@@ -8,6 +8,7 @@
#include "mt8195.dtsi"
#include "mt6359.dtsi"
#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pinctrl/mt8195-pinfunc.h>
#include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
@@ -60,6 +61,18 @@ backlight: backlight {
status = "disabled";
};
+ keys: gpio-keys {
+ compatible = "gpio-keys";
+
+ button-volume-up {
+ wakeup-source;
+ debounce-interval = <100>;
+ gpios = <&pio 106 GPIO_ACTIVE_LOW>;
+ label = "volume_up";
+ linux,code = <KEY_VOLUMEUP>;
+ };
+ };
+
wifi_vreg: regulator-wifi-3v3-en {
compatible = "regulator-fixed";
regulator-name = "wifi_3v3_en";
@@ -626,6 +639,14 @@ pins-txd {
};
};
+ gpio_key_pins: gpio-keys-pins {
+ pins {
+ pinmux = <PINMUX_GPIO106__FUNC_GPIO106>;
+ bias-pull-up;
+ input-enable;
+ };
+ };
+
i2c2_pins: i2c2-pins {
pins-bus {
pinmux = <PINMUX_GPIO12__FUNC_SDA2>,
@@ -880,6 +901,21 @@ &pciephy {
&pmic {
interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
+
+ mt6359keys: keys {
+ compatible = "mediatek,mt6359-keys";
+ mediatek,long-press-mode = <1>;
+ power-off-time-sec = <0>;
+
+ power-key {
+ linux,keycodes = <KEY_POWER>;
+ wakeup-source;
+ };
+
+ home {
+ linux,keycodes = <KEY_HOME>;
+ };
+ };
};
&scp {
--
2.51.0
On 05/09/2025 13:51, Julien Massot wrote: > Add support for PMIC and GPIO keys on the Radxa NIO 12L board: > Declare a gpio-keys node for the Volume Up button using GPIO106. > Add the corresponding pin configuration in the pinctrl node. > Add a mediatek,mt6359-keys subnode under the PMIC to handle the > power and home buttons exposed by the MT6359. > > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> > Signed-off-by: Julien Massot <julien.massot@collabora.com> Queued, thanks. Matthias > --- > .../boot/dts/mediatek/mt8395-radxa-nio-12l.dts | 36 ++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts > index 329c60cc6a6be0b4be8c0b8bb033b32d35302804..fd596e2298285361ad7c2fb828feec598d75a73e 100644 > --- a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts > +++ b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts > @@ -8,6 +8,7 @@ > #include "mt8195.dtsi" > #include "mt6359.dtsi" > #include <dt-bindings/gpio/gpio.h> > +#include <dt-bindings/input/input.h> > #include <dt-bindings/interrupt-controller/irq.h> > #include <dt-bindings/pinctrl/mt8195-pinfunc.h> > #include <dt-bindings/regulator/mediatek,mt6360-regulator.h> > @@ -60,6 +61,18 @@ backlight: backlight { > status = "disabled"; > }; > > + keys: gpio-keys { > + compatible = "gpio-keys"; > + > + button-volume-up { > + wakeup-source; > + debounce-interval = <100>; > + gpios = <&pio 106 GPIO_ACTIVE_LOW>; > + label = "volume_up"; > + linux,code = <KEY_VOLUMEUP>; > + }; > + }; > + > wifi_vreg: regulator-wifi-3v3-en { > compatible = "regulator-fixed"; > regulator-name = "wifi_3v3_en"; > @@ -626,6 +639,14 @@ pins-txd { > }; > }; > > + gpio_key_pins: gpio-keys-pins { > + pins { > + pinmux = <PINMUX_GPIO106__FUNC_GPIO106>; > + bias-pull-up; > + input-enable; > + }; > + }; > + > i2c2_pins: i2c2-pins { > pins-bus { > pinmux = <PINMUX_GPIO12__FUNC_SDA2>, > @@ -880,6 +901,21 @@ &pciephy { > > &pmic { > interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>; > + > + mt6359keys: keys { > + compatible = "mediatek,mt6359-keys"; > + mediatek,long-press-mode = <1>; > + power-off-time-sec = <0>; > + > + power-key { > + linux,keycodes = <KEY_POWER>; > + wakeup-source; > + }; > + > + home { > + linux,keycodes = <KEY_HOME>; > + }; > + }; > }; > > &scp { >
© 2016 - 2025 Red Hat, Inc.