Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
mips
ath79
mach-ap121.c
Go to the documentation of this file.
1
/*
2
* Atheros AP121 board support
3
*
4
* Copyright (C) 2011 Gabor Juhos <
[email protected]
>
5
*
6
* This program is free software; you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License version 2 as published
8
* by the Free Software Foundation.
9
*/
10
11
#include "
machtypes.h
"
12
#include "
dev-gpio-buttons.h
"
13
#include "
dev-leds-gpio.h
"
14
#include "
dev-spi.h
"
15
#include "
dev-usb.h
"
16
#include "
dev-wmac.h
"
17
18
#define AP121_GPIO_LED_WLAN 0
19
#define AP121_GPIO_LED_USB 1
20
21
#define AP121_GPIO_BTN_JUMPSTART 11
22
#define AP121_GPIO_BTN_RESET 12
23
24
#define AP121_KEYS_POLL_INTERVAL 20
/* msecs */
25
#define AP121_KEYS_DEBOUNCE_INTERVAL (3 * AP121_KEYS_POLL_INTERVAL)
26
27
#define AP121_CAL_DATA_ADDR 0x1fff1000
28
29
static
struct
gpio_led
ap121_leds_gpio[]
__initdata
= {
30
{
31
.name =
"ap121:green:usb"
,
32
.gpio =
AP121_GPIO_LED_USB
,
33
.active_low = 0,
34
},
35
{
36
.name =
"ap121:green:wlan"
,
37
.gpio =
AP121_GPIO_LED_WLAN
,
38
.active_low = 0,
39
},
40
};
41
42
static
struct
gpio_keys_button
ap121_gpio_keys[] __initdata = {
43
{
44
.desc =
"jumpstart button"
,
45
.type =
EV_KEY
,
46
.code =
KEY_WPS_BUTTON
,
47
.debounce_interval =
AP121_KEYS_DEBOUNCE_INTERVAL
,
48
.gpio =
AP121_GPIO_BTN_JUMPSTART
,
49
.active_low = 1,
50
},
51
{
52
.desc =
"reset button"
,
53
.type =
EV_KEY
,
54
.code =
KEY_RESTART
,
55
.debounce_interval =
AP121_KEYS_DEBOUNCE_INTERVAL
,
56
.gpio =
AP121_GPIO_BTN_RESET
,
57
.active_low = 1,
58
}
59
};
60
61
static
struct
spi_board_info
ap121_spi_info[] = {
62
{
63
.bus_num = 0,
64
.chip_select = 0,
65
.max_speed_hz = 25000000,
66
.modalias =
"mx25l1606e"
,
67
}
68
};
69
70
static
struct
ath79_spi_platform_data
ap121_spi_data = {
71
.bus_num = 0,
72
.num_chipselect = 1,
73
};
74
75
static
void
__init
ap121_setup(
void
)
76
{
77
u8
*cal_data = (
u8
*)
KSEG1ADDR
(
AP121_CAL_DATA_ADDR
);
78
79
ath79_register_leds_gpio
(-1,
ARRAY_SIZE
(ap121_leds_gpio),
80
ap121_leds_gpio);
81
ath79_register_gpio_keys_polled
(-1,
AP121_KEYS_POLL_INTERVAL
,
82
ARRAY_SIZE
(ap121_gpio_keys),
83
ap121_gpio_keys);
84
85
ath79_register_spi
(&ap121_spi_data, ap121_spi_info,
86
ARRAY_SIZE
(ap121_spi_info));
87
ath79_register_usb
();
88
ath79_register_wmac
(cal_data);
89
}
90
91
MIPS_MACHINE
(
ATH79_MACH_AP121
,
"AP121"
,
"Atheros AP121 reference board"
,
92
ap121_setup);
Generated on Thu Jan 10 2013 13:08:53 for Linux Kernel by
1.8.2