Root/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-omni-emb.c

1/*
2 * Omnima MiniEMBWiFi board support
3 *
4 * Copyright (C) 2011 Johnathan Boyce <jon.boyce@globalreach.eu.com>
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 <linux/init.h>
12#include <linux/platform_device.h>
13#include <linux/gpio.h>
14
15#include <asm/mach-ralink/machine.h>
16#include <asm/mach-ralink/dev-gpio-buttons.h>
17#include <asm/mach-ralink/dev-gpio-leds.h>
18#include <asm/mach-ralink/rt305x.h>
19#include <asm/mach-ralink/rt305x_regs.h>
20
21#include "devices.h"
22
23#define OMNI_EMB_GPIO_BUTTON_RESET 12 /* active low */
24
25#define OMNI_EMB_KEYS_POLL_INTERVAL 20
26#define OMNI_EMB_KEYS_DEBOUNCE_INTERVAL (3 * OMNI_EMB_KEYS_POLL_INTERVAL)
27
28#define OMNI_EMB_GPIO_LED_STATUS 9
29#define OMNI_EMB_GPIO_LED_WLAN 14
30
31static struct gpio_led omni_emb_leds_gpio[] __initdata = {
32    {
33        .name = "emb:green:status",
34        .gpio = OMNI_EMB_GPIO_LED_STATUS,
35        .active_low = 1,
36    }, {
37        .name = "emb:green:wlan",
38        .gpio = OMNI_EMB_GPIO_LED_WLAN,
39        .active_low = 1,
40    }
41};
42
43static struct gpio_keys_button omni_emb_gpio_buttons[] __initdata = {
44    {
45        .desc = "reset",
46        .type = EV_KEY,
47        .code = KEY_RESTART,
48        .debounce_interval = OMNI_EMB_KEYS_DEBOUNCE_INTERVAL,
49        .gpio = OMNI_EMB_GPIO_BUTTON_RESET,
50        .active_low = 1,
51    }
52};
53
54static void __init omni_emb_init(void)
55{
56    rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW;
57
58    rt305x_gpio_init(RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT);
59
60    ramips_register_gpio_leds(-1, ARRAY_SIZE(omni_emb_leds_gpio),
61                omni_emb_leds_gpio);
62    ramips_register_gpio_buttons(-1, OMNI_EMB_KEYS_POLL_INTERVAL,
63                ARRAY_SIZE(omni_emb_gpio_buttons),
64                omni_emb_gpio_buttons);
65
66    rt305x_register_flash(0);
67    rt305x_register_ethernet();
68    rt305x_register_wifi();
69    rt305x_register_wdt();
70    rt305x_register_usb();
71}
72
73MIPS_MACHINE(RAMIPS_MACH_OMNI_EMB, "OMNI-EMB", "Omnima MiniEMBWiFi",
74         omni_emb_init);
75

Archive Download this file



interactive