From 60361511876af51d571d292f6afd59535693db9f Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Fri, 16 Mar 2012 18:00:34 +0000 Subject: [PATCH] ar71xx: add support for the jjPlus JA76PF2 board SVN-Revision: 30957 --- target/linux/ar71xx/base-files/etc/diag.sh | 3 +- .../base-files/etc/uci-defaults/network | 3 +- target/linux/ar71xx/base-files/lib/ar71xx.sh | 3 + .../ar71xx/base-files/lib/upgrade/platform.sh | 8 +- .../files/arch/mips/ath79/mach-ja76pf.c | 76 +++++++++++++++++++ .../612-MIPS-ath79-JA76PF2-support.patch | 10 +++ .../612-MIPS-ath79-JA76PF2-support.patch | 10 +++ 7 files changed, 108 insertions(+), 5 deletions(-) create mode 100644 target/linux/ar71xx/patches-3.2/612-MIPS-ath79-JA76PF2-support.patch create mode 100644 target/linux/ar71xx/patches-3.3/612-MIPS-ath79-JA76PF2-support.patch diff --git a/target/linux/ar71xx/base-files/etc/diag.sh b/target/linux/ar71xx/base-files/etc/diag.sh index 9552b8aa3f..cbe15c68cc 100755 --- a/target/linux/ar71xx/base-files/etc/diag.sh +++ b/target/linux/ar71xx/base-files/etc/diag.sh @@ -67,7 +67,8 @@ get_status_led() { hornet-ub) status_led="alfa:blue:wps" ;; - ja76pf) + ja76pf | \ + ja76pf2) status_led="jjplus:green:led1" ;; ls-sr71) diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/network b/target/linux/ar71xx/base-files/etc/uci-defaults/network index 4dfb43c673..ce5bc5a64e 100755 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/network @@ -15,7 +15,8 @@ ucidef_set_interface_loopback board=$(ar71xx_board_name) case "$board" in -all0258n) +all0258n |\ +ja76pf2) ucidef_set_interface_lan "eth0 eth1" ;; diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index b9d797cac1..b51f3a7c63 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -181,6 +181,9 @@ ar71xx_board_detect() { *JA76PF) name="ja76pf" ;; + *JA76PF2) + name="ja76pf2" + ;; *"Bullet M") name="bullet-m" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index 91b04c5dea..a53c73dca4 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -15,7 +15,7 @@ platform_find_partitions() { while read dev size erasesize name; do name=${name#'"'}; name=${name%'"'} case "$name" in - vmlinux.bin.l7|vmlinux|kernel|linux|rootfs) + vmlinux.bin.l7|vmlinux|kernel|linux|rootfs|filesystem) if [ -z "$first" ]; then first="$name" else @@ -179,7 +179,8 @@ platform_check_image() { pb42 | \ pb44 | \ eap7660d | \ - ja76pf ) + ja76pf | \ + ja76pf2) [ "$magic" != "4349" ] && { echo "Invalid image. Use *-sysupgrade.bin files on this board" return 1 @@ -212,7 +213,8 @@ platform_do_upgrade() { eap7660d | \ pb42 | \ pb44 | \ - ja76pf) + ja76pf | \ + ja76pf2) platform_do_upgrade_combined "$ARGV" ;; all0258n ) diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-ja76pf.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-ja76pf.c index 1f170763a4..d1fe0f8a26 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-ja76pf.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-ja76pf.c @@ -112,3 +112,79 @@ static void __init ja76pf_init(void) } MIPS_MACHINE(ATH79_MACH_JA76PF, "JA76PF", "jjPlus JA76PF", ja76pf_init); + +#define JA76PF2_GPIO_LED_D2 5 +#define JA76PF2_GPIO_LED_D3 4 +#define JA76PF2_GPIO_LED_D4 3 +#define JA76PF2_GPIO_BTN_RESET 7 +#define JA76PF2_GPIO_BTN_WPS 8 + +static struct gpio_led ja76pf2_leds_gpio[] __initdata = { + { + .name = "jjplus:green:led1", + .gpio = JA76PF2_GPIO_LED_D2, + .active_low = 1, + }, { + .name = "jjplus:green:led2", + .gpio = JA76PF2_GPIO_LED_D3, + .active_low = 0, + }, { + .name = "jjplus:green:led3", + .gpio = JA76PF2_GPIO_LED_D4, + .active_low = 0, + } +}; + +static struct gpio_keys_button ja76pf2_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = JA76PF_KEYS_DEBOUNCE_INTERVAL, + .gpio = JA76PF2_GPIO_BTN_RESET, + .active_low = 1, + }, + { + .desc = "wps", + .type = EV_KEY, + .code = KEY_WPS_BUTTON, + .debounce_interval = JA76PF_KEYS_DEBOUNCE_INTERVAL, + .gpio = JA76PF2_GPIO_BTN_WPS, + .active_low = 1, + }, +}; + +#define JA76PF2_LAN_PHYMASK BIT(0) +#define JA76PF2_WAN_PHYMASK BIT(4) +#define JA76PF2_MDIO_PHYMASK (JA76PF2_LAN_PHYMASK | JA76PF2_WAN_PHYMASK) + +static void __init ja76pf2_init(void) +{ + ath79_register_m25p80(&ja76pf_flash_data); + + ath79_register_mdio(0, ~JA76PF2_MDIO_PHYMASK); + + /* MAC0 is connected to the CPU port of the AR8316 switch */ + ath79_init_mac(ath79_eth0_data.mac_addr, ath79_mac_base, 0); + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; + ath79_eth0_data.phy_mask = BIT(0); + + /* MAC1 is connected to the PHY4 of the AR8316 switch */ + ath79_init_mac(ath79_eth1_data.mac_addr, ath79_mac_base, 1); + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; + ath79_eth1_data.phy_mask = BIT(4); + + ath79_register_eth(0); + ath79_register_eth(1); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(ja76pf2_leds_gpio), + ja76pf2_leds_gpio); + + ath79_register_gpio_keys_polled(-1, JA76PF_KEYS_POLL_INTERVAL, + ARRAY_SIZE(ja76pf2_gpio_keys), + ja76pf2_gpio_keys); + + ath79_register_pci(); +} + +MIPS_MACHINE(ATH79_MACH_JA76PF2, "JA76PF2", "jjPlus JA76PF2", ja76pf2_init); diff --git a/target/linux/ar71xx/patches-3.2/612-MIPS-ath79-JA76PF2-support.patch b/target/linux/ar71xx/patches-3.2/612-MIPS-ath79-JA76PF2-support.patch new file mode 100644 index 0000000000..fc69e42b7a --- /dev/null +++ b/target/linux/ar71xx/patches-3.2/612-MIPS-ath79-JA76PF2-support.patch @@ -0,0 +1,10 @@ +--- a/arch/mips/ath79/machtypes.h ++++ b/arch/mips/ath79/machtypes.h +@@ -34,6 +34,7 @@ enum ath79_mach_type { + ATH79_MACH_DIR_825_B1, /* D-Link DIR-825 rev. B1 */ + ATH79_MACH_EAP7660D, /* Senao EAP7660D */ + ATH79_MACH_JA76PF, /* jjPlus JA76PF */ ++ ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */ + ATH79_MACH_JWAP003, /* jjPlus JWAP003 */ + ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */ + ATH79_MACH_MZK_W04NU, /* Planex MZK-W04NU */ diff --git a/target/linux/ar71xx/patches-3.3/612-MIPS-ath79-JA76PF2-support.patch b/target/linux/ar71xx/patches-3.3/612-MIPS-ath79-JA76PF2-support.patch new file mode 100644 index 0000000000..fc69e42b7a --- /dev/null +++ b/target/linux/ar71xx/patches-3.3/612-MIPS-ath79-JA76PF2-support.patch @@ -0,0 +1,10 @@ +--- a/arch/mips/ath79/machtypes.h ++++ b/arch/mips/ath79/machtypes.h +@@ -34,6 +34,7 @@ enum ath79_mach_type { + ATH79_MACH_DIR_825_B1, /* D-Link DIR-825 rev. B1 */ + ATH79_MACH_EAP7660D, /* Senao EAP7660D */ + ATH79_MACH_JA76PF, /* jjPlus JA76PF */ ++ ATH79_MACH_JA76PF2, /* jjPlus JA76PF2 */ + ATH79_MACH_JWAP003, /* jjPlus JWAP003 */ + ATH79_MACH_HORNET_UB, /* ALFA Networks Hornet-UB */ + ATH79_MACH_MZK_W04NU, /* Planex MZK-W04NU */