source: trunk/target/linux/ramips/files/arch/mips/ralink/rt305x/mach-mofi3500-3gn.c @ 27996

Last change on this file since 27996 was 27996, checked in by juhosg, 5 years ago

ramips: rt305x: register the dwc_otg device on the relevant boards

  • Property svn:eol-style set to native
File size: 3.5 KB
Line 
1/*
2 *  MoFi Network MOFI3500-3GN board support
3 *
4 *  Copyright (C) 2011 Layne Edwards <ledwards76@gmail.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/mtd/mtd.h>
14#include <linux/mtd/partitions.h>
15#include <linux/mtd/physmap.h>
16
17#include <asm/mach-ralink/machine.h>
18#include <asm/mach-ralink/dev-gpio-buttons.h>
19#include <asm/mach-ralink/dev-gpio-leds.h>
20#include <asm/mach-ralink/rt305x.h>
21#include <asm/mach-ralink/rt305x_regs.h>
22
23#include "devices.h"
24
25#define MOFI3500_3GN_GPIO_LED_USB               8
26#define MOFI3500_3GN_GPIO_LED_3G                11
27#define MOFI3500_3GN_GPIO_LED_STATUS            12
28#define MOFI3500_3GN_GPIO_LED_WPS               14
29
30#define MOFI3500_3GN_GPIO_BUTTON_RESET          10
31#define MOFI3500_3GN_GPIO_BUTTON_CONNECT        7
32#define MOFI3500_3GN_GPIO_BUTTON_WPS            0
33
34#define MOFI3500_3GN_BUTTONS_POLL_INTERVAL      20
35
36#ifdef CONFIG_MTD_PARTITIONS
37static struct mtd_partition mofi3500_3gn_partitions[] = {
38        {
39                .name   = "u-boot",
40                .offset = 0,
41                .size   = 0x030000,
42                .mask_flags = MTD_WRITEABLE,
43        }, {
44                .name   = "config",
45                .offset = 0x030000,
46                .size   = 0x010000,
47                .mask_flags = MTD_WRITEABLE,
48        }, {
49                .name   = "factory",
50                .offset = 0x040000,
51                .size   = 0x010000,
52                .mask_flags = MTD_WRITEABLE,
53        }, {
54                .name   = "kernel",
55                .offset = 0x050000,
56                .size   = 0x0d0000,
57        }, {
58                .name   = "rootfs",
59                .offset = 0x120000,
60                .size   = 0x6e0000,
61        }, {
62                .name   = "firmware",
63                .offset = 0x050000,
64                .size   = 0x7b0000,
65        }
66};
67#endif /* CONFIG_MTD_PARTITIONS */
68
69static struct physmap_flash_data mofi3500_3gn_flash_data = {
70#ifdef CONFIG_MTD_PARTITIONS
71        .nr_parts       = ARRAY_SIZE(mofi3500_3gn_partitions),
72        .parts          = mofi3500_3gn_partitions,
73#endif
74};
75
76static struct gpio_led mofi3500_3gn_leds_gpio[] __initdata = {
77        {
78                .name           = "mofi3500-3gn:green:usb",
79                .gpio           = MOFI3500_3GN_GPIO_LED_USB,
80                .active_low     = 1,
81        }, {
82                .name           = "mofi3500-3gn:green:3g",
83                .gpio           = MOFI3500_3GN_GPIO_LED_3G,
84                .active_low     = 1,
85        }, {
86                .name           = "mofi3500-3gn:green:status",
87                .gpio           = MOFI3500_3GN_GPIO_LED_STATUS,
88                .active_low     = 1,
89        }, {
90                .name           = "mofi3500-3gn:green:wps",
91                .gpio           = MOFI3500_3GN_GPIO_LED_WPS,
92                .active_low     = 1,
93        }
94};
95
96static struct gpio_button mofi3500_3gn_gpio_buttons[] __initdata = {
97        {
98                .desc           = "reset",
99                .type           = EV_KEY,
100                .code           = KEY_RESTART,
101                .threshold      = 3,
102                .gpio           = MOFI3500_3GN_GPIO_BUTTON_RESET,
103                .active_low     = 1,
104        }, {
105                .desc           = "connect",
106                .type           = EV_KEY,
107                .code           = KEY_CONNECT,
108                .threshold      = 3,
109                .gpio           = MOFI3500_3GN_GPIO_BUTTON_CONNECT,
110                .active_low     = 1,
111        }, {
112                .desc           = "wps",
113                .type           = EV_KEY,
114                .code           = KEY_WPS_BUTTON,
115                .threshold      = 3,
116                .gpio           = MOFI3500_3GN_GPIO_BUTTON_WPS,
117                .active_low     = 1,
118        }
119};
120
121#define MOFI3500_3GN_GPIO_MODE \
122        ((RT305X_GPIO_MODE_GPIO << RT305X_GPIO_MODE_UART0_SHIFT) | \
123         RT305X_GPIO_MODE_MDIO)
124
125static void __init mofi3500_3gn_init(void)
126{
127        rt305x_gpio_init(MOFI3500_3GN_GPIO_MODE);
128
129        rt305x_register_flash(0, &mofi3500_3gn_flash_data);
130        rt305x_esw_data.vlan_config = RT305X_ESW_VLAN_CONFIG_LLLLW;
131        rt305x_register_ethernet();
132        ramips_register_gpio_leds(-1, ARRAY_SIZE(mofi3500_3gn_leds_gpio),
133                                  mofi3500_3gn_leds_gpio);
134        ramips_register_gpio_buttons(-1, MOFI3500_3GN_BUTTONS_POLL_INTERVAL,
135                                     ARRAY_SIZE(mofi3500_3gn_gpio_buttons),
136                                     mofi3500_3gn_gpio_buttons);
137        rt305x_register_wifi();
138        rt305x_register_wdt();
139        rt305x_register_usb();
140}
141
142MIPS_MACHINE(RAMIPS_MACH_MOFI3500_3GN, "MOFI3500-3GN", "MoFi Network MOFI3500-3GN",
143             mofi3500_3gn_init);
Note: See TracBrowser for help on using the repository browser.