2010-05-13 09:37:26 +04:00
/*
* Support for Raidsonic NAS - 4220 - B
*
* Copyright ( C ) 2009 Janos Laube < janos . dev @ gmail . com >
*
* based on rut1xx . c
* Copyright ( C ) 2008 Paulius Zaleckas < paulius . zaleckas @ teltonika . lt >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*/
# include <linux/kernel.h>
# include <linux/init.h>
# include <linux/platform_device.h>
# include <linux/leds.h>
# include <linux/input.h>
# include <linux/gpio_keys.h>
# include <linux/mdio-gpio.h>
# include <linux/io.h>
# include <asm/setup.h>
# include <asm/mach-types.h>
# include <asm/mach/arch.h>
# include <asm/mach/time.h>
# include <mach/hardware.h>
# include <mach/global_reg.h>
# include "common.h"
static struct sys_timer ib4220b_timer = {
. init = gemini_timer_init ,
} ;
static struct gpio_led ib4220b_leds [ ] = {
{
. name = " nas4220b:orange:hdd " ,
. default_trigger = " none " ,
. gpio = 60 ,
} ,
{
. name = " nas4220b:green:os " ,
. default_trigger = " heartbeat " ,
. gpio = 62 ,
} ,
} ;
static struct gpio_led_platform_data ib4220b_leds_data = {
. num_leds = ARRAY_SIZE ( ib4220b_leds ) ,
. leds = ib4220b_leds ,
} ;
static struct platform_device ib4220b_led_device = {
. name = " leds-gpio " ,
. id = - 1 ,
. dev = {
. platform_data = & ib4220b_leds_data ,
} ,
} ;
static struct gpio_keys_button ib4220b_keys [ ] = {
{
. code = KEY_SETUP ,
. gpio = 61 ,
. active_low = 1 ,
. desc = " Backup Button " ,
. type = EV_KEY ,
} ,
{
. code = KEY_RESTART ,
. gpio = 63 ,
. active_low = 1 ,
. desc = " Softreset Button " ,
. type = EV_KEY ,
} ,
} ;
static struct gpio_keys_platform_data ib4220b_keys_data = {
. buttons = ib4220b_keys ,
. nbuttons = ARRAY_SIZE ( ib4220b_keys ) ,
} ;
static struct platform_device ib4220b_key_device = {
. name = " gpio-keys " ,
. id = - 1 ,
. dev = {
. platform_data = & ib4220b_keys_data ,
} ,
} ;
static void __init ib4220b_init ( void )
{
gemini_gpio_init ( ) ;
platform_register_uart ( ) ;
platform_register_pflash ( SZ_16M , NULL , 0 ) ;
platform_device_register ( & ib4220b_led_device ) ;
platform_device_register ( & ib4220b_key_device ) ;
2010-12-26 13:02:29 +03:00
platform_register_rtc ( ) ;
2010-05-13 09:37:26 +04:00
}
MACHINE_START ( NAS4220B , " Raidsonic NAS IB-4220-B " )
2011-07-06 06:38:12 +04:00
. atag_offset = 0x100 ,
2010-05-13 09:37:26 +04:00
. map_io = gemini_map_io ,
. init_irq = gemini_init_irq ,
. timer = & ib4220b_timer ,
. init_machine = ib4220b_init ,
MACHINE_END