#include "qcom-msm8960.dtsi"
 #include "pm8921.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/input/gpio-keys.h>
 
 / {
        model = "Samsung Galaxy Express SGH-I437";
        chosen {
                stdout-path = "serial0:115200n8";
        };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+
+               key-home {
+                       label = "Home";
+                       gpios = <&msmgpio 40 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <5>;
+                       linux,code = <KEY_HOMEPAGE>;
+                       wakeup-event-action = <EV_ACT_ASSERTED>;
+                       wakeup-source;
+               };
+
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&msmgpio 50 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <5>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               key-volume-down {
+                       label = "Volume Down";
+                       gpios = <&msmgpio 81 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <5>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+       };
 };
 
 &gsbi5 {
                        bias-disable;
                };
        };
+
+       gpio_keys_pin_a: gpio-keys-active-state {
+               pins = "gpio40", "gpio50", "gpio81";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
 };
 
 &pm8921 {