/dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/pinctrl/rockchip.h>
 #include <dt-bindings/usb/pd.h>
 #include "rk3588s.dtsi"
        model = "Indiedroid Nova";
        compatible = "indiedroid,nova", "rockchip,rk3588s";
 
+       adc-keys-0 {
+               compatible = "adc-keys";
+               io-channel-names = "buttons";
+               io-channels = <&saradc 0>;
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-boot {
+                       label = "boot";
+                       linux,code = <KEY_PROG1>;
+                       press-threshold-microvolt = <18000>;
+               };
+       };
+
+       adc-keys-1 {
+               compatible = "adc-keys";
+               io-channel-names = "buttons";
+               io-channels = <&saradc 1>;
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-recovery {
+                       label = "recovery";
+                       linux,code = <KEY_PROG2>;
+                       press-threshold-microvolt = <18000>;
+               };
+       };
+
        aliases {
                mmc0 = &sdhci;
                mmc1 = &sdmmc;
        };
 };
 
+&saradc {
+       vref-supply = <&vcca_1v8_s0>;
+       status = "okay";
+};
+
 /* HS400 modes seemed to cause io errors. */
 &sdhci {
        bus-width = <8>;