.suspend_enter = pm_suspend_enter, .suspend_exit = pm_suspend_exit, }; #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ } static struct gpio_keys_button gpio_buttons[] = { GPIO_BUTTON(GP_KEY_ONOFF, KEY_POWER, 1, "key-power", 1), }; #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) static struct gpio_keys_platform_data plat_button = { .buttons = gpio_buttons, .nbuttons = ARRAY_SIZE(gpio_buttons), }; static struct platform_device platdev_button_device = { .name = "gpio-keys", .id = -1, .num_resources = 0, .dev = { .platform_data = &plat_button, }
GPIO_BUTTON_LOW(110, KEY_UP, "up"), GPIO_BUTTON_LOW(103, KEY_DOWN, "down"), GPIO_BUTTON_LOW(96, KEY_LEFT, "left"), GPIO_BUTTON_LOW(98, KEY_RIGHT, "right"), GPIO_BUTTON_LOW(109, KEY_PAGEUP, "game 1"), GPIO_BUTTON_LOW(111, KEY_END, "game 2"), GPIO_BUTTON_LOW(106, KEY_PAGEDOWN, "game 3"), GPIO_BUTTON_LOW(101, KEY_HOME, "game 4"), GPIO_BUTTON_LOW(102, KEY_RIGHTSHIFT, "l"), GPIO_BUTTON_LOW(97, KEY_KPPLUS, "l2"), GPIO_BUTTON_LOW(105, KEY_RIGHTCTRL, "r"), GPIO_BUTTON_LOW(107, KEY_KPMINUS, "r2"), GPIO_BUTTON_LOW(104, KEY_LEFTCTRL, "ctrl"), GPIO_BUTTON_LOW(99, KEY_MENU, "menu"), GPIO_BUTTON_LOW(176, KEY_COFFEE, "hold"), GPIO_BUTTON(100, EV_KEY, KEY_LEFTALT, 0, "alt"), GPIO_BUTTON(108, EV_SW, SW_LID, 1, "lid"), }; static struct gpio_keys_platform_data pandora_gpio_key_info = { .buttons = pandora_gpio_keys, .nbuttons = ARRAY_SIZE(pandora_gpio_keys), }; static struct platform_device pandora_keys_gpio = { .name = "gpio-keys", .id = -1, .dev = { .platform_data = &pandora_gpio_key_info, }, };
MX53_PAD_GPIO_16__GPIO7_11, MX53_PAD_GPIO_8__GPIO1_8, }; #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ } static struct gpio_keys_button loco_buttons[] = { GPIO_BUTTON(MX53_LOCO_POWER, KEY_POWER, 1, "power", 0), GPIO_BUTTON(MX53_LOCO_UI1, KEY_VOLUMEUP, 1, "volume-up", 0), GPIO_BUTTON(MX53_LOCO_UI2, KEY_VOLUMEDOWN, 1, "volume-down", 0), }; static const struct gpio_keys_platform_data loco_button_data __initconst = { .buttons = loco_buttons, .nbuttons = ARRAY_SIZE(loco_buttons), }; static inline void mx53_loco_fec_reset(void) { int ret; /* reset FEC PHY */ ret = gpio_request(LOCO_FEC_PHY_RST, "fec-phy-reset");
#define MX6SL_EVK_POWER_OFF IMX_GPIO_NR(3, 18) #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake, debounce) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ .debounce_interval = debounce, \ } static struct gpio_keys_button imx6sl_buttons[] = { GPIO_BUTTON(MX6SL_EVK_POWER_OFF, KEY_POWER, 1, "power", 1, 1), }; static struct gpio_keys_platform_data imx6sl_button_data = { .buttons = imx6sl_buttons, .nbuttons = ARRAY_SIZE(imx6sl_buttons), .rep = 0, }; static struct platform_device imx6sl_button_device = { .name = "gpio-keys", .id = -1, .num_resources = 0, .dev = { .platform_data = &imx6sl_button_data, }
MX53_PAD_DISP0_DAT19__GPIO5_13, /* vol up */ MX53_PAD_GPIO_10__GPIO4_0, /* vol down */ }; #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ } static struct gpio_keys_button ard_buttons[] = { GPIO_BUTTON(ARD_HOME, KEY_HOME, 1, "home", 0), GPIO_BUTTON(ARD_BACK, KEY_BACK, 1, "back", 0), GPIO_BUTTON(ARD_PROG, KEY_PROGRAM, 1, "program", 0), GPIO_BUTTON(ARD_VOLUMEUP, KEY_VOLUMEUP, 1, "volume-up", 0), GPIO_BUTTON(ARD_VOLUMEDOWN, KEY_VOLUMEDOWN, 1, "volume-down", 0), }; static const struct gpio_keys_platform_data ard_button_data __initconst = { .buttons = ard_buttons, .nbuttons = ARRAY_SIZE(ard_buttons), }; static struct resource ard_smsc911x_resources[] = { { .start = MX53_CS1_64MB_BASE_ADDR, .end = MX53_CS1_64MB_BASE_ADDR + SZ_32M - 1,
.suspend_exit = sabrelite_suspend_exit, }; #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ } static struct gpio_keys_button sabrelite_buttons[] = { GPIO_BUTTON(MX6Q_SABRELITE_ONOFF_KEY, KEY_POWER, 1, "key-power", 1), GPIO_BUTTON(MX6Q_SABRELITE_MENU_KEY, KEY_MENU, 1, "key-memu", 0), GPIO_BUTTON(MX6Q_SABRELITE_HOME_KEY, KEY_HOME, 1, "key-home", 0), GPIO_BUTTON(MX6Q_SABRELITE_BACK_KEY, KEY_BACK, 1, "key-back", 0), GPIO_BUTTON(MX6Q_SABRELITE_VOL_UP_KEY, KEY_VOLUMEUP, 1, "volume-up", 0), GPIO_BUTTON(MX6Q_SABRELITE_VOL_DOWN_KEY, KEY_VOLUMEDOWN, 1, "volume-down", 0), }; static struct gpio_keys_platform_data sabrelite_button_data = { .buttons = sabrelite_buttons, .nbuttons = ARRAY_SIZE(sabrelite_buttons), }; static struct platform_device sabrelite_button_device = { .name = "gpio-keys", .id = -1,
}, }; #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ } static struct gpio_keys_button smd_buttons[] = { GPIO_BUTTON(MX53_SMD_KEY_VOL_UP, KEY_VOLUMEUP, 1, "volume-up", 0), GPIO_BUTTON(MX53_SMD_KEY_VOL_DOWN, KEY_VOLUMEDOWN, 1, "volume-down", 0), }; static struct gpio_keys_platform_data smd_button_data = { .buttons = smd_buttons, .nbuttons = ARRAY_SIZE(smd_buttons), }; static struct platform_device smd_button_device = { .name = "gpio-keys", .id = -1, .num_resources = 0, .dev = { .platform_data = &smd_button_data, }
gpio_set_value(USB_PWREN, 0); } #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ } static struct gpio_keys_button loco_buttons[] = { GPIO_BUTTON(MX53_nONKEY, KEY_POWER, 1, "power", 0), GPIO_BUTTON(USER_UI1, KEY_VOLUMEUP, 1, "volume-up", 0), GPIO_BUTTON(USER_UI2, KEY_VOLUMEDOWN, 1, "volume-down", 0), }; static struct gpio_keys_platform_data loco_button_data = { .buttons = loco_buttons, .nbuttons = ARRAY_SIZE(loco_buttons), }; static struct platform_device loco_button_device = { .name = "gpio-keys", .id = -1, .num_resources = 0, .dev = { .platform_data = &loco_button_data,
}; #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ .debounce_interval = 1 \ } static struct gpio_keys_button buttons[] = { GPIO_BUTTON(IMX_GPIO_NR(4, 6), KEY_HOME, 1, "Factory default", 0), }; static struct gpio_keys_platform_data button_data = { .buttons = buttons, .nbuttons = ARRAY_SIZE(buttons), }; static struct platform_device button_device = { .name = "gpio-keys", .id = -1, .num_resources = 0, .dev = { .platform_data = &button_data, } };
SD_PAD_MODE_HIGH_SPEED, }; #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ } static struct gpio_keys_button ard_buttons[] = { GPIO_BUTTON(SABREAUTO_ANDROID_HOME, KEY_HOME, 1, "home", 0), GPIO_BUTTON(SABREAUTO_ANDROID_BACK, KEY_BACK, 1, "back", 0), GPIO_BUTTON(SABREAUTO_ANDROID_MENU, KEY_MENU, 1, "menu", 0), GPIO_BUTTON(SABREAUTO_ANDROID_VOLUP, KEY_VOLUMEUP, 1, "volume-up", 0), GPIO_BUTTON(SABREAUTO_ANDROID_VOLDOWN, KEY_VOLUMEDOWN, 1, "volume-down", 0), }; static struct gpio_keys_platform_data ard_android_button_data = { .buttons = ard_buttons, .nbuttons = ARRAY_SIZE(ard_buttons), }; static struct platform_device ard_android_button_device = { .name = "gpio-keys", .id = -1, .num_resources = 0,
#define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake, debounce) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ .debounce_interval = debounce, \ } static struct gpio_keys_button new_sabresd_buttons[] = { //GPIO_BUTTON(SABRESD_VOLUME_UP, KEY_VOLUMEUP, 1, "volume-up", 0, 1), //GPIO_BUTTON(SABRESD_VOLUME_DN, KEY_VOLUMEDOWN, 1, "volume-down", 0, 1), //GPIO_BUTTON(SABRESD_POWER_OFF, KEY_POWER, 1, "power-key", 1, 1), GPIO_BUTTON(DSA2LB_BTN_POWER, KEY_POWER, 0, "power-key", 1, 1), GPIO_BUTTON(DSA2LB_BTN_RESET, KEY_VOLUMEDOWN, 1, "volume-down", 0, 1), // -> [J.Chiang], 2014/01/22 - Added for WOL GPIO_BUTTON(DSA2LB_WOL_IRQ, KEY_POWER, 1, "power-key-wol", 1, 1), GPIO_BUTTON(SABRESD_RGMII_INT, KEY_POWER, 1, "power-key-phy", 1, 1), // <- End. }; static struct gpio_keys_platform_data new_sabresd_button_data = { .buttons = new_sabresd_buttons, .nbuttons = ARRAY_SIZE(new_sabresd_buttons), }; static struct platform_device sabresd_button_device = { .name = "gpio-keys", .id = -1,
}; #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake, debounce) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ .debounce_interval = debounce, \ } static struct gpio_keys_button hdmidongle_reva_buttons[] = { GPIO_BUTTON(HDMIDONGLE_REVA_POWER_KEY, KEY_POWER, 1, "power", 1, 1), }; static struct gpio_keys_platform_data hdmidongle_reva_button_data = { .buttons = hdmidongle_reva_buttons, .nbuttons = ARRAY_SIZE(hdmidongle_reva_buttons), }; static struct platform_device hdmidongle_reva_button_device = { .name = "gpio-keys", .id = -1, .num_resources = 0, .dev = { .platform_data = &hdmidongle_reva_button_data, } };
SD_PAD_MODE_HIGH_SPEED, }; #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ { \ .gpio = gpio_num, \ .type = EV_KEY, \ .code = ev_code, \ .active_low = act_low, \ .desc = "btn " descr, \ .wakeup = wake, \ } static struct gpio_keys_button ard_buttons[] = { GPIO_BUTTON(SABREAUTO_ANDROID_HOME, KEY_HOME, 1, "home", 0), GPIO_BUTTON(SABREAUTO_ANDROID_BACK, KEY_BACK, 1, "back", 0), GPIO_BUTTON(SABREAUTO_ANDROID_VOLUP, KEY_VOLUMEUP, 1, "volume-up", 0), GPIO_BUTTON(SABREAUTO_ANDROID_VOLDOWN, KEY_VOLUMEDOWN, 1, "volume-down", 0), GPIO_BUTTON(SABREAUTO_ANDROID_POWER, KEY_POWER, 1, "power-key", 1), }; static struct gpio_keys_platform_data ard_android_button_data = { .buttons = ard_buttons, .nbuttons = ARRAY_SIZE(ard_buttons), }; static struct platform_device ard_android_button_device = { .name = "gpio-keys", .id = -1, .num_resources = 0,