Changeset 26603


Ignore:
Timestamp:
2011-04-12T11:29:21+02:00 (7 years ago)
Author:
juhosg
Message:

ar71xx: use the gpio_keys_polled driver instead of gpio_buttons

Location:
trunk/target/linux/ar71xx
Files:
38 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/ar71xx/Makefile

    r26517 r26603  
    2020DEFAULT_PACKAGES += \ 
    2121        kmod-leds-gpio kmod-input-core kmod-input-polldev \ 
    22         kmod-input-gpio-buttons kmod-button-hotplug swconfig 
     22        kmod-input-gpio-keys-polled kmod-button-hotplug swconfig 
    2323 
    2424define Target/Description 
  • trunk/target/linux/ar71xx/base-files/lib/preinit/05_enable_reset_button_ar71xx

    r19370 r26603  
    99        insmod input-core 
    1010        insmod input-polldev 
    11         insmod gpio_buttons 
     11        insmod gpio_keys_polled 
    1212        insmod button-hotplug 
    1313} 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/dev-gpio-buttons.c

    r21698 r26603  
    1616#include "dev-gpio-buttons.h" 
    1717 
    18 void __init ar71xx_add_device_gpio_buttons(int id, 
    19                                            unsigned poll_interval, 
    20                                            unsigned nbuttons, 
    21                                            struct gpio_button *buttons) 
     18void __init ar71xx_register_gpio_keys_polled(int id, 
     19                                             unsigned poll_interval, 
     20                                             unsigned nbuttons, 
     21                                             struct gpio_keys_button *buttons) 
    2222{ 
    2323        struct platform_device *pdev; 
    24         struct gpio_buttons_platform_data pdata; 
    25         struct gpio_button *p; 
     24        struct gpio_keys_platform_data pdata; 
     25        struct gpio_keys_button *p; 
    2626        int err; 
    2727 
     
    3232        memcpy(p, buttons, nbuttons * sizeof(*p)); 
    3333 
    34         pdev = platform_device_alloc("gpio-buttons", id); 
     34        pdev = platform_device_alloc("gpio-keys-polled", id); 
    3535        if (!pdev) 
    3636                goto err_free_buttons; 
     
    4444        if (err) 
    4545                goto err_put_pdev; 
    46  
    4746 
    4847        err = platform_device_add(pdev); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/dev-gpio-buttons.h

    r18937 r26603  
    1414 
    1515#include <linux/input.h> 
    16 #include <linux/gpio_buttons.h> 
     16#include <linux/gpio_keys.h> 
    1717 
    18 #include <asm/mach-ar71xx/platform.h> 
    19  
    20 void ar71xx_add_device_gpio_buttons(int id, 
    21                                     unsigned poll_interval, 
    22                                     unsigned nbuttons, 
    23                                     struct gpio_button *buttons) __init; 
     18void ar71xx_register_gpio_keys_polled(int id, 
     19                                      unsigned poll_interval, 
     20                                      unsigned nbuttons, 
     21                                      struct gpio_keys_button *buttons); 
    2422 
    2523#endif /* _AR71XX_DEV_GPIO_BUTTONS_H */ 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap81.c

    r26595 r26603  
    3131#define AP81_GPIO_BTN_SW1       21 
    3232 
    33 #define AP81_BUTTONS_POLL_INTERVAL      20 
     33#define AP81_KEYS_POLL_INTERVAL         20 /* msecs */ 
     34#define AP81_KEYS_DEBOUNCE_INTERVAL     (3 * AP81_KEYS_POLL_INTERVAL) 
    3435 
    3536#ifdef CONFIG_MTD_PARTITIONS 
     
    8889}; 
    8990 
    90 static struct gpio_button ap81_gpio_buttons[] __initdata = { 
     91static struct gpio_keys_button ap81_gpio_keys[] __initdata = { 
    9192        { 
    9293                .desc           = "sw1", 
    9394                .type           = EV_KEY, 
    9495                .code           = BTN_0, 
    95                 .threshold      = 3, 
     96                .debounce_interval = AP81_KEYS_DEBOUNCE_INTERVAL, 
    9697                .gpio           = AP81_GPIO_BTN_SW1, 
    9798                .active_low     = 1, 
     
    100101                .type           = EV_KEY, 
    101102                .code           = BTN_1, 
    102                 .threshold      = 3, 
     103                .debounce_interval = AP81_KEYS_DEBOUNCE_INTERVAL, 
    103104                .gpio           = AP81_GPIO_BTN_SW4, 
    104105                .active_low     = 1, 
     
    132133                                        ap81_leds_gpio); 
    133134 
    134         ar71xx_add_device_gpio_buttons(-1, AP81_BUTTONS_POLL_INTERVAL, 
    135                                         ARRAY_SIZE(ap81_gpio_buttons), 
    136                                         ap81_gpio_buttons); 
     135        ar71xx_register_gpio_keys_polled(-1, AP81_KEYS_POLL_INTERVAL, 
     136                                         ARRAY_SIZE(ap81_gpio_keys), 
     137                                         ap81_gpio_keys); 
    137138 
    138139        ar9xxx_add_device_wmac(eeprom, NULL); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap83.c

    r26595 r26603  
    3939#define AP83_050_GPIO_VSC7385_SCK       17 
    4040 
    41 #define AP83_BUTTONS_POLL_INTERVAL      20 
     41#define AP83_KEYS_POLL_INTERVAL         20      /* msecs */ 
     42#define AP83_KEYS_DEBOUNCE_INTERVAL     (3 * AP83_KEYS_POLL_INTERVAL) 
    4243 
    4344#ifdef CONFIG_MTD_PARTITIONS 
     
    116117}; 
    117118 
    118 static struct gpio_button ap83_gpio_buttons[] __initdata = { 
     119static struct gpio_keys_button ap83_gpio_keys[] __initdata = { 
    119120        { 
    120121                .desc           = "soft_reset", 
    121122                .type           = EV_KEY, 
    122123                .code           = KEY_RESTART, 
    123                 .threshold      = 3, 
     124                .debounce_interval = AP83_KEYS_DEBOUNCE_INTERVAL, 
    124125                .gpio           = AP83_GPIO_BTN_RESET, 
    125126                .active_low     = 1, 
     
    128129                .type           = EV_KEY, 
    129130                .code           = KEY_WPS_BUTTON, 
    130                 .threshold      = 3, 
     131                .debounce_interval = AP83_KEYS_DEBOUNCE_INTERVAL, 
    131132                .gpio           = AP83_GPIO_BTN_JUMPSTART, 
    132133                .active_low     = 1, 
     
    217218                                        ap83_leds_gpio); 
    218219 
    219         ar71xx_add_device_gpio_buttons(-1, AP83_BUTTONS_POLL_INTERVAL, 
    220                                         ARRAY_SIZE(ap83_gpio_buttons), 
    221                                         ap83_gpio_buttons); 
     220        ar71xx_register_gpio_keys_polled(-1, AP83_KEYS_POLL_INTERVAL, 
     221                                         ARRAY_SIZE(ap83_gpio_keys), 
     222                                         ap83_gpio_keys); 
    222223 
    223224        ar71xx_add_device_usb(); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ap96.c

    r23975 r26603  
    3838#define AP96_GPIO_BTN_WPS               8 
    3939 
    40 #define AP96_BUTTONS_POLL_INTERVAL    20 
     40#define AP96_KEYS_POLL_INTERVAL         20      /* msecs */ 
     41#define AP96_KEYS_DEBOUNCE_INTERVAL     (3 * AP96_KEYS_POLL_INTERVAL) 
    4142 
    4243#define AP96_WMAC0_MAC_OFFSET           0x120c 
     
    117118}; 
    118119 
    119 static struct gpio_button ap96_gpio_buttons[] __initdata = { 
     120static struct gpio_keys_button ap96_gpio_keys[] __initdata = { 
    120121        { 
    121122                .desc           = "reset", 
    122123                .type           = EV_KEY, 
    123124                .code           = KEY_RESTART, 
    124                 .threshold      = 3, 
     125                .debounce_interval = AP96_KEYS_DEBOUNCE_INTERVAL, 
    125126                .gpio           = AP96_GPIO_BTN_RESET, 
    126127                .active_low     = 1, 
     
    129130                .type           = EV_KEY, 
    130131                .code           = KEY_WPS_BUTTON, 
    131                 .threshold      = 3, 
     132                .debounce_interval = AP96_KEYS_DEBOUNCE_INTERVAL, 
    132133                .gpio           = AP96_GPIO_BTN_WPS, 
    133134                .active_low     = 1, 
     
    167168                                        ap96_leds_gpio); 
    168169 
    169         ar71xx_add_device_gpio_buttons(-1, AP96_BUTTONS_POLL_INTERVAL, 
    170                                         ARRAY_SIZE(ap96_gpio_buttons), 
    171                                         ap96_gpio_buttons); 
     170        ar71xx_register_gpio_keys_polled(-1, AP96_KEYS_POLL_INTERVAL, 
     171                                         ARRAY_SIZE(ap96_gpio_keys), 
     172                                         ap96_gpio_keys); 
    172173 
    173174        ap94_pci_init(art + AP96_CALDATA0_OFFSET, 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-aw-nr580.c

    r21075 r26603  
    3232#define AW_NR580_GPIO_BTN_RESET         11 
    3333 
    34 #define AW_NR580_BUTTONS_POLL_INTERVAL  20 
     34#define AW_NR580_KEYS_POLL_INTERVAL     20      /* msecs */ 
     35#define AW_NR580_KEYS_DEBOUNCE_INTERVAL (3 * AW_NR580_KEYS_POLL_INTERVAL) 
    3536 
    3637static struct gpio_led aw_nr580_leds_gpio[] __initdata = { 
     
    5859}; 
    5960 
    60 static struct gpio_button aw_nr580_gpio_buttons[] __initdata = { 
     61static struct gpio_keys_button aw_nr580_gpio_keys[] __initdata = { 
    6162        { 
    6263                .desc           = "reset", 
    6364                .type           = EV_KEY, 
    6465                .code           = KEY_RESTART, 
    65                 .threshold      = 3, 
     66                .debounce_interval = AW_NR580_KEYS_DEBOUNCE_INTERVAL, 
    6667                .gpio           = AW_NR580_GPIO_BTN_RESET, 
    6768                .active_low     = 1, 
     
    7071                .type           = EV_KEY, 
    7172                .code           = KEY_WPS_BUTTON, 
    72                 .threshold      = 3, 
     73                .debounce_interval = AW_NR580_KEYS_DEBOUNCE_INTERVAL, 
    7374                .gpio           = AW_NR580_GPIO_BTN_WPS, 
    7475                .active_low     = 1, 
     
    9394                                        aw_nr580_leds_gpio); 
    9495 
    95         ar71xx_add_device_gpio_buttons(-1, AW_NR580_BUTTONS_POLL_INTERVAL, 
    96                                         ARRAY_SIZE(aw_nr580_gpio_buttons), 
    97                                         aw_nr580_gpio_buttons); 
     96        ar71xx_register_gpio_keys_polled(-1, AW_NR580_KEYS_POLL_INTERVAL, 
     97                                         ARRAY_SIZE(aw_nr580_gpio_keys), 
     98                                         aw_nr580_gpio_keys); 
    9899} 
    99100 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-db120.c

    r26595 r26603  
    3434#define DB120_WMAC_MAC_OFFSET   0x1002 
    3535 
    36 #define DB120_BUTTONS_POLL_INTERVAL     20 
     36#define DB120_KEYS_POLL_INTERVAL        20      /* msecs */ 
     37#define DB120_KEYS_DEBOUNCE_INTERVAL    (3 * DB120_KEYS_POLL_INTERVAL) 
    3738 
    3839#ifdef CONFIG_MTD_PARTITIONS 
     
    99100}; 
    100101 
    101 static struct gpio_button db120_gpio_buttons[] __initdata = { 
     102static struct gpio_keys_button db120_gpio_keys[] __initdata = { 
    102103        { 
    103104                .desc           = "sw1", 
    104105                .type           = EV_KEY, 
    105106                .code           = BTN_0, 
    106                 .threshold      = 3, 
     107                .debounce_interval = DB120_KEYS_DEBOUNCE_INTERVAL, 
    107108                .gpio           = DB120_GPIO_BTN_SW1, 
    108109                .active_low     = 1, 
     
    121122                                        db120_leds_gpio); 
    122123 
    123         ar71xx_add_device_gpio_buttons(-1, DB120_BUTTONS_POLL_INTERVAL, 
    124                                         ARRAY_SIZE(db120_gpio_buttons), 
    125                                         db120_gpio_buttons); 
     124        ar71xx_register_gpio_keys_polled(-1, DB120_KEYS_POLL_INTERVAL, 
     125                                         ARRAY_SIZE(db120_gpio_keys), 
     126                                         db120_gpio_keys); 
    126127 
    127128        ar9xxx_add_device_wmac(art + DB120_CALDATA_OFFSET, 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-600-a1.c

    r26394 r26603  
    2929#define DIR_600_A1_GPIO_BTN_WPS                 12 
    3030 
    31 #define DIR_600_A1_BUTTONS_POLL_INTERVAL        20 
     31#define DIR_600_A1_KEYS_POLL_INTERVAL   20      /* msecs */ 
     32#define DIR_600_A1_KEYS_DEBOUNCE_INTERVAL (3 * DIR_600_A1_KEYS_POLL_INTERVAL) 
    3233 
    3334#define DIR_600_A1_NVRAM_ADDR   0x1f030000 
     
    9293}; 
    9394 
    94 static struct gpio_button dir_600_a1_gpio_buttons[] __initdata = { 
     95static struct gpio_keys_button dir_600_a1_gpio_keys[] __initdata = { 
    9596        { 
    9697                .desc           = "reset", 
    9798                .type           = EV_KEY, 
    9899                .code           = KEY_RESTART, 
    99                 .threshold      = 3, 
     100                .debounce_interval = DIR_600_A1_KEYS_DEBOUNCE_INTERVAL, 
    100101                .gpio           = DIR_600_A1_GPIO_BTN_RESET, 
    101102                .active_low     = 1, 
     
    104105                .type           = EV_KEY, 
    105106                .code           = KEY_WPS_BUTTON, 
    106                 .threshold      = 3, 
     107                .debounce_interval = DIR_600_A1_KEYS_DEBOUNCE_INTERVAL, 
    107108                .gpio           = DIR_600_A1_GPIO_BTN_WPS, 
    108109                .active_low     = 1, 
     
    129130                                        dir_600_a1_leds_gpio); 
    130131 
    131         ar71xx_add_device_gpio_buttons(-1, DIR_600_A1_BUTTONS_POLL_INTERVAL, 
    132                                         ARRAY_SIZE(dir_600_a1_gpio_buttons), 
    133                                         dir_600_a1_gpio_buttons); 
     132        ar71xx_register_gpio_keys_polled(-1, DIR_600_A1_KEYS_POLL_INTERVAL, 
     133                                         ARRAY_SIZE(dir_600_a1_gpio_keys), 
     134                                         dir_600_a1_gpio_keys); 
    134135 
    135136        ar71xx_eth1_data.has_ar7240_switch = 1; 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-615-c1.c

    r26595 r26603  
    3636#define DIR_615C1_GPIO_BTN_RESET        21 
    3737 
    38 #define DIR_615C1_BUTTONS_POLL_INTERVAL 20 
     38#define DIR_615C1_KEYS_POLL_INTERVAL    20      /* msecs */ 
     39#define DIR_615C1_KEYS_DEBOUNCE_INTERVAL (3 * DIR_615C1_KEYS_POLL_INTERVAL) 
    3940 
    4041#define DIR_615C1_CONFIG_ADDR           0x1f020000 
     
    113114}; 
    114115 
    115 static struct gpio_button dir_615c1_gpio_buttons[] __initdata = { 
     116static struct gpio_keys_button dir_615c1_gpio_keys[] __initdata = { 
    116117        { 
    117118                .desc           = "reset", 
    118119                .type           = EV_KEY, 
    119120                .code           = KEY_RESTART, 
    120                 .threshold      = 3, 
     121                .debounce_interval = DIR_615C1_KEYS_DEBOUNCE_INTERVAL, 
    121122                .gpio           = DIR_615C1_GPIO_BTN_RESET, 
    122123        }, { 
     
    124125                .type           = EV_KEY, 
    125126                .code           = KEY_WPS_BUTTON, 
    126                 .threshold      = 3, 
     127                .debounce_interval = DIR_615C1_KEYS_DEBOUNCE_INTERVAL, 
    127128                .gpio           = DIR_615C1_GPIO_BTN_WPS, 
    128129        } 
     
    164165                                        dir_615c1_leds_gpio); 
    165166 
    166         ar71xx_add_device_gpio_buttons(-1, DIR_615C1_BUTTONS_POLL_INTERVAL, 
    167                                         ARRAY_SIZE(dir_615c1_gpio_buttons), 
    168                                         dir_615c1_gpio_buttons); 
     167        ar71xx_register_gpio_keys_polled(-1, DIR_615C1_KEYS_POLL_INTERVAL, 
     168                                         ARRAY_SIZE(dir_615c1_gpio_keys), 
     169                                         dir_615c1_gpio_keys); 
    169170 
    170171        ar9xxx_add_device_wmac(eeprom, wlan_mac); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-dir-825-b1.c

    r25121 r26603  
    4040#define DIR825B1_GPIO_RTL8366_SCK               7 
    4141 
    42 #define DIR825B1_BUTTONS_POLL_INTERVAL          20 
     42#define DIR825B1_KEYS_POLL_INTERVAL             20      /* msecs */ 
     43#define DIR825B1_KEYS_DEBOUNCE_INTERVAL         (3 * DIR825B1_KEYS_POLL_INTERVAL) 
    4344 
    4445#define DIR825B1_CAL_LOCATION_0                 0x1f661000 
     
    113114}; 
    114115 
    115 static struct gpio_button dir825b1_gpio_buttons[] __initdata = { 
     116static struct gpio_keys_button dir825b1_gpio_keys[] __initdata = { 
    116117        { 
    117118                .desc           = "reset", 
    118119                .type           = EV_KEY, 
    119120                .code           = KEY_RESTART, 
    120                 .threshold      = 3, 
     121                .debounce_interval = DIR825B1_KEYS_DEBOUNCE_INTERVAL, 
    121122                .gpio           = DIR825B1_GPIO_BTN_RESET, 
    122123                .active_low     = 1, 
     
    125126                .type           = EV_KEY, 
    126127                .code           = KEY_WPS_BUTTON, 
    127                 .threshold      = 3, 
     128                .debounce_interval = DIR825B1_KEYS_DEBOUNCE_INTERVAL, 
    128129                .gpio           = DIR825B1_GPIO_BTN_WPS, 
    129130                .active_low     = 1, 
     
    177178                                        dir825b1_leds_gpio); 
    178179 
    179         ar71xx_add_device_gpio_buttons(-1, DIR825B1_BUTTONS_POLL_INTERVAL, 
    180                                         ARRAY_SIZE(dir825b1_gpio_buttons), 
    181                                         dir825b1_gpio_buttons); 
     180        ar71xx_register_gpio_keys_polled(-1, DIR825B1_KEYS_POLL_INTERVAL, 
     181                                         ARRAY_SIZE(dir825b1_gpio_keys), 
     182                                         dir825b1_gpio_keys); 
    182183 
    183184        ar71xx_add_device_usb(); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-eap7660d.c

    r23977 r26603  
    2323#include "dev-m25p80.h" 
    2424 
    25 #define EAP7660D_BUTTONS_POLL_INTERVAL  20 
     25#define EAP7660D_KEYS_POLL_INTERVAL     20      /* msecs */ 
     26#define EAP7660D_KEYS_DEBOUNCE_INTERVAL (3 * EAP7660D_KEYS_POLL_INTERVAL) 
     27 
    2628#define EAP7660D_GPIO_DS4               7 
    2729#define EAP7660D_GPIO_DS5               2 
     
    126128}; 
    127129 
    128 static struct gpio_button eap7660d_gpio_buttons[] __initdata = { 
     130static struct gpio_keys_button eap7660d_gpio_keys[] __initdata = { 
    129131        { 
    130132                .desc           = "reset", 
    131133                .type           = EV_KEY, 
    132134                .code           = KEY_RESTART, 
    133                 .threshold      = 3, 
     135                .debounce_interval = EAP7660D_KEYS_DEBOUNCE_INTERVAL, 
    134136                .gpio           = EAP7660D_GPIO_SW1, 
    135137                .active_low     = 1, 
     
    139141                .type           = EV_KEY, 
    140142                .code           = KEY_WPS_BUTTON, 
    141                 .threshold      = 3, 
     143                .debounce_interval = EAP7660D_KEYS_DEBOUNCE_INTERVAL, 
    142144                .gpio           = EAP7660D_GPIO_SW3, 
    143145                .active_low     = 1, 
     
    159161        ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(eap7660d_leds_gpio), 
    160162                                        eap7660d_leds_gpio); 
    161         ar71xx_add_device_gpio_buttons(-1, EAP7660D_BUTTONS_POLL_INTERVAL, 
    162                                         ARRAY_SIZE(eap7660d_gpio_buttons), 
    163                                         eap7660d_gpio_buttons); 
     163        ar71xx_register_gpio_keys_polled(-1, EAP7660D_KEYS_POLL_INTERVAL, 
     164                                         ARRAY_SIZE(eap7660d_gpio_keys), 
     165                                         eap7660d_gpio_keys); 
    164166        eap7660d_pci_init(boardconfig + EAP7660D_WMAC0_CALDATA_OFFSET, 
    165167                        boardconfig + EAP7660D_WMAC0_MAC_OFFSET, 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ja76pf.c

    r24444 r26603  
    1616#include "dev-leds-gpio.h" 
    1717 
    18 #define JA76PF_BUTTONS_POLL_INTERVAL    20 
     18#define JA76PF_KEYS_POLL_INTERVAL       20      /* msecs */ 
     19#define JA76PF_KEYS_DEBOUNCE_INTERVAL   (3 * JA76PF_KEYS_POLL_INTERVAL) 
    1920 
    2021#define JA76PF_GPIO_I2C_SCL             0 
     
    3637}; 
    3738 
    38 static struct gpio_button ja76pf_gpio_buttons[] __initdata = { 
     39static struct gpio_keys_button ja76pf_gpio_keys[] __initdata = { 
    3940        { 
    4041                .desc           = "reset", 
    4142                .type           = EV_KEY, 
    4243                .code           = KEY_RESTART, 
    43                 .threshold      = 3, 
     44                .debounce_interval = JA76PF_KEYS_DEBOUNCE_INTERVAL, 
    4445                .gpio           = JA76PF_GPIO_BTN_RESET, 
    4546                .active_low     = 1, 
     
    8687                                        ja76pf_leds_gpio); 
    8788 
    88         ar71xx_add_device_gpio_buttons(-1, JA76PF_BUTTONS_POLL_INTERVAL, 
    89                                         ARRAY_SIZE(ja76pf_gpio_buttons), 
    90                                         ja76pf_gpio_buttons); 
     89        ar71xx_register_gpio_keys_polled(-1, JA76PF_KEYS_POLL_INTERVAL, 
     90                                         ARRAY_SIZE(ja76pf_gpio_keys), 
     91                                         ja76pf_gpio_keys); 
    9192 
    9293        ar71xx_add_device_usb(); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-jwap003.c

    r23975 r26603  
    1616#include "dev-usb.h" 
    1717 
    18 #define JWAP003_BUTTONS_POLL_INTERVAL   20 
     18#define JWAP003_KEYS_POLL_INTERVAL      20      /* msecs */ 
     19#define JWAP003_KEYS_DEBOUNCE_INTERVAL  (3 * JWAP003_KEYS_POLL_INTERVAL) 
     20 
    1921#define JWAP003_GPIO_WPS        11 
    2022#define JWAP003_GPIO_I2C_SCL    0 
    2123#define JWAP003_GPIO_I2C_SDA    1 
    2224 
    23 static struct gpio_button jwap003_gpio_buttons[] __initdata = { 
     25static struct gpio_keys_button jwap003_gpio_keys[] __initdata = { 
    2426        { 
    2527                .desc           = "wps", 
    2628                .type           = EV_KEY, 
    2729                .code           = KEY_WPS_BUTTON, 
    28                 .threshold      = 3, 
     30                .debounce_interval = JWAP003_KEYS_DEBOUNCE_INTERVAL, 
    2931                .gpio           = JWAP003_GPIO_WPS, 
    3032                .active_low     = 1, 
     
    7274        ar71xx_add_device_usb(); 
    7375 
    74         ar71xx_add_device_gpio_buttons(-1, JWAP003_BUTTONS_POLL_INTERVAL, 
    75                                         ARRAY_SIZE(jwap003_gpio_buttons), 
    76                                         jwap003_gpio_buttons); 
     76        ar71xx_register_gpio_keys_polled(-1, JWAP003_KEYS_POLL_INTERVAL, 
     77                                         ARRAY_SIZE(jwap003_gpio_keys), 
     78                                         jwap003_gpio_keys); 
    7779 
    7880        pb42_pci_init(); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-mzk-w04nu.c

    r26595 r26603  
    3333#define MZK_W04NU_GPIO_BTN_RESET        21 
    3434 
    35 #define MZK_W04NU_BUTTONS_POLL_INTERVAL 20 
     35#define MZK_W04NU_KEYS_POLL_INTERVAL    20      /* msecs */ 
     36#define MZK_W04NU_KEYS_DEBOUNCE_INTERVAL (3 * MZK_W04NU_KEYS_POLL_INTERVAL) 
    3637 
    3738#ifdef CONFIG_MTD_PARTITIONS 
     
    102103}; 
    103104 
    104 static struct gpio_button mzk_w04nu_gpio_buttons[] __initdata = { 
     105static struct gpio_keys_button mzk_w04nu_gpio_keys[] __initdata = { 
    105106        { 
    106107                .desc           = "reset", 
    107108                .type           = EV_KEY, 
    108109                .code           = KEY_RESTART, 
    109                 .threshold      = 3, 
     110                .debounce_interval = MZK_W04NU_KEYS_DEBOUNCE_INTERVAL, 
    110111                .gpio           = MZK_W04NU_GPIO_BTN_RESET, 
    111112                .active_low     = 1, 
     
    114115                .type           = EV_KEY, 
    115116                .code           = KEY_WPS_BUTTON, 
    116                 .threshold      = 3, 
     117                .debounce_interval = MZK_W04NU_KEYS_DEBOUNCE_INTERVAL, 
    117118                .gpio           = MZK_W04NU_GPIO_BTN_WPS, 
    118119                .active_low     = 1, 
     
    121122                .type           = EV_KEY, 
    122123                .code           = BTN_2, 
    123                 .threshold      = 3, 
     124                .debounce_interval = MZK_W04NU_KEYS_DEBOUNCE_INTERVAL, 
    124125                .gpio           = MZK_W04NU_GPIO_BTN_APROUTER, 
    125126                .active_low     = 0, 
     
    154155                                        mzk_w04nu_leds_gpio); 
    155156 
    156         ar71xx_add_device_gpio_buttons(-1, MZK_W04NU_BUTTONS_POLL_INTERVAL, 
    157                                         ARRAY_SIZE(mzk_w04nu_gpio_buttons), 
    158                                         mzk_w04nu_gpio_buttons); 
     157        ar71xx_register_gpio_keys_polled(-1, MZK_W04NU_KEYS_POLL_INTERVAL, 
     158                                         ARRAY_SIZE(mzk_w04nu_gpio_keys), 
     159                                         mzk_w04nu_gpio_keys); 
    159160        ar71xx_add_device_usb(); 
    160161 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-mzk-w300nh.c

    r26595 r26603  
    3232#define MZK_W300NH_GPIO_BTN_RESET       21 
    3333 
    34 #define MZK_W04NU_BUTTONS_POLL_INTERVAL 20 
     34#define MZK_W300NH_KEYS_POLL_INTERVAL   20      /* msecs */ 
     35#define MZK_W300NH_KEYS_DEBOUNCE_INTERVAL (3 * MZK_W300NH_KEYS_POLL_INTERVAL) 
    3536 
    3637#ifdef CONFIG_MTD_PARTITIONS 
     
    9798}; 
    9899 
    99 static struct gpio_button mzk_w300nh_gpio_buttons[] __initdata = { 
     100static struct gpio_keys_button mzk_w300nh_gpio_keys[] __initdata = { 
    100101        { 
    101102                .desc           = "reset", 
    102103                .type           = EV_KEY, 
    103104                .code           = KEY_RESTART, 
    104                 .threshold      = 3, 
     105                .debounce_interval = MZK_W300NH_KEYS_DEBOUNCE_INTERVAL, 
    105106                .gpio           = MZK_W300NH_GPIO_BTN_RESET, 
    106107                .active_low     = 1, 
     
    109110                .type           = EV_KEY, 
    110111                .code           = KEY_WPS_BUTTON, 
    111                 .threshold      = 3, 
     112                .debounce_interval = MZK_W300NH_KEYS_DEBOUNCE_INTERVAL, 
    112113                .gpio           = MZK_W300NH_GPIO_BTN_WPS, 
    113114                .active_low     = 1, 
     
    116117                .type           = EV_KEY, 
    117118                .code           = BTN_2, 
    118                 .threshold      = 3, 
     119                .debounce_interval = MZK_W300NH_KEYS_DEBOUNCE_INTERVAL, 
    119120                .gpio           = MZK_W300NH_GPIO_BTN_APROUTER, 
    120121                .active_low     = 0, 
     
    149150                                        mzk_w300nh_leds_gpio); 
    150151 
    151         ar71xx_add_device_gpio_buttons(-1, MZK_W04NU_BUTTONS_POLL_INTERVAL, 
    152                                         ARRAY_SIZE(mzk_w300nh_gpio_buttons), 
    153                                         mzk_w300nh_gpio_buttons); 
     152        ar71xx_register_gpio_keys_polled(-1, MZK_W300NH_KEYS_POLL_INTERVAL, 
     153                                         ARRAY_SIZE(mzk_w300nh_gpio_keys), 
     154                                         mzk_w300nh_gpio_keys); 
    154155        ar9xxx_add_device_wmac(eeprom, NULL); 
    155156} 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-nbg460n.c

    r26595 r26603  
    3939#define NBG460N_GPIO_BTN_WPS            12 
    4040#define NBG460N_GPIO_BTN_RESET          21 
    41 #define NBG460N_BUTTONS_POLL_INTERVAL   20 
     41 
     42#define NBG460N_KEYS_POLL_INTERVAL      20      /* msecs */ 
     43#define NBG460N_KEYS_DEBOUNCE_INTERVAL  (3 * NBG460N_KEYS_POLL_INTERVAL) 
    4244 
    4345/* RTC chip PCF8563 I2C interface */ 
     
    115117}; 
    116118 
    117 static struct gpio_button nbg460n_gpio_buttons[] __initdata = { 
     119static struct gpio_keys_button nbg460n_gpio_keys[] __initdata = { 
    118120        { 
    119121                .desc           = "reset", 
    120122                .type           = EV_KEY, 
    121123                .code           = KEY_RESTART, 
    122                 .threshold      = 3, 
     124                .debounce_interval = NBG460N_KEYS_DEBOUNCE_INTERVAL, 
    123125                .gpio           = NBG460N_GPIO_BTN_RESET, 
    124126                .active_low     = 1, 
     
    127129                .type           = EV_KEY, 
    128130                .code           = KEY_WPS_BUTTON, 
    129                 .threshold      = 3, 
     131                .debounce_interval = NBG460N_KEYS_DEBOUNCE_INTERVAL, 
    130132                .gpio           = NBG460N_GPIO_BTN_WPS, 
    131133                .active_low     = 1, 
     
    215217                                        nbg460n_leds_gpio); 
    216218 
    217         ar71xx_add_device_gpio_buttons(-1, NBG460N_BUTTONS_POLL_INTERVAL, 
    218                                         ARRAY_SIZE(nbg460n_gpio_buttons), 
    219                                         nbg460n_gpio_buttons); 
     219        ar71xx_register_gpio_keys_polled(-1, NBG460N_KEYS_POLL_INTERVAL, 
     220                                         ARRAY_SIZE(nbg460n_gpio_keys), 
     221                                         nbg460n_gpio_keys); 
    220222} 
    221223 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-pb42.c

    r23975 r26603  
    1919#include "dev-usb.h" 
    2020 
    21 #define PB42_BUTTONS_POLL_INTERVAL      20 
     21#define PB42_KEYS_POLL_INTERVAL         20      /* msecs */ 
     22#define PB42_KEYS_DEBOUNCE_INTERVAL     (3 * PB42_KEYS_POLL_INTERVAL) 
    2223 
    2324#define PB42_GPIO_BTN_SW4       8 
    2425#define PB42_GPIO_BTN_SW5       3 
    2526 
    26 static struct gpio_button pb42_gpio_buttons[] __initdata = { 
     27static struct gpio_keys_button pb42_gpio_keys[] __initdata = { 
    2728        { 
    2829                .desc           = "sw4", 
    2930                .type           = EV_KEY, 
    3031                .code           = BTN_0, 
    31                 .threshold      = 3, 
     32                .debounce_interval = PB42_KEYS_DEBOUNCE_INTERVAL, 
    3233                .gpio           = PB42_GPIO_BTN_SW4, 
    3334                .active_low     = 1, 
     
    3637                .type           = EV_KEY, 
    3738                .code           = BTN_1, 
    38                 .threshold      = 3, 
     39                .debounce_interval = PB42_KEYS_DEBOUNCE_INTERVAL, 
    3940                .gpio           = PB42_GPIO_BTN_SW5, 
    4041                .active_low     = 1, 
     
    6465        ar71xx_add_device_eth(1); 
    6566 
    66         ar71xx_add_device_gpio_buttons(-1, PB42_BUTTONS_POLL_INTERVAL, 
    67                                         ARRAY_SIZE(pb42_gpio_buttons), 
    68                                         pb42_gpio_buttons); 
     67        ar71xx_register_gpio_keys_polled(-1, PB42_KEYS_POLL_INTERVAL, 
     68                                         ARRAY_SIZE(pb42_gpio_keys), 
     69                                         pb42_gpio_keys); 
    6970 
    7071        pb42_pci_init(); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-pb44.c

    r23975 r26603  
    5555#define PB44_GPIO_LED_JUMP2     (PB44_GPIO_EXP_BASE + PB44_PCF8757_LED_JUMP2) 
    5656 
     57#define PB44_KEYS_POLL_INTERVAL         20      /* msecs */ 
     58#define PB44_KEYS_DEBOUNCE_INTERVAL     (3 * PB44_KEYS_POLL_INTERVAL) 
     59 
    5760static struct i2c_gpio_platform_data pb44_i2c_gpio_data = { 
    5861        .sda_pin        = PB44_GPIO_I2C_SDA, 
     
    9194}; 
    9295 
    93 static struct gpio_button pb44_gpio_buttons[] __initdata = { 
     96static struct gpio_keys_button pb44_gpio_keys[] __initdata = { 
    9497        { 
    9598                .desc           = "soft_reset", 
    9699                .type           = EV_KEY, 
    97100                .code           = KEY_RESTART, 
    98                 .threshold      = 3, 
     101                .debounce_interval = PB44_KEYS_DEBOUNCE_INTERVAL, 
    99102                .gpio           = PB44_GPIO_SW_RESET, 
    100103                .active_low     = 1, 
     
    103106                .type           = EV_KEY, 
    104107                .code           = KEY_WPS_BUTTON, 
    105                 .threshold      = 3, 
     108                .debounce_interval = PB44_KEYS_DEBOUNCE_INTERVAL, 
    106109                .gpio           = PB44_GPIO_SW_JUMP, 
    107110                .active_low     = 1, 
     
    203206                                        pb44_leds_gpio); 
    204207 
    205         ar71xx_add_device_gpio_buttons(-1, 20, ARRAY_SIZE(pb44_gpio_buttons), 
    206                                         pb44_gpio_buttons); 
     208        ar71xx_register_gpio_keys_polled(-1, PB44_KEYS_POLL_INTERVAL, 
     209                                         ARRAY_SIZE(pb44_gpio_keys), 
     210                                         pb44_gpio_keys); 
    207211} 
    208212 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-pb92.c

    r23975 r26603  
    5757}; 
    5858 
    59  
    60 #define PB92_BUTTONS_POLL_INTERVAL      20 
     59#define PB92_KEYS_POLL_INTERVAL         20      /* msecs */ 
     60#define PB92_KEYS_DEBOUNCE_INTERVAL     (3 * PB92_KEYS_POLL_INTERVAL) 
    6161 
    6262#define PB92_GPIO_BTN_SW4       8 
    6363#define PB92_GPIO_BTN_SW5       3 
    6464 
    65 static struct gpio_button pb92_gpio_buttons[] __initdata = { 
     65static struct gpio_keys_button pb92_gpio_keys[] __initdata = { 
    6666        { 
    6767                .desc           = "sw4", 
    6868                .type           = EV_KEY, 
    6969                .code           = BTN_0, 
    70                 .threshold      = 3, 
     70                .debounce_interval = PB92_KEYS_DEBOUNCE_INTERVAL, 
    7171                .gpio           = PB92_GPIO_BTN_SW4, 
    7272                .active_low     = 1, 
     
    7575                .type           = EV_KEY, 
    7676                .code           = BTN_1, 
    77                 .threshold      = 3, 
     77                .debounce_interval = PB92_KEYS_DEBOUNCE_INTERVAL, 
    7878                .gpio           = PB92_GPIO_BTN_SW5, 
    7979                .active_low     = 1, 
     
    101101        ar71xx_add_device_eth(1); 
    102102 
    103         ar71xx_add_device_gpio_buttons(-1, PB92_BUTTONS_POLL_INTERVAL, 
    104                                         ARRAY_SIZE(pb92_gpio_buttons), 
    105                                         pb92_gpio_buttons); 
     103        ar71xx_register_gpio_keys_polled(-1, PB92_KEYS_POLL_INTERVAL, 
     104                                         ARRAY_SIZE(pb92_gpio_keys), 
     105                                         pb92_gpio_keys); 
    106106 
    107107        pb9x_pci_init(); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-rb4xx.c

    r23977 r26603  
    3939#define RB4XX_GPIO_CPLD_LED5    (RB4XX_GPIO_CPLD_BASE + CPLD_GPIO_nLED5) 
    4040 
    41 #define RB4XX_BUTTONS_POLL_INTERVAL     20 
     41#define RB4XX_KEYS_POLL_INTERVAL        20      /* msecs */ 
     42#define RB4XX_KEYS_DEBOUNCE_INTERVAL    (3 * RB4XX_KEYS_POLL_INTERVAL) 
    4243 
    4344static struct gpio_led rb4xx_leds_gpio[] __initdata = { 
     
    6970}; 
    7071 
    71 static struct gpio_button rb4xx_gpio_buttons[] __initdata = { 
     72static struct gpio_keys_button rb4xx_gpio_keys[] __initdata = { 
    7273        { 
    7374                .desc           = "reset_switch", 
    7475                .type           = EV_KEY, 
    7576                .code           = KEY_RESTART, 
    76                 .threshold      = 3, 
     77                .debounce_interval = RB4XX_KEYS_DEBOUNCE_INTERVAL, 
    7778                .gpio           = RB4XX_GPIO_RESET_SWITCH, 
    7879                .active_low     = 1, 
     
    202203                                        rb4xx_leds_gpio); 
    203204 
    204         ar71xx_add_device_gpio_buttons(-1, RB4XX_BUTTONS_POLL_INTERVAL, 
    205                                         ARRAY_SIZE(rb4xx_gpio_buttons), 
    206                                         rb4xx_gpio_buttons); 
     205        ar71xx_register_gpio_keys_polled(-1, RB4XX_KEYS_POLL_INTERVAL, 
     206                                         ARRAY_SIZE(rb4xx_gpio_keys), 
     207                                         rb4xx_gpio_keys); 
    207208 
    208209        spi_register_board_info(rb4xx_spi_info, ARRAY_SIZE(rb4xx_spi_info)); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tew-632brp.c

    r26595 r26603  
    2929#define TEW_632BRP_GPIO_BTN_RESET       21 
    3030 
    31 #define TEW_632BRP_BUTTONS_POLL_INTERVAL        20 
     31#define TEW_632BRP_KEYS_POLL_INTERVAL   20      /* msecs */ 
     32#define TEW_632BRP_KEYS_DEBOUNCE_INTERVAL (3 * TEW_632BRP_KEYS_POLL_INTERVAL) 
    3233 
    3334#define TEW_632BRP_CONFIG_ADDR  0x1f020000 
     
    8990}; 
    9091 
    91 static struct gpio_button tew_632brp_gpio_buttons[] __initdata = { 
     92static struct gpio_keys_button tew_632brp_gpio_keys[] __initdata = { 
    9293        { 
    9394                .desc           = "reset", 
    9495                .type           = EV_KEY, 
    9596                .code           = KEY_RESTART, 
    96                 .threshold      = 3, 
     97                .debounce_interval = TEW_632BRP_KEYS_DEBOUNCE_INTERVAL, 
    9798                .gpio           = TEW_632BRP_GPIO_BTN_RESET, 
    9899        }, { 
     
    100101                .type           = EV_KEY, 
    101102                .code           = KEY_WPS_BUTTON, 
    102                 .threshold      = 3, 
     103                .debounce_interval = TEW_632BRP_KEYS_DEBOUNCE_INTERVAL, 
    103104                .gpio           = TEW_632BRP_GPIO_BTN_WPS, 
    104105        } 
     
    140141                                        tew_632brp_leds_gpio); 
    141142 
    142         ar71xx_add_device_gpio_buttons(-1, TEW_632BRP_BUTTONS_POLL_INTERVAL, 
    143                                         ARRAY_SIZE(tew_632brp_gpio_buttons), 
    144                                         tew_632brp_gpio_buttons); 
     143        ar71xx_register_gpio_keys_polled(-1, TEW_632BRP_KEYS_POLL_INTERVAL, 
     144                                         ARRAY_SIZE(tew_632brp_gpio_keys), 
     145                                         tew_632brp_gpio_keys); 
    145146 
    146147        ar9xxx_add_device_wmac(eeprom, wlan_mac); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-mr3x20.c

    r26394 r26603  
    3232#define TL_MR3X20_GPIO_USB_POWER        6 
    3333 
    34 #define TL_MR3X20_BUTTONS_POLL_INTERVAL 20 
     34#define TL_MR3X20_KEYS_POLL_INTERVAL    20      /* msecs */ 
     35#define TL_MR3X20_KEYS_DEBOUNCE_INTERVAL (3 * TL_MR3X20_KEYS_POLL_INTERVAL) 
    3536 
    3637#ifdef CONFIG_MTD_PARTITIONS 
     
    8788}; 
    8889 
    89 static struct gpio_button tl_mr3x20_gpio_buttons[] __initdata = { 
     90static struct gpio_keys_button tl_mr3x20_gpio_keys[] __initdata = { 
    9091        { 
    9192                .desc           = "reset", 
    9293                .type           = EV_KEY, 
    9394                .code           = KEY_RESTART, 
    94                 .threshold      = 3, 
     95                .debounce_interval = TL_MR3X20_KEYS_DEBOUNCE_INTERVAL, 
    9596                .gpio           = TL_MR3X20_GPIO_BTN_RESET, 
    9697                .active_low     = 1, 
     
    99100                .type           = EV_KEY, 
    100101                .code           = KEY_WPS_BUTTON, 
    101                 .threshold      = 3, 
     102                .debounce_interval = TL_MR3X20_KEYS_DEBOUNCE_INTERVAL, 
    102103                .gpio           = TL_MR3X20_GPIO_BTN_QSS, 
    103104                .active_low     = 1, 
     
    119120                                        tl_mr3x20_leds_gpio); 
    120121 
    121         ar71xx_add_device_gpio_buttons(-1, TL_MR3X20_BUTTONS_POLL_INTERVAL, 
    122                                         ARRAY_SIZE(tl_mr3x20_gpio_buttons), 
    123                                         tl_mr3x20_gpio_buttons); 
     122        ar71xx_register_gpio_keys_polled(-1, TL_MR3X20_KEYS_POLL_INTERVAL, 
     123                                         ARRAY_SIZE(tl_mr3x20_gpio_keys), 
     124                                         tl_mr3x20_gpio_keys); 
    124125 
    125126        ar71xx_eth1_data.has_ar7240_switch = 1; 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wa901nd-v2.c

    r26595 r26603  
    3131#define TL_WA901ND_V2_GPIO_BTN_QSS              7 
    3232 
    33 #define TL_WA901ND_V2_BUTTONS_POLL_INTERVAL     20 
    34  
     33#define TL_WA901ND_V2_KEYS_POLL_INTERVAL        20      /* msecs */ 
     34#define TL_WA901ND_V2_KEYS_DEBOUNCE_INTERVAL    \ 
     35                                        (3 * TL_WA901ND_V2_KEYS_POLL_INTERVAL) 
    3536#ifdef CONFIG_MTD_PARTITIONS 
    3637static struct mtd_partition tl_wa901nd_v2_partitions[] = { 
     
    8384}; 
    8485 
    85 static struct gpio_button tl_wa901nd_v2_gpio_buttons[] __initdata = { 
     86static struct gpio_keys_button tl_wa901nd_v2_gpio_keys[] __initdata = { 
    8687        { 
    8788                .desc           = "reset", 
    8889                .type           = EV_KEY, 
    8990                .code           = KEY_RESTART, 
    90                 .threshold      = 3, 
     91                .debounce_interval = TL_WA901ND_V2_KEYS_DEBOUNCE_INTERVAL, 
    9192                .gpio           = TL_WA901ND_V2_GPIO_BTN_RESET, 
    9293                .active_low     = 1, 
     
    9596                .type           = EV_KEY, 
    9697                .code           = KEY_WPS_BUTTON, 
    97                 .threshold      = 3, 
     98                .debounce_interval = TL_WA901ND_V2_KEYS_DEBOUNCE_INTERVAL, 
    9899                .gpio           = TL_WA901ND_V2_GPIO_BTN_QSS, 
    99100                .active_low     = 1, 
     
    121122                                        tl_wa901nd_v2_leds_gpio); 
    122123 
    123         ar71xx_add_device_gpio_buttons(-1, TL_WA901ND_V2_BUTTONS_POLL_INTERVAL, 
    124                                         ARRAY_SIZE(tl_wa901nd_v2_gpio_buttons), 
    125                                         tl_wa901nd_v2_gpio_buttons); 
     124        ar71xx_register_gpio_keys_polled(-1, TL_WA901ND_V2_KEYS_POLL_INTERVAL, 
     125                                         ARRAY_SIZE(tl_wa901nd_v2_gpio_keys), 
     126                                         tl_wa901nd_v2_gpio_keys); 
    126127 
    127128        ar9xxx_add_device_wmac(eeprom, mac); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wa901nd.c

    r23975 r26603  
    2828#define TL_WA901ND_GPIO_BTN_QSS         12 
    2929 
    30 #define TL_WA901ND_BUTTONS_POLL_INTERVAL        20 
     30#define TL_WA901ND_KEYS_POLL_INTERVAL   20      /* msecs */ 
     31#define TL_WA901ND_KEYS_DEBOUNCE_INTERVAL (3 * TL_WA901ND_KEYS_POLL_INTERVAL) 
    3132 
    3233#ifdef CONFIG_MTD_PARTITIONS 
     
    7778}; 
    7879 
    79 static struct gpio_button tl_wa901nd_gpio_buttons[] __initdata = { 
     80static struct gpio_keys_button tl_wa901nd_gpio_keys[] __initdata = { 
    8081        { 
    8182                .desc           = "reset", 
    8283                .type           = EV_KEY, 
    8384                .code           = BTN_0, 
    84                 .threshold      = 3, 
     85                .debounce_interval = TL_WA901ND_KEYS_DEBOUNCE_INTERVAL, 
    8586                .gpio           = TL_WA901ND_GPIO_BTN_RESET, 
    8687                .active_low     = 1, 
     
    8990                .type           = EV_KEY, 
    9091                .code           = BTN_1, 
    91                 .threshold      = 3, 
     92                .debounce_interval = TL_WA901ND_KEYS_DEBOUNCE_INTERVAL, 
    9293                .gpio           = TL_WA901ND_GPIO_BTN_QSS, 
    9394                .active_low     = 1, 
     
    119120                                        tl_wa901nd_leds_gpio); 
    120121 
    121         ar71xx_add_device_gpio_buttons(-1, TL_WA901ND_BUTTONS_POLL_INTERVAL, 
    122                                         ARRAY_SIZE(tl_wa901nd_gpio_buttons), 
    123                                         tl_wa901nd_gpio_buttons); 
     122        ar71xx_register_gpio_keys_polled(-1, TL_WA901ND_KEYS_POLL_INTERVAL, 
     123                                         ARRAY_SIZE(tl_wa901nd_gpio_keys), 
     124                                         tl_wa901nd_gpio_keys); 
    124125 
    125126        ap91_pci_init(ee, mac); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr1043nd.c

    r26595 r26603  
    3434#define TL_WR1043ND_GPIO_RTL8366_SCK    19 
    3535 
    36 #define TL_WR1043ND_BUTTONS_POLL_INTERVAL     20 
     36#define TL_WR1043ND_KEYS_POLL_INTERVAL  20      /* msecs */ 
     37#define TL_WR1043ND_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR1043ND_KEYS_POLL_INTERVAL) 
    3738 
    3839#ifdef CONFIG_MTD_PARTITIONS 
     
    9192}; 
    9293 
    93 static struct gpio_button tl_wr1043nd_gpio_buttons[] __initdata = { 
     94static struct gpio_keys_button tl_wr1043nd_gpio_keys[] __initdata = { 
    9495        { 
    9596                .desc           = "reset", 
    9697                .type           = EV_KEY, 
    9798                .code           = KEY_RESTART, 
    98                 .threshold      = 3, 
     99                .debounce_interval = TL_WR1043ND_KEYS_DEBOUNCE_INTERVAL, 
    99100                .gpio           = TL_WR1043ND_GPIO_BTN_RESET, 
    100101                .active_low     = 1, 
     
    103104                .type           = EV_KEY, 
    104105                .code           = KEY_WPS_BUTTON, 
    105                 .threshold      = 3, 
     106                .debounce_interval = TL_WR1043ND_KEYS_DEBOUNCE_INTERVAL, 
    106107                .gpio           = TL_WR1043ND_GPIO_BTN_QSS, 
    107108                .active_low     = 1, 
     
    145146        platform_device_register(&tl_wr1043nd_rtl8366rb_device); 
    146147 
    147         ar71xx_add_device_gpio_buttons(-1, TL_WR1043ND_BUTTONS_POLL_INTERVAL, 
    148                                         ARRAY_SIZE(tl_wr1043nd_gpio_buttons), 
    149                                         tl_wr1043nd_gpio_buttons); 
     148        ar71xx_register_gpio_keys_polled(-1, TL_WR1043ND_KEYS_POLL_INTERVAL, 
     149                                         ARRAY_SIZE(tl_wr1043nd_gpio_keys), 
     150                                         tl_wr1043nd_gpio_keys); 
    150151 
    151152        ar9xxx_add_device_wmac(eeprom, mac); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr741nd.c

    r26394 r26603  
    2727#define TL_WR741ND_GPIO_BTN_QSS         12 
    2828 
    29 #define TL_WR741ND_BUTTONS_POLL_INTERVAL        20 
     29#define TL_WR741ND_KEYS_POLL_INTERVAL   20      /* msecs */ 
     30#define TL_WR741ND_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR741ND_KEYS_POLL_INTERVAL) 
    3031 
    3132#ifdef CONFIG_MTD_PARTITIONS 
     
    7677}; 
    7778 
    78 static struct gpio_button tl_wr741nd_gpio_buttons[] __initdata = { 
     79static struct gpio_keys_button tl_wr741nd_gpio_keys[] __initdata = { 
    7980        { 
    8081                .desc           = "reset", 
    8182                .type           = EV_KEY, 
    8283                .code           = KEY_RESTART, 
    83                 .threshold      = 3, 
     84                .debounce_interval = TL_WR741ND_KEYS_DEBOUNCE_INTERVAL, 
    8485                .gpio           = TL_WR741ND_GPIO_BTN_RESET, 
    8586                .active_low     = 1, 
     
    8889                .type           = EV_KEY, 
    8990                .code           = KEY_WPS_BUTTON, 
    90                 .threshold      = 3, 
     91                .debounce_interval = TL_WR741ND_KEYS_DEBOUNCE_INTERVAL, 
    9192                .gpio           = TL_WR741ND_GPIO_BTN_QSS, 
    9293                .active_low     = 1, 
     
    104105                                        tl_wr741nd_leds_gpio); 
    105106 
    106         ar71xx_add_device_gpio_buttons(-1, TL_WR741ND_BUTTONS_POLL_INTERVAL, 
    107                                         ARRAY_SIZE(tl_wr741nd_gpio_buttons), 
    108                                         tl_wr741nd_gpio_buttons); 
     107        ar71xx_register_gpio_keys_polled(-1, TL_WR741ND_KEYS_POLL_INTERVAL, 
     108                                         ARRAY_SIZE(tl_wr741nd_gpio_keys), 
     109                                         tl_wr741nd_gpio_keys); 
    109110 
    110111        ar71xx_eth1_data.has_ar7240_switch = 1; 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr841n.c

    r23975 r26603  
    2929#define TL_WR841ND_V1_GPIO_BTN_QSS      7 
    3030 
    31 #define TL_WR841ND_V1_BUTTONS_POLL_INTERVAL     20 
     31#define TL_WR841ND_V1_KEYS_POLL_INTERVAL        20      /* msecs */ 
     32#define TL_WR841ND_V1_KEYS_DEBOUNCE_INTERVAL \ 
     33                                (3 * TL_WR841ND_V1_KEYS_POLL_INTERVAL) 
    3234 
    3335#ifdef CONFIG_MTD_PARTITIONS 
     
    8082}; 
    8183 
    82 static struct gpio_button tl_wr841n_v1_gpio_buttons[] __initdata = { 
     84static struct gpio_keys_button tl_wr841n_v1_gpio_keys[] __initdata = { 
    8385        { 
    8486                .desc           = "reset", 
    8587                .type           = EV_KEY, 
    8688                .code           = KEY_RESTART, 
    87                 .threshold      = 3, 
     89                .debounce_interval = TL_WR841ND_V1_KEYS_DEBOUNCE_INTERVAL, 
    8890                .gpio           = TL_WR841ND_V1_GPIO_BTN_RESET, 
    8991                .active_low     = 1, 
     
    9294                .type           = EV_KEY, 
    9395                .code           = KEY_WPS_BUTTON, 
    94                 .threshold      = 3, 
     96                .debounce_interval = TL_WR841ND_V1_KEYS_DEBOUNCE_INTERVAL, 
    9597                .gpio           = TL_WR841ND_V1_GPIO_BTN_QSS, 
    9698                .active_low     = 1, 
     
    132134                                        tl_wr841n_v1_leds_gpio); 
    133135 
    134         ar71xx_add_device_gpio_buttons(-1, TL_WR841ND_V1_BUTTONS_POLL_INTERVAL, 
    135                                         ARRAY_SIZE(tl_wr841n_v1_gpio_buttons), 
    136                                         tl_wr841n_v1_gpio_buttons); 
     136        ar71xx_register_gpio_keys_polled(-1, TL_WR841ND_V1_KEYS_POLL_INTERVAL, 
     137                                         ARRAY_SIZE(tl_wr841n_v1_gpio_keys), 
     138                                         tl_wr841n_v1_gpio_keys); 
    137139 
    138140        pb42_pci_init(); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr941nd.c

    r26595 r26603  
    3030#define TL_WR941ND_GPIO_BTN_QSS         7 
    3131 
    32 #define TL_WR941ND_BUTTONS_POLL_INTERVAL        20 
     32#define TL_WR941ND_KEYS_POLL_INTERVAL   20      /* msecs */ 
     33#define TL_WR941ND_KEYS_DEBOUNCE_INTERVAL (3 * TL_WR941ND_KEYS_POLL_INTERVAL) 
    3334 
    3435#ifdef CONFIG_MTD_PARTITIONS 
     
    8586}; 
    8687 
    87 static struct gpio_button tl_wr941nd_gpio_buttons[] __initdata = { 
     88static struct gpio_keys_button tl_wr941nd_gpio_keys[] __initdata = { 
    8889        { 
    8990                .desc           = "reset", 
    9091                .type           = EV_KEY, 
    9192                .code           = KEY_RESTART, 
    92                 .threshold      = 3, 
     93                .debounce_interval = TL_WR941ND_KEYS_DEBOUNCE_INTERVAL, 
    9394                .gpio           = TL_WR941ND_GPIO_BTN_RESET, 
    9495                .active_low     = 1, 
     
    9798                .type           = EV_KEY, 
    9899                .code           = KEY_WPS_BUTTON, 
    99                 .threshold      = 3, 
     100                .debounce_interval = TL_WR941ND_KEYS_DEBOUNCE_INTERVAL, 
    100101                .gpio           = TL_WR941ND_GPIO_BTN_QSS, 
    101102                .active_low     = 1, 
     
    137138                                        tl_wr941nd_leds_gpio); 
    138139 
    139         ar71xx_add_device_gpio_buttons(-1, TL_WR941ND_BUTTONS_POLL_INTERVAL, 
    140                                         ARRAY_SIZE(tl_wr941nd_gpio_buttons), 
    141                                         tl_wr941nd_gpio_buttons); 
     140        ar71xx_register_gpio_keys_polled(-1, TL_WR941ND_KEYS_POLL_INTERVAL, 
     141                                         ARRAY_SIZE(tl_wr941nd_gpio_keys), 
     142                                         tl_wr941nd_gpio_keys); 
    142143        ar9xxx_add_device_wmac(eeprom, mac); 
    143144} 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ubnt.c

    r26562 r26603  
    3939#define UBNT_M_GPIO_BTN_RESET   12 
    4040 
    41 #define UBNT_BUTTONS_POLL_INTERVAL      20 
     41#define UBNT_KEYS_POLL_INTERVAL         20      /* msecs */ 
     42#define UBNT_KEYS_DEBOUNCE_INTERVAL     (3 * UBNT_KEYS_POLL_INTERVAL) 
    4243 
    4344static struct gpio_led ubnt_rs_leds_gpio[] __initdata = { 
     
    101102}; 
    102103 
    103 static struct gpio_button ubnt_gpio_buttons[] __initdata = { 
     104static struct gpio_keys_button ubnt_gpio_keys[] __initdata = { 
    104105        { 
    105106                .desc           = "sw4", 
    106107                .type           = EV_KEY, 
    107108                .code           = KEY_RESTART, 
    108                 .threshold      = 3, 
     109                .debounce_interval = UBNT_KEYS_DEBOUNCE_INTERVAL, 
    109110                .gpio           = UBNT_RS_GPIO_SW4, 
    110111                .active_low     = 1, 
     
    112113}; 
    113114 
    114 static struct gpio_button ubnt_m_gpio_buttons[] __initdata = { 
     115static struct gpio_keys_button ubnt_m_gpio_keys[] __initdata = { 
    115116        { 
    116117                .desc           = "reset", 
    117118                .type           = EV_KEY, 
    118119                .code           = KEY_RESTART, 
    119                 .threshold      = 3, 
     120                .debounce_interval = UBNT_KEYS_DEBOUNCE_INTERVAL, 
    120121                .gpio           = UBNT_M_GPIO_BTN_RESET, 
    121122                .active_low     = 1, 
     
    127128        ar71xx_add_device_m25p80(NULL); 
    128129 
    129         ar71xx_add_device_gpio_buttons(-1, UBNT_BUTTONS_POLL_INTERVAL, 
    130                                         ARRAY_SIZE(ubnt_gpio_buttons), 
    131                                         ubnt_gpio_buttons); 
     130        ar71xx_register_gpio_keys_polled(-1, UBNT_KEYS_POLL_INTERVAL, 
     131                                         ARRAY_SIZE(ubnt_gpio_keys), 
     132                                         ubnt_gpio_keys); 
    132133 
    133134        pb42_pci_init(); 
     
    261262                                        ubnt_m_leds_gpio); 
    262263 
    263         ar71xx_add_device_gpio_buttons(-1, UBNT_BUTTONS_POLL_INTERVAL, 
    264                                         ARRAY_SIZE(ubnt_m_gpio_buttons), 
    265                                         ubnt_m_gpio_buttons); 
     264        ar71xx_register_gpio_keys_polled(-1, UBNT_KEYS_POLL_INTERVAL, 
     265                                         ARRAY_SIZE(ubnt_m_gpio_keys), 
     266                                         ubnt_m_gpio_keys); 
    266267} 
    267268 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c

    r25118 r26603  
    3939#define WNDR3700_GPIO_RTL8366_SCK       7 
    4040 
    41 #define WNDR3700_BUTTONS_POLL_INTERVAL    20 
     41#define WNDR3700_KEYS_POLL_INTERVAL     20      /* msecs */ 
     42#define WNDR3700_KEYS_DEBOUNCE_INTERVAL (3 * WNDR3700_KEYS_POLL_INTERVAL) 
    4243 
    4344#define WNDR3700_ETH0_MAC_OFFSET        0 
     
    180181}; 
    181182 
    182 static struct gpio_button wndr3700_gpio_buttons[] __initdata = { 
     183static struct gpio_keys_button wndr3700_gpio_keys[] __initdata = { 
    183184        { 
    184185                .desc           = "reset", 
    185186                .type           = EV_KEY, 
    186187                .code           = KEY_RESTART, 
    187                 .threshold      = 3, 
     188                .debounce_interval = WNDR3700_KEYS_DEBOUNCE_INTERVAL, 
    188189                .gpio           = WNDR3700_GPIO_BTN_RESET, 
    189190                .active_low     = 1, 
     
    192193                .type           = EV_KEY, 
    193194                .code           = KEY_WPS_BUTTON, 
    194                 .threshold      = 3, 
     195                .debounce_interval = WNDR3700_KEYS_DEBOUNCE_INTERVAL, 
    195196                .gpio           = WNDR3700_GPIO_BTN_WPS, 
    196197                .active_low     = 1, 
     
    199200                .type           = EV_KEY, 
    200201                .code           = BTN_2, 
    201                 .threshold      = 3, 
     202                .debounce_interval = WNDR3700_KEYS_DEBOUNCE_INTERVAL, 
    202203                .gpio           = WNDR3700_GPIO_BTN_WIFI, 
    203204                .active_low     = 1, 
     
    247248                                        wndr3700_leds_gpio); 
    248249 
    249         ar71xx_add_device_gpio_buttons(-1, WNDR3700_BUTTONS_POLL_INTERVAL, 
    250                                         ARRAY_SIZE(wndr3700_gpio_buttons), 
    251                                         wndr3700_gpio_buttons); 
     250        ar71xx_register_gpio_keys_polled(-1, WNDR3700_KEYS_POLL_INTERVAL, 
     251                                         ARRAY_SIZE(wndr3700_gpio_keys), 
     252                                         wndr3700_gpio_keys); 
    252253 
    253254        platform_device_register(&wndr3700_rtl8366s_device); 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wnr2000.c

    r26595 r26603  
    3030#define WNR2000_GPIO_BTN_WPS            8 
    3131 
    32 #define WNR2000_BUTTONS_POLL_INTERVAL   20 
     32#define WNR2000_KEYS_POLL_INTERVAL      20      /* msecs */ 
     33#define WNR2000_KEYS_DEBOUNCE_INTERVAL  (3 * WNR2000_KEYS_POLL_INTERVAL) 
    3334 
    3435#ifdef CONFIG_MTD_PARTITIONS 
     
    99100}; 
    100101 
    101 static struct gpio_button wnr2000_gpio_buttons[] __initdata = { 
     102static struct gpio_keys_button wnr2000_gpio_keys[] __initdata = { 
    102103        { 
    103104                .desc           = "reset", 
    104105                .type           = EV_KEY, 
    105106                .code           = KEY_RESTART, 
    106                 .threshold      = 3, 
     107                .debounce_interval = WNR2000_KEYS_DEBOUNCE_INTERVAL, 
    107108                .gpio           = WNR2000_GPIO_BTN_RESET, 
    108109        }, { 
     
    110111                .type           = EV_KEY, 
    111112                .code           = KEY_WPS_BUTTON, 
    112                 .threshold      = 3, 
     113                .debounce_interval = WNR2000_KEYS_DEBOUNCE_INTERVAL, 
    113114                .gpio           = WNR2000_GPIO_BTN_WPS, 
    114115        } 
     
    139140                                        wnr2000_leds_gpio); 
    140141 
    141         ar71xx_add_device_gpio_buttons(-1, WNR2000_BUTTONS_POLL_INTERVAL, 
    142                                         ARRAY_SIZE(wnr2000_gpio_buttons), 
    143                                         wnr2000_gpio_buttons); 
     142        ar71xx_register_gpio_keys_polled(-1, WNR2000_KEYS_POLL_INTERVAL, 
     143                                         ARRAY_SIZE(wnr2000_gpio_keys), 
     144                                         wnr2000_gpio_keys); 
    144145 
    145146 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wp543.c

    r22700 r26603  
    3131#define WP543_GPIO_SW4          8 
    3232 
    33 #define WP543_BUTTONS_POLL_INTERVAL     20 
     33#define WP543_KEYS_POLL_INTERVAL        20      /* msecs */ 
     34#define WP543_KEYS_DEBOUNCE_INTERVAL    (3 * WP543_KEYS_POLL_INTERVAL) 
    3435 
    3536static struct gpio_led wp543_leds_gpio[] __initdata = { 
     
    5758}; 
    5859 
    59 static struct gpio_button wp543_gpio_buttons[] __initdata = { 
     60static struct gpio_keys_button wp543_gpio_keys[] __initdata = { 
    6061        { 
    6162                .desc           = "sw6", 
    6263                .type           = EV_KEY, 
    6364                .code           = BTN_0, 
    64                 .threshold      = 3, 
     65                .debounce_interval = WP543_KEYS_DEBOUNCE_INTERVAL, 
    6566                .gpio           = WP543_GPIO_SW6, 
    6667        }, { 
     
    6869                .type           = EV_KEY, 
    6970                .code           = BTN_1, 
    70                 .threshold      = 3, 
     71                .debounce_interval = WP543_KEYS_DEBOUNCE_INTERVAL, 
    7172                .gpio           = WP543_GPIO_SW4, 
    7273        } 
     
    9394                                        wp543_leds_gpio); 
    9495 
    95         ar71xx_add_device_gpio_buttons(-1, WP543_BUTTONS_POLL_INTERVAL, 
    96                                         ARRAY_SIZE(wp543_gpio_buttons), 
    97                                         wp543_gpio_buttons); 
     96        ar71xx_register_gpio_keys_polled(-1, WP543_KEYS_POLL_INTERVAL, 
     97                                         ARRAY_SIZE(wp543_gpio_keys), 
     98                                         wp543_gpio_keys); 
    9899} 
    99100 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt160nl.c

    r26595 r26603  
    3131#define WRT160NL_GPIO_BTN_RESET         21 
    3232 
    33 #define WRT160NL_BUTTONS_POLL_INTERVAL  20 
     33#define WRT160NL_KEYS_POLL_INTERVAL     20      /* msecs */ 
     34#define WRT160NL_KEYS_DEBOUNCE_INTERVAL (3 * WRT160NL_KEYS_POLL_INTERVAL) 
    3435 
    3536#define WRT160NL_NVRAM_ADDR     0x1f7e0000 
     
    9798}; 
    9899 
    99 static struct gpio_button wrt160nl_gpio_buttons[] __initdata = { 
     100static struct gpio_keys_button wrt160nl_gpio_keys[] __initdata = { 
    100101        { 
    101102                .desc           = "reset", 
    102103                .type           = EV_KEY, 
    103104                .code           = KEY_RESTART, 
    104                 .threshold      = 3, 
     105                .debounce_interval = WRT160NL_KEYS_DEBOUNCE_INTERVAL, 
    105106                .gpio           = WRT160NL_GPIO_BTN_RESET, 
    106107                .active_low     = 1, 
     
    109110                .type           = EV_KEY, 
    110111                .code           = KEY_WPS_BUTTON, 
    111                 .threshold      = 3, 
     112                .debounce_interval = WRT160NL_KEYS_DEBOUNCE_INTERVAL, 
    112113                .gpio           = WRT160NL_GPIO_BTN_WPS, 
    113114                .active_low     = 1, 
     
    151152                                        wrt160nl_leds_gpio); 
    152153 
    153         ar71xx_add_device_gpio_buttons(-1, WRT160NL_BUTTONS_POLL_INTERVAL, 
    154                                         ARRAY_SIZE(wrt160nl_gpio_buttons), 
    155                                         wrt160nl_gpio_buttons); 
     154        ar71xx_register_gpio_keys_polled(-1, WRT160NL_KEYS_POLL_INTERVAL, 
     155                                         ARRAY_SIZE(wrt160nl_gpio_keys), 
     156                                         wrt160nl_gpio_keys); 
    156157 
    157158} 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wrt400n.c

    r23975 r26603  
    3030#define WRT400N_GPIO_BTN_WLSEC  3 
    3131 
    32 #define WRT400N_BUTTONS_POLL_INTERVAL   20 
     32#define WRT400N_KEYS_POLL_INTERVAL      20      /* msecs */ 
     33#define WRT400N_KEYS_DEBOUNE_INTERVAL   (3 * WRT400N_KEYS_POLL_INTERVAL) 
    3334 
    3435#define WRT400N_MAC_ADDR_OFFSET         0x120c 
     
    111112}; 
    112113 
    113 static struct gpio_button wrt400n_gpio_buttons[] __initdata = { 
     114static struct gpio_keys_button wrt400n_gpio_keys[] __initdata = { 
    114115        { 
    115116                .desc           = "reset", 
    116117                .type           = EV_KEY, 
    117118                .code           = KEY_RESTART, 
    118                 .threshold      = 3, 
     119                .debounce_interval = WRT400N_KEYS_DEBOUNE_INTERVAL, 
    119120                .gpio           = WRT400N_GPIO_BTN_RESET, 
    120121                .active_low     = 1, 
     
    123124                .type           = EV_KEY, 
    124125                .code           = KEY_WPS_BUTTON, 
    125                 .threshold      = 3, 
     126                .debounce_interval = WRT400N_KEYS_DEBOUNE_INTERVAL, 
    126127                .gpio           = WRT400N_GPIO_BTN_WLSEC, 
    127128                .active_low     = 1, 
     
    153154                                        wrt400n_leds_gpio); 
    154155 
    155         ar71xx_add_device_gpio_buttons(-1, WRT400N_BUTTONS_POLL_INTERVAL, 
    156                                         ARRAY_SIZE(wrt400n_gpio_buttons), 
    157                                         wrt400n_gpio_buttons); 
     156        ar71xx_register_gpio_keys_polled(-1, WRT400N_KEYS_POLL_INTERVAL, 
     157                                         ARRAY_SIZE(wrt400n_gpio_keys), 
     158                                         wrt400n_gpio_keys); 
    158159 
    159160        ap94_pci_init(art + WRT400N_CALDATA0_OFFSET, NULL, 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wzr-hp-g300nh.c

    r26601 r26603  
    5050#define WZRHPG300NH_GPIO_BTN_QOS_OFF    (WZRHPG300NH_GPIO_EXP_BASE + 7) 
    5151 
    52 #define WZRHPG300NH_BUTTONS_POLL_INTERVAL       20 
     52#define WZRHPG300NH_KEYS_POLL_INTERVAL  20      /* msecs */ 
     53#define WZRHPG300NH_KEYS_DEBOUNCE_INTERVAL (3 * WZRHPG300NH_KEYS_POLL_INTERVAL) 
    5354 
    5455#define WZRHPG300NH_MAC_OFFSET          0x20c 
     
    145146}; 
    146147 
    147 static struct gpio_button wzrhpg300nh_gpio_buttons[] __initdata = { 
     148static struct gpio_keys_button wzrhpg300nh_gpio_keys[] __initdata = { 
    148149        { 
    149150                .desc           = "reset", 
    150151                .type           = EV_KEY, 
    151152                .code           = KEY_RESTART, 
    152                 .threshold      = 3, 
     153                .debounce_interval = WZRHPG300NH_KEYS_DEBOUNCE_INTERVAL, 
    153154                .gpio           = WZRHPG300NH_GPIO_BTN_RESET, 
    154155                .active_low     = 1, 
     
    157158                .type           = EV_KEY, 
    158159                .code           = KEY_WPS_BUTTON, 
    159                 .threshold      = 3, 
     160                .debounce_interval = WZRHPG300NH_KEYS_DEBOUNCE_INTERVAL, 
    160161                .gpio           = WZRHPG300NH_GPIO_BTN_AOSS, 
    161162                .active_low     = 1, 
     
    164165                .type           = EV_KEY, 
    165166                .code           = BTN_2, 
    166                 .threshold      = 3, 
     167                .debounce_interval = WZRHPG300NH_KEYS_DEBOUNCE_INTERVAL, 
    167168                .gpio           = WZRHPG300NH_GPIO_BTN_USB, 
    168169                .active_low     = 1, 
     
    171172                .type           = EV_KEY, 
    172173                .code           = BTN_3, 
    173                 .threshold      = 3, 
     174                .debounce_interval = WZRHPG300NH_KEYS_DEBOUNCE_INTERVAL, 
    174175                .gpio           = WZRHPG300NH_GPIO_BTN_QOS_ON, 
    175176                .active_low     = 0, 
     
    178179                .type           = EV_KEY, 
    179180                .code           = BTN_4, 
    180                 .threshold      = 3, 
     181                .debounce_interval = WZRHPG300NH_KEYS_DEBOUNCE_INTERVAL, 
    181182                .gpio           = WZRHPG300NH_GPIO_BTN_QOS_OFF, 
    182183                .active_low     = 0, 
     
    185186                .type           = EV_KEY, 
    186187                .code           = BTN_5, 
    187                 .threshold      = 3, 
     188                .debounce_interval = WZRHPG300NH_KEYS_DEBOUNCE_INTERVAL, 
    188189                .gpio           = WZRHPG300NH_GPIO_BTN_ROUTER_ON, 
    189190                .active_low     = 0, 
     
    192193                .type           = EV_KEY, 
    193194                .code           = BTN_6, 
    194                 .threshold      = 3, 
     195                .debounce_interval = WZRHPG300NH_KEYS_DEBOUNCE_INTERVAL, 
    195196                .gpio           = WZRHPG300NH_GPIO_BTN_ROUTER_AUTO, 
    196197                .active_low     = 0, 
     
    284285                                        wzrhpg300nh_leds_gpio); 
    285286 
    286         ar71xx_add_device_gpio_buttons(-1, WZRHPG300NH_BUTTONS_POLL_INTERVAL, 
    287                                         ARRAY_SIZE(wzrhpg300nh_gpio_buttons), 
    288                                         wzrhpg300nh_gpio_buttons); 
     287        ar71xx_register_gpio_keys_polled(-1, WZRHPG300NH_KEYS_POLL_INTERVAL, 
     288                                         ARRAY_SIZE(wzrhpg300nh_gpio_keys), 
     289                                         wzrhpg300nh_gpio_keys); 
    289290 
    290291} 
  • trunk/target/linux/ar71xx/files/arch/mips/ar71xx/mach-zcn-1523h.c

    r23975 r26603  
    3535#define ZCN_1523H_5_GPIO_LED_STRONG     16 
    3636 
    37 #define ZCN_1523H_BUTTONS_POLL_INTERVAL 20 
     37#define ZCN_1523H_KEYS_POLL_INTERVAL    20      /* msecs */ 
     38#define ZCN_1523H_KEYS_DEBOUNCE_INTERVAL (3 * ZCN_1523H_KEYS_POLL_INTERVAL) 
    3839 
    3940#ifdef CONFIG_MTD_PARTITIONS 
     
    8788}; 
    8889 
    89 static struct gpio_button zcn_1523h_gpio_buttons[] __initdata = { 
     90static struct gpio_keys_button zcn_1523h_gpio_keys[] __initdata = { 
    9091        { 
    9192                .desc           = "reset", 
    9293                .type           = EV_KEY, 
    9394                .code           = KEY_RESTART, 
    94                 .threshold      = 3, 
     95                .debounce_interval = ZCN_1523H_KEYS_DEBOUNCE_INTERVAL, 
    9596                .gpio           = ZCN_1523H_GPIO_BTN_RESET, 
    9697                .active_low     = 1, 
     
    165166                                        zcn_1523h_leds_gpio); 
    166167 
    167         ar71xx_add_device_gpio_buttons(-1, ZCN_1523H_BUTTONS_POLL_INTERVAL, 
    168                                         ARRAY_SIZE(zcn_1523h_gpio_buttons), 
    169                                         zcn_1523h_gpio_buttons); 
     168        ar71xx_register_gpio_keys_polled(-1, ZCN_1523H_KEYS_POLL_INTERVAL, 
     169                                         ARRAY_SIZE(zcn_1523h_gpio_keys), 
     170                                         zcn_1523h_gpio_keys); 
    170171 
    171172        ap91_pci_init(ee, mac); 
Note: See TracChangeset for help on using the changeset viewer.