• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/arm/mach-gemini/
1/*
2 *  Support for Raidsonic NAS-4220-B
3 *
4 *  Copyright (C) 2009 Janos Laube <janos.dev@gmail.com>
5 *
6 * based on rut1xx.c
7 *  Copyright (C) 2008 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 */
14
15#include <linux/kernel.h>
16#include <linux/init.h>
17#include <linux/platform_device.h>
18#include <linux/leds.h>
19#include <linux/input.h>
20#include <linux/gpio_keys.h>
21#include <linux/mdio-gpio.h>
22#include <linux/io.h>
23
24#include <asm/setup.h>
25#include <asm/mach-types.h>
26#include <asm/mach/arch.h>
27#include <asm/mach/time.h>
28
29#include <mach/hardware.h>
30#include <mach/global_reg.h>
31
32#include "common.h"
33
34static struct sys_timer ib4220b_timer = {
35	.init	= gemini_timer_init,
36};
37
38static struct gpio_led ib4220b_leds[] = {
39	{
40		.name			= "nas4220b:orange:hdd",
41		.default_trigger	= "none",
42		.gpio			= 60,
43	},
44	{
45		.name			= "nas4220b:green:os",
46		.default_trigger	= "heartbeat",
47		.gpio			= 62,
48	},
49};
50
51static struct gpio_led_platform_data ib4220b_leds_data = {
52	.num_leds	= ARRAY_SIZE(ib4220b_leds),
53	.leds		= ib4220b_leds,
54};
55
56static struct platform_device ib4220b_led_device = {
57	.name	= "leds-gpio",
58	.id	= -1,
59	.dev	= {
60		.platform_data = &ib4220b_leds_data,
61	},
62};
63
64static struct gpio_keys_button ib4220b_keys[] = {
65	{
66		.code		= KEY_SETUP,
67		.gpio		= 61,
68		.active_low	= 1,
69		.desc		= "Backup Button",
70		.type		= EV_KEY,
71	},
72	{
73		.code		= KEY_RESTART,
74		.gpio		= 63,
75		.active_low	= 1,
76		.desc		= "Softreset Button",
77		.type		= EV_KEY,
78	},
79};
80
81static struct gpio_keys_platform_data ib4220b_keys_data = {
82	.buttons	= ib4220b_keys,
83	.nbuttons	= ARRAY_SIZE(ib4220b_keys),
84};
85
86static struct platform_device ib4220b_key_device = {
87	.name	= "gpio-keys",
88	.id	= -1,
89	.dev	= {
90		.platform_data = &ib4220b_keys_data,
91	},
92};
93
94static void __init ib4220b_init(void)
95{
96	gemini_gpio_init();
97	platform_register_uart();
98	platform_register_pflash(SZ_16M, NULL, 0);
99	platform_device_register(&ib4220b_led_device);
100	platform_device_register(&ib4220b_key_device);
101}
102
103MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B")
104	.phys_io	= 0x7fffc000,
105	.io_pg_offst	= ((0xffffc000) >> 18) & 0xfffc,
106	.boot_params	= 0x100,
107	.map_io		= gemini_map_io,
108	.init_irq	= gemini_init_irq,
109	.timer		= &ib4220b_timer,
110	.init_machine	= ib4220b_init,
111MACHINE_END
112