2 * Atheros AR71XX/AR724X/AR913X GPIO button support
4 * Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org>
5 * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published
9 * by the Free Software Foundation.
12 #include "linux/init.h"
13 #include "linux/slab.h"
14 #include <linux/platform_device.h>
16 #include "dev-gpio-buttons.h"
18 void __init
ath79_register_gpio_keys_polled(int id
,
19 unsigned poll_interval
,
21 struct gpio_keys_button
*buttons
)
23 struct platform_device
*pdev
;
24 struct gpio_keys_platform_data pdata
;
25 struct gpio_keys_button
*p
;
28 p
= kmalloc(nbuttons
* sizeof(*p
), GFP_KERNEL
);
32 memcpy(p
, buttons
, nbuttons
* sizeof(*p
));
34 pdev
= platform_device_alloc("gpio-keys-polled", id
);
36 goto err_free_buttons
;
38 memset(&pdata
, 0, sizeof(pdata
));
39 pdata
.poll_interval
= poll_interval
;
40 pdata
.nbuttons
= nbuttons
;
43 err
= platform_device_add_data(pdev
, &pdata
, sizeof(pdata
));
47 err
= platform_device_add(pdev
);
54 platform_device_put(pdev
);