diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2010-12-10 19:55:28 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2010-12-10 19:55:28 +0000 |
commit | c08927d5558268431c665b0a511b2c7029b00e59 (patch) | |
tree | d1a4489bdb47ad2d84248f9174bb7f91d4df78fe /target/linux/ar71xx/files/arch | |
parent | ee01f4c5e72ee52887e5989a256d649652ad98ba (diff) | |
download | upstream-c08927d5558268431c665b0a511b2c7029b00e59.tar.gz upstream-c08927d5558268431c665b0a511b2c7029b00e59.tar.bz2 upstream-c08927d5558268431c665b0a511b2c7029b00e59.zip |
ar71xx: add missing files for the JA76PF board
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24444 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar71xx/files/arch')
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/mach-ja76pf.c | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ja76pf.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ja76pf.c new file mode 100644 index 0000000000..d39de3c4d0 --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-ja76pf.c @@ -0,0 +1,96 @@ +/* + * jjPlus JA76PF board support + */ + +#include <asm/mach-ar71xx/ar71xx.h> +#include <linux/platform_device.h> +#include <linux/i2c.h> +#include <linux/i2c-gpio.h> + +#include "machtype.h" +#include "devices.h" +#include "dev-m25p80.h" +#include "dev-gpio-buttons.h" +#include "dev-pb42-pci.h" +#include "dev-usb.h" +#include "dev-leds-gpio.h" + +#define JA76PF_BUTTONS_POLL_INTERVAL 20 + +#define JA76PF_GPIO_I2C_SCL 0 +#define JA76PF_GPIO_I2C_SDA 1 +#define JA76PF_GPIO_LED_1 5 +#define JA76PF_GPIO_LED_2 4 +#define JA76PF_GPIO_BTN_RESET 11 + +static struct gpio_led ja76pf_leds_gpio[] __initdata = { + { + .name = "ja76pf:green:led1", + .gpio = JA76PF_GPIO_LED_1, + .active_low = 1, + }, { + .name = "ja76pf:green:led2", + .gpio = JA76PF_GPIO_LED_2, + .active_low = 1, + } +}; + +static struct gpio_button ja76pf_gpio_buttons[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .threshold = 3, + .gpio = JA76PF_GPIO_BTN_RESET, + .active_low = 1, + } +}; + +static struct i2c_gpio_platform_data ja76pf_i2c_gpio_data = { + .sda_pin = JA76PF_GPIO_I2C_SDA, + .scl_pin = JA76PF_GPIO_I2C_SCL, +}; + +static struct platform_device ja76pf_i2c_gpio_device = { + .name = "i2c-gpio", + .id = 0, + .dev = { + .platform_data = &ja76pf_i2c_gpio_data, + } +}; + +#define JA76PF_WAN_PHYMASK (1 << 4) +#define JA76PF_LAN_PHYMASK ((1 << 0) | (1 << 1) | (1 << 2) | (1 < 3)) +#define JA76PF_MDIO_PHYMASK (JA76PF_LAN_PHYMASK | JA76PF_WAN_PHYMASK) + +static void __init ja76pf_init(void) +{ + ar71xx_add_device_m25p80(NULL); + + ar71xx_add_device_mdio(~JA76PF_MDIO_PHYMASK); + + ar71xx_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; + ar71xx_eth0_data.phy_mask = JA76PF_LAN_PHYMASK; + + ar71xx_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; + ar71xx_eth1_data.phy_mask = JA76PF_WAN_PHYMASK; + ar71xx_eth1_data.speed = SPEED_1000; + ar71xx_eth1_data.duplex = DUPLEX_FULL; + + ar71xx_add_device_eth(0); + ar71xx_add_device_eth(1); + + platform_device_register(&ja76pf_i2c_gpio_device); + + ar71xx_add_device_leds_gpio(-1, ARRAY_SIZE(ja76pf_leds_gpio), + ja76pf_leds_gpio); + + ar71xx_add_device_gpio_buttons(-1, JA76PF_BUTTONS_POLL_INTERVAL, + ARRAY_SIZE(ja76pf_gpio_buttons), + ja76pf_gpio_buttons); + + ar71xx_add_device_usb(); + pb42_pci_init(); +} + +MIPS_MACHINE(AR71XX_MACH_JA76PF, "JA76PF", "jjPlus JA76PF", ja76pf_init); |