openwrt/target/linux/ar71xx/files/arch/mips/ath79/mach-wndap360.c
Gabor Juhos 9af6a5a88f ar71xx: don't register USB device on WNDAP360
Apparently registering usb device on newest trunk causes
this AP not to boot...
Since there is no USB socket in that device anyway this
can be simply removed (and device boots then no problem).

[juhosg:
  - tweak subject line and description,
  - remove #include "dev-usb.h",
  - remove 'select ATH79_DEV_USB' from Kconfig]

Signed-off-by: Jacek Kikiewicz <jaceq@aol.pl>
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>

SVN-Revision: 37844
2013-08-27 10:48:24 +00:00

105 lines
2.9 KiB
C

/*
* Netgear WNDAP360 board support (proper leds / button support missing)
*
* Based on AP96
* Copyright (C) 2013 Jacek Kikiewicz
* Copyright (C) 2009 Marco Porsch
* Copyright (C) 2009-2012 Gabor Juhos <juhosg@openwrt.org>
* Copyright (C) 2010 Atheros Communications
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published
* by the Free Software Foundation.
*/
#include <linux/platform_device.h>
#include <linux/delay.h>
#include <asm/mach-ath79/ath79.h>
#include "dev-ap9x-pci.h"
#include "dev-eth.h"
#include "dev-gpio-buttons.h"
#include "dev-leds-gpio.h"
#include "dev-m25p80.h"
#include "machtypes.h"
#define WNDAP360_GPIO_LED_POWER_ORANGE 0
#define WNDAP360_GPIO_LED_POWER_GREEN 2
/* Reset button - next to the power connector */
#define WNDAP360_GPIO_BTN_RESET 3
/* WPS button - next to a led on right */
#define WNDAP360_GPIO_BTN_WPS 8
#define WNDAP360_KEYS_POLL_INTERVAL 20 /* msecs */
#define WNDAP360_KEYS_DEBOUNCE_INTERVAL (3 * WNDAP360_KEYS_POLL_INTERVAL)
#define WNDAP360_WMAC0_MAC_OFFSET 0x120c
#define WNDAP360_WMAC1_MAC_OFFSET 0x520c
#define WNDAP360_CALDATA0_OFFSET 0x1000
#define WNDAP360_CALDATA1_OFFSET 0x5000
/*
* WNDAP360 this still uses leds definitions from AP96
*
*/
static struct gpio_led wndap360_leds_gpio[] __initdata = {
{
.name = "wndap360:green:power",
.gpio = WNDAP360_GPIO_LED_POWER_GREEN,
.active_low = 1,
}, {
.name = "wndap360:orange:power",
.gpio = WNDAP360_GPIO_LED_POWER_ORANGE,
.active_low = 1,
}
};
static struct gpio_keys_button wndap360_gpio_keys[] __initdata = {
{
.desc = "reset",
.type = EV_KEY,
.code = KEY_RESTART,
.debounce_interval = WNDAP360_KEYS_DEBOUNCE_INTERVAL,
.gpio = WNDAP360_GPIO_BTN_RESET,
.active_low = 1,
}
};
#define WNDAP360_LAN_PHYMASK 0x0f
static void __init wndap360_setup(void)
{
u8 *art = (u8 *) KSEG1ADDR(0x1fff0000);
ath79_register_mdio(0, ~(WNDAP360_LAN_PHYMASK));
/* Reusing wifi MAC with offset of 1 as eth0 MAC */
ath79_init_mac(ath79_eth0_data.mac_addr,
art + WNDAP360_WMAC0_MAC_OFFSET, 1);
ath79_eth0_pll_data.pll_1000 = 0x11110000;
ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
ath79_eth0_data.phy_mask = WNDAP360_LAN_PHYMASK;
ath79_eth0_data.speed = SPEED_1000;
ath79_eth0_data.duplex = DUPLEX_FULL;
ath79_register_eth(0);
ath79_register_m25p80(NULL);
ath79_register_leds_gpio(-1, ARRAY_SIZE(wndap360_leds_gpio),
wndap360_leds_gpio);
ath79_register_gpio_keys_polled(-1, WNDAP360_KEYS_POLL_INTERVAL,
ARRAY_SIZE(wndap360_gpio_keys),
wndap360_gpio_keys);
ap94_pci_init(art + WNDAP360_CALDATA0_OFFSET,
art + WNDAP360_WMAC0_MAC_OFFSET,
art + WNDAP360_CALDATA1_OFFSET,
art + WNDAP360_WMAC1_MAC_OFFSET);
}
MIPS_MACHINE(ATH79_MACH_WNDAP360, "WNDAP360", "Netgear WNDAP360", wndap360_setup);