6b041d0b1d
There are no external users (last one was PCI driver) for these headers, so move them to arch directory. Few macroses from ar231x.h header moved to devices.h and file was removed. Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> SVN-Revision: 44724
71 lines
1.4 KiB
Diff
71 lines
1.4 KiB
Diff
--- a/arch/mips/ath25/Makefile
|
|
+++ b/arch/mips/ath25/Makefile
|
|
@@ -8,7 +8,7 @@
|
|
# Copyright (C) 2006-2009 Felix Fietkau <nbd@openwrt.org>
|
|
#
|
|
|
|
-obj-y += board.o prom.o devices.o
|
|
+obj-y += board.o prom.o devices.o reset.o
|
|
|
|
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
|
|
|
--- /dev/null
|
|
+++ b/arch/mips/ath25/reset.c
|
|
@@ -0,0 +1,57 @@
|
|
+#include <linux/init.h>
|
|
+#include <linux/slab.h>
|
|
+#include <linux/platform_device.h>
|
|
+#include <linux/gpio_keys.h>
|
|
+#include <linux/input.h>
|
|
+#include <ath25_platform.h>
|
|
+#include "devices.h"
|
|
+
|
|
+static int __init
|
|
+ar231x_init_reset(void)
|
|
+{
|
|
+ struct platform_device *pdev;
|
|
+ struct gpio_keys_platform_data pdata;
|
|
+ struct gpio_keys_button *p;
|
|
+ int err;
|
|
+
|
|
+ if (ath25_board.config->reset_config_gpio == 0xffff)
|
|
+ return -ENODEV;
|
|
+
|
|
+ p = kzalloc(sizeof(*p), GFP_KERNEL);
|
|
+ if (!p)
|
|
+ goto err;
|
|
+
|
|
+ p->desc = "reset";
|
|
+ p->type = EV_KEY;
|
|
+ p->code = KEY_RESTART;
|
|
+ p->debounce_interval = 60;
|
|
+ p->gpio = ath25_board.config->reset_config_gpio;
|
|
+
|
|
+ memset(&pdata, 0, sizeof(pdata));
|
|
+ pdata.poll_interval = 20;
|
|
+ pdata.buttons = p;
|
|
+ pdata.nbuttons = 1;
|
|
+
|
|
+ pdev = platform_device_alloc("gpio-keys-polled", 0);
|
|
+ if (!pdev)
|
|
+ goto err_free;
|
|
+
|
|
+ err = platform_device_add_data(pdev, &pdata, sizeof(pdata));
|
|
+ if (err)
|
|
+ goto err_put_pdev;
|
|
+
|
|
+ err = platform_device_add(pdev);
|
|
+ if (err)
|
|
+ goto err_put_pdev;
|
|
+
|
|
+ return 0;
|
|
+
|
|
+err_put_pdev:
|
|
+ platform_device_put(pdev);
|
|
+err_free:
|
|
+ kfree(p);
|
|
+err:
|
|
+ return -ENOMEM;
|
|
+}
|
|
+
|
|
+module_init(ar231x_init_reset);
|