Blame view

kernel/linux-imx6_3.14.28/arch/arm/mach-gemini/board-rut1xx.c 2 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
  /*
   *  Support for Teltonika RUT1xx
   *
   *  Copyright (C) 2008-2009 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/sizes.h>
  
  #include <asm/mach-types.h>
  #include <asm/mach/arch.h>
  #include <asm/mach/time.h>
  
  #include "common.h"
  
  static struct gpio_keys_button rut1xx_keys[] = {
  	{
  		.code		= KEY_SETUP,
  		.gpio		= 60,
  		.active_low	= 1,
  		.desc		= "Reset to defaults",
  		.type		= EV_KEY,
  	},
  };
  
  static struct gpio_keys_platform_data rut1xx_keys_data = {
  	.buttons	= rut1xx_keys,
  	.nbuttons	= ARRAY_SIZE(rut1xx_keys),
  };
  
  static struct platform_device rut1xx_keys_device = {
  	.name	= "gpio-keys",
  	.id	= -1,
  	.dev	= {
  		.platform_data = &rut1xx_keys_data,
  	},
  };
  
  static struct gpio_led rut100_leds[] = {
  	{
  		.name			= "Power",
  		.default_trigger	= "heartbeat",
  		.gpio			= 17,
  	},
  	{
  		.name			= "GSM",
  		.default_trigger	= "default-on",
  		.gpio			= 7,
  		.active_low		= 1,
  	},
  };
  
  static struct gpio_led_platform_data rut100_leds_data = {
  	.num_leds	= ARRAY_SIZE(rut100_leds),
  	.leds		= rut100_leds,
  };
  
  static struct platform_device rut1xx_leds = {
  	.name	= "leds-gpio",
  	.id	= -1,
  	.dev	= {
  		.platform_data = &rut100_leds_data,
  	},
  };
  
  static void __init rut1xx_init(void)
  {
  	gemini_gpio_init();
  	platform_register_uart();
  	platform_register_pflash(SZ_8M, NULL, 0);
  	platform_device_register(&rut1xx_leds);
  	platform_device_register(&rut1xx_keys_device);
  	platform_register_rtc();
  }
  
  MACHINE_START(RUT100, "Teltonika RUT100")
  	.atag_offset	= 0x100,
  	.map_io		= gemini_map_io,
  	.init_irq	= gemini_init_irq,
  	.init_time	= gemini_timer_init,
  	.init_machine	= rut1xx_init,
  	.restart	= gemini_restart,
  MACHINE_END