Blame view

kernel/linux-imx6_3.14.28/arch/arm/mach-gemini/board-nas4220b.c 2.33 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
  /*
   *  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 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);
  	platform_register_rtc();
  }
  
  MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B")
  	.atag_offset	= 0x100,
  	.map_io		= gemini_map_io,
  	.init_irq	= gemini_init_irq,
  	.init_time	= gemini_timer_init,
  	.init_machine	= ib4220b_init,
  	.restart	= gemini_restart,
  MACHINE_END