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-ap81.c
Go to the documentation of this file.
1
/*
2
* Atheros AP81 board support
3
*
4
* Copyright (C) 2009-2010 Gabor Juhos <
[email protected]
>
5
* Copyright (C) 2009 Imre Kaloz <
[email protected]
>
6
*
7
* This program is free software; you can redistribute it and/or modify it
8
* under the terms of the GNU General Public License version 2 as published
9
* by the Free Software Foundation.
10
*/
11
12
#include "
machtypes.h
"
13
#include "
dev-wmac.h
"
14
#include "
dev-gpio-buttons.h
"
15
#include "
dev-leds-gpio.h
"
16
#include "
dev-spi.h
"
17
#include "
dev-usb.h
"
18
19
#define AP81_GPIO_LED_STATUS 1
20
#define AP81_GPIO_LED_AOSS 3
21
#define AP81_GPIO_LED_WLAN 6
22
#define AP81_GPIO_LED_POWER 14
23
24
#define AP81_GPIO_BTN_SW4 12
25
#define AP81_GPIO_BTN_SW1 21
26
27
#define AP81_KEYS_POLL_INTERVAL 20
/* msecs */
28
#define AP81_KEYS_DEBOUNCE_INTERVAL (3 * AP81_KEYS_POLL_INTERVAL)
29
30
#define AP81_CAL_DATA_ADDR 0x1fff1000
31
32
static
struct
gpio_led
ap81_leds_gpio[]
__initdata
= {
33
{
34
.name =
"ap81:green:status"
,
35
.gpio =
AP81_GPIO_LED_STATUS
,
36
.active_low = 1,
37
}, {
38
.name =
"ap81:amber:aoss"
,
39
.gpio =
AP81_GPIO_LED_AOSS
,
40
.active_low = 1,
41
}, {
42
.name =
"ap81:green:wlan"
,
43
.gpio =
AP81_GPIO_LED_WLAN
,
44
.active_low = 1,
45
}, {
46
.name =
"ap81:green:power"
,
47
.gpio =
AP81_GPIO_LED_POWER
,
48
.active_low = 1,
49
}
50
};
51
52
static
struct
gpio_keys_button
ap81_gpio_keys[] __initdata = {
53
{
54
.desc =
"sw1"
,
55
.type =
EV_KEY
,
56
.code =
BTN_0
,
57
.debounce_interval =
AP81_KEYS_DEBOUNCE_INTERVAL
,
58
.gpio =
AP81_GPIO_BTN_SW1
,
59
.active_low = 1,
60
} , {
61
.desc =
"sw4"
,
62
.type =
EV_KEY
,
63
.code =
BTN_1
,
64
.debounce_interval =
AP81_KEYS_DEBOUNCE_INTERVAL
,
65
.gpio =
AP81_GPIO_BTN_SW4
,
66
.active_low = 1,
67
}
68
};
69
70
static
struct
spi_board_info
ap81_spi_info[] = {
71
{
72
.bus_num = 0,
73
.chip_select = 0,
74
.max_speed_hz = 25000000,
75
.modalias =
"m25p64"
,
76
}
77
};
78
79
static
struct
ath79_spi_platform_data
ap81_spi_data = {
80
.bus_num = 0,
81
.num_chipselect = 1,
82
};
83
84
static
void
__init
ap81_setup(
void
)
85
{
86
u8
*cal_data = (
u8
*)
KSEG1ADDR
(
AP81_CAL_DATA_ADDR
);
87
88
ath79_register_leds_gpio
(-1,
ARRAY_SIZE
(ap81_leds_gpio),
89
ap81_leds_gpio);
90
ath79_register_gpio_keys_polled
(-1,
AP81_KEYS_POLL_INTERVAL
,
91
ARRAY_SIZE
(ap81_gpio_keys),
92
ap81_gpio_keys);
93
ath79_register_spi
(&ap81_spi_data, ap81_spi_info,
94
ARRAY_SIZE
(ap81_spi_info));
95
ath79_register_wmac
(cal_data);
96
ath79_register_usb
();
97
}
98
99
MIPS_MACHINE
(
ATH79_MACH_AP81
,
"AP81"
,
"Atheros AP81 reference board"
,
100
ap81_setup);
Generated on Thu Jan 10 2013 13:08:53 for Linux Kernel by
1.8.2