+ */
+
+#include <linux/device.h>
-+#include <linux/gpio_buttons.h>
++#include <linux/gpio_keys.h>
+#include <linux/gpio.h>
+#include <linux/i2c.h>
+#include <linux/i2c-gpio.h>
+ { 12, GPIOF_IN, "*GSC_IRQ#" },
+ { 13, GPIOF_OUT_INIT_HIGH, "*PCIE_RST#"},
+ // GSC GPIO
-+#if !(defined(CONFIG_INPUT_GPIO_BUTTONS) || defined(CONFIG_INPUT_GPIO_BUTTONS_MODULE))
++#if !(IS_ENABLED(CONFIG_KEYBOARD_GPIO_POLLED))
+ {100, GPIOF_IN, "*USER_PB#" },
+#endif
+ {103, GPIOF_OUT_INIT_HIGH, "*5V_EN" }, // 5V aux supply enable
+ { 12, GPIOF_IN, "*GSC_IRQ#" },
+ { 13, GPIOF_OUT_INIT_HIGH, "*PCIE_RST#"},
+ // GSC GPIO
-+#if !(defined(CONFIG_INPUT_GPIO_BUTTONS) || defined(CONFIG_INPUT_GPIO_BUTTONS_MODULE))
++#if !(IS_ENABLED(CONFIG_KEYBOARD_GPIO_POLLED))
+ {100, GPIOF_IN, "*USER_PB#" },
+#endif
+ {108, GPIOF_OUT_INIT_LOW, "*ENET1_EN#" }, // ENET1 TX Enable
+};
+
+
-+static struct gpio_button cambria_gpio_buttons[] = {
++static struct gpio_keys_button cambria_gpio_buttons[] = {
+ {
+ .desc = "user",
+ .type = EV_KEY,
+ .code = BTN_0,
-+ .threshold = 2,
++ .debounce_interval = 6,
+ .gpio = 25,
+ }
+};
+
-+static struct gpio_buttons_platform_data cambria_gpio_buttons_data = {
++static struct gpio_keys_platform_data cambria_gpio_buttons_data = {
+ .poll_interval = 500,
+ .nbuttons = 1,
+ .buttons = cambria_gpio_buttons,
+};
+
+static struct platform_device cambria_gpio_buttons_device = {
-+ .name = "gpio-buttons",
++ .name = "gpio-keys-polled",
+ .id = -1,
+ .dev.platform_data = &cambria_gpio_buttons_data,
+};
+ cambria_gpio_leds[2].gpio = 119; // PNLLED4#
+ platform_device_register(&cambria_gpio_leds_device);
+
-+#if (defined(CONFIG_INPUT_GPIO_BUTTONS) || defined(CONFIG_INPUT_GPIO_BUTTONS_MODULE))
++#if (IS_ENABLED(CONFIG_KEYBOARD_GPIO_POLLED))
+ cambria_gpio_buttons[0].gpio = 100;
+ platform_device_register(&cambria_gpio_buttons_device);
+#endif
+ cambria_gpio_leds[2].gpio = 119;
+ platform_device_register(&cambria_gpio_leds_device);
+
-+#if (defined(CONFIG_INPUT_GPIO_BUTTONS) || defined(CONFIG_INPUT_GPIO_BUTTONS_MODULE))
++#if (IS_ENABLED(CONFIG_KEYBOARD_GPIO_POLLED))
+ cambria_gpio_buttons[0].gpio = 100;
+ platform_device_register(&cambria_gpio_buttons_device);
+#endif