you are right, sorry, this is my first patch. Here are again, and to be shure, I paste here: http://pastebin.com/FA7wa7Py
>From 22178392df8d1cb9c959dfbc1c20f28b24551250 Mon Sep 17 00:00:00 2001 From: Gustavo <[email protected]> Date: Sat, 3 Oct 2015 08:31:13 -0300 Subject: [PATCH] Add Comfast compatibility --- .../ar71xx/base-files/etc/uci-defaults/01_leds | 31 ++ .../ar71xx/base-files/etc/uci-defaults/02_network | 49 +++ target/linux/ar71xx/base-files/lib/ar71xx.sh | 12 + .../ar71xx/base-files/lib/upgrade/platform.sh | 8 + target/linux/ar71xx/config-3.18 | 5 + .../ar71xx/files/arch/mips/ath79/mach-comfast.c | 485 +++++++++++++++++++++ target/linux/ar71xx/generic/profiles/comfast.mk | 49 +++ target/linux/ar71xx/image/Makefile | 102 +++++ .../610-MIPS-ath79-openwrt-machines.patch | 32 +- .../patches-3.18/614-MIPS-ath79-wdt-timeout.patch | 54 +++ 10 files changed, 821 insertions(+), 6 deletions(-) create mode 100644 target/linux/ar71xx/files/arch/mips/ath79/mach-comfast.c create mode 100644 target/linux/ar71xx/generic/profiles/comfast.mk create mode 100644 target/linux/ar71xx/patches-3.18/614-MIPS-ath79-wdt-timeout.patch diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds index d628f1a..969b97a 100644 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/01_leds @@ -50,6 +50,37 @@ bsb) ucidef_set_led_default "sys" "SYS" "bsb:red:sys" "1" ;; +ap9341fe) + ucidef_set_led_default "lan" "LAN" "comfast:green" "1" + ucidef_set_led_netdev "wan" "WAN" "comfast:red" "eth1" + ucidef_set_led_netdev "lan" "LAN" "comfast:green" "eth0" + ucidef_set_led_wlan "wlan" "WLAN" "comfast:blue" "phy0tpt" + ;; + +cf-e316nv2) + ucidef_set_led_netdev "wan" "WAN" "comfast:white:wan" "eth1" + ucidef_set_led_netdev "lan" "LAN" "comfast:white:lan" "eth0" + ucidef_set_led_wlan "wlan" "WLAN" "comfast:white:wifi" "phy0tpt" + ;; + +cf-e325n) + ucidef_set_led_netdev "wan" "WAN" "comfast:red" "eth1" + ucidef_set_led_netdev "lan" "LAN" "comfast:green" "eth0" + ucidef_set_led_wlan "wlan" "WLAN" "comfast:blue" "phy0tpt" + ;; + +cf-wr600n) + ucidef_set_led_netdev "wan1" "WAN1" "cf_wr600n:green:wan1" "eth0" + ucidef_set_led_switch "lan1" "LAN1" "cf_wr600n:green:lan1" "switch0" "0x04" + ucidef_set_led_switch "lan2" "LAN2" "cf_wr600n:green:lan2" "switch0" "0x08" + ucidef_set_led_switch "lan3" "LAN3" "cf_wr600n:green:lan3" "switch0" "0x10" +# ucidef_set_led_switch "lan4" "LAN4" "cf_wr600n:green:lan4" "switch0" "0x02" +# ucidef_set_led_default "lan" "LAN" "comfast:green" "1" + ucidef_set_led_netdev "wan" "WAN" "comfast:red" "eth0" + ucidef_set_led_netdev "lan" "LAN" "comfast:green" "eth1" + ucidef_set_led_wlan "wlan" "WLAN" "comfast:blue" "phy0tpt" + ;; + bullet-m | \ nanostation-m | \ rocket-m | \ diff --git a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network index 7e26886..2fb753e 100644 --- a/target/linux/ar71xx/base-files/etc/uci-defaults/02_network +++ b/target/linux/ar71xx/base-files/etc/uci-defaults/02_network @@ -55,6 +55,55 @@ wzr-450hp2) ucidef_add_switch_vlan "switch0" "2" "5 6" ;; +ap9341fe) + ucidef_set_interfaces_lan_wan "eth0" "eth1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4" + lan_mac=$(cat /sys/class/net/eth0/address) + wlan_mac=$(macaddr_add "$lan_mac" 1) + wan_mac=$(macaddr_add "$lan_mac" 2) + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac + [ -n "$wlan_mac" ] && ucidef_set_wireless_macaddr radio0 $wlan_mac + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac + ;; + +cf-e316nv2) + ucidef_set_interfaces_lan_wan "eth0" "eth1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4" + lan_mac=$(cat /sys/class/net/eth0/address) + wlan_mac=$(macaddr_add "$lan_mac" 1) + wan_mac=$(macaddr_add "$lan_mac" 2) + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac + [ -n "$wlan_mac" ] && ucidef_set_wireless_macaddr radio0 $wlan_mac + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac + ;; + +cf-e325n) + ucidef_set_interfaces_lan_wan "eth0" "eth1" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4" + lan_mac=$(cat /sys/class/net/eth0/address) + wlan_mac=$(macaddr_add "$lan_mac" 1) + wan_mac=$(macaddr_add "$lan_mac" 2) + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac + [ -n "$wlan_mac" ] && ucidef_set_wireless_macaddr radio0 $wlan_mac + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac + ;; + +cf-wr600n) + ucidef_set_interfaces_lan_wan "eth1" "eth0" + ucidef_add_switch "switch0" "1" "1" + ucidef_add_switch_vlan "switch0" "1" "0 1 2 3 4" + lan_mac=$(cat /sys/class/net/eth1/address) + wlan_mac=$(macaddr_add "$lan_mac" 1) + wan_mac=$(macaddr_add "$lan_mac" 2) + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr lan $lan_mac + [ -n "$wlan_mac" ] && ucidef_set_wireless_macaddr radio0 $wlan_mac + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr wan $wan_mac + ;; + + archer-c5 |\ archer-c7 |\ tl-wdr4900-v2) diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index cacf362..32fdbfc 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -380,6 +380,18 @@ ar71xx_board_detect() { *AW-NR580) name="aw-nr580" ;; + *AP9341FE) + name="ap9341fe" + ;; + *CF-E316NV2) + name="cf-e316nv2" + ;; + *CF-E325N) + name="cf-e325n" + ;; + *CF-WR600N) + name="cf-wr600n" + ;; *CAP4200AG) name="cap4200ag" ;; diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh index e5376ef..22cae6b 100755 --- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh @@ -387,6 +387,10 @@ platform_check_image() { return 1 ;; + ap9341fe | \ + cf-e316nv2 | \ + cf-e325n | \ + cf-wr600n | \ unifi-outdoor-plus | \ uap-pro) [ "$magic_long" != "19852003" ] && { @@ -518,6 +522,10 @@ platform_do_upgrade() { om5p-an) platform_do_upgrade_openmesh "$ARGV" ;; + ap9341fe | \ + cf-e316nv2 | \ + cf-e325n | \ + cf-wr600n | \ unifi-outdoor-plus | \ uap-pro) MTD_CONFIG_ARGS="-s 0x180000" diff --git a/target/linux/ar71xx/config-3.18 b/target/linux/ar71xx/config-3.18 index d661aa7..ea3ff09 100644 --- a/target/linux/ar71xx/config-3.18 +++ b/target/linux/ar71xx/config-3.18 @@ -46,6 +46,11 @@ CONFIG_ATH79_MACH_BHU_BXU2000N2_A=y CONFIG_ATH79_MACH_BSB=y CONFIG_ATH79_MACH_CAP4200AG=y CONFIG_ATH79_MACH_CARAMBOLA2=y +CONFIG_ATH79_MACH_COMFAST=y +CONFIG_ATH79_MACH_COMFAST_AP9341FE=y +CONFIG_ATH79_MACH_COMFAST_CF_E316NV2=y +CONFIG_ATH79_MACH_COMFAST_CF_E325N=y +CONFIG_ATH79_MACH_COMFAST_CF_WR600N=y CONFIG_ATH79_MACH_CPE510=y CONFIG_ATH79_MACH_DB120=y CONFIG_ATH79_MACH_DGL_5500_A1=y diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-comfast.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-comfast.c new file mode 100644 index 0000000..d5d8b8b --- /dev/null +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-comfast.c @@ -0,0 +1,485 @@ +#include <linux/init.h> +#include <linux/pci.h> +#include <linux/platform_device.h> +#include <linux/ath9k_platform.h> +#include <linux/etherdevice.h> +#include <linux/ar8216_platform.h> + +#include <asm/mach-ath79/irq.h> +#include <asm/mach-ath79/ar71xx_regs.h> + +#include "common.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 "dev-usb.h" +#include "dev-wmac.h" +#include "dev-nfc.h" +#include "gpio.h" +#include "machtypes.h" + +#define COMFAST_KEYS_POLL_INTERVAL 20 +#define COMFAST_KEYS_DEBOUNCE_INTERVAL (3 * COMFAST_KEYS_POLL_INTERVAL) + +#define AP9341FE_GPIO_XWDT_TRIGGER 16 + +#define XWDT_AUTOFEED_DURATION (HZ / 3) +static int gpio_external_wdt = -1; +static int wdt_timeout = -1, wdt_autofeed_count = 0; + +static void watchdog_fire(unsigned long); +static struct timer_list watchdog_ticktock = TIMER_INITIALIZER(watchdog_fire, 0, 0); + +static void enable_external_wdt(int gpio) +{ + gpio_external_wdt = gpio; + wdt_timeout = -1; + mod_timer(&watchdog_ticktock, jiffies + XWDT_AUTOFEED_DURATION); +} + +static void external_wdt_toggle(void) +{ + static u32 data; + data ++; + gpio_set_value(gpio_external_wdt, data & 0x01); +} + +void ath79_external_wdt_disable(void) +{ + if(gpio_external_wdt >= 0) { + wdt_timeout = -1; + mod_timer(&watchdog_ticktock, jiffies + XWDT_AUTOFEED_DURATION); + } +} +EXPORT_SYMBOL(ath79_external_wdt_disable); + +void ath79_external_wdt_trigger(void) +{ + if(gpio_external_wdt >= 0) { +// printk(KERN_ERR "XWDT TRIGGER\n"); + wdt_autofeed_count = 0; + mod_timer(&watchdog_ticktock, jiffies + XWDT_AUTOFEED_DURATION); + } +} +EXPORT_SYMBOL(ath79_external_wdt_trigger); + +void ath79_external_wdt_set_timeout(int timeout) +{ + if(gpio_external_wdt >= 0) { + wdt_timeout = timeout; + external_wdt_toggle(); +// printk(KERN_ERR "XWDT SET TIMEOUT: %d\n", timeout); + } +} +EXPORT_SYMBOL(ath79_external_wdt_set_timeout); + +static void watchdog_fire(unsigned long data) +{ + if(wdt_timeout > 0) + wdt_autofeed_count++; + + if((wdt_timeout < 0) || (wdt_autofeed_count < wdt_timeout)) { +// printk(KERN_ERR "XWDT AUTOFEED: %d\n", wdt_autofeed_count); + external_wdt_toggle(); + mod_timer(&watchdog_ticktock, jiffies + XWDT_AUTOFEED_DURATION); + } +} + +static struct gpio_keys_button comfast_ap934x_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = COMFAST_KEYS_DEBOUNCE_INTERVAL, + .gpio = 20, + .active_low = 1, + } +}; + +static struct gpio_led comfast_ap934x_gpio_leds[] __initdata = { + { + .name = "comfast:red", + .gpio = 2, + }, { + .name = "comfast:green", + .gpio = 3, + }, { + .name = "comfast:blue", + .gpio = 0, + } +}; + +static void ext_lna_control_gpio_setup(int gpio_rx0, int gpio_rx1) +{ + ath79_gpio_output_select(gpio_rx0, AR934X_GPIO_OUT_EXT_LNA0); + ath79_gpio_output_select(gpio_rx1, AR934X_GPIO_OUT_EXT_LNA1); +} + + +static void __init comfast_ap9341fe_setup(void) +{ + u8 *mac = (u8 *) KSEG1ADDR(0x1f010000); + u8 *art = (u8 *) KSEG1ADDR(0x1f011000); + + /* Disable JTAG, enabling GPIOs 0-3 */ + /* Configure OBS4 line, for GPIO 4*/ + ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE, AR934X_GPIO_FUNC_CLK_OBS4_EN); + + ath79_gpio_output_select(AP9341FE_GPIO_XWDT_TRIGGER, 0); + enable_external_wdt(AP9341FE_GPIO_XWDT_TRIGGER); + + ath79_register_m25p80(NULL); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(comfast_ap934x_gpio_leds), + comfast_ap934x_gpio_leds); + ath79_register_gpio_keys_polled(-1, COMFAST_KEYS_POLL_INTERVAL, + ARRAY_SIZE(comfast_ap934x_gpio_keys), + comfast_ap934x_gpio_keys); + + ext_lna_control_gpio_setup(13, 14); + + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_PHY_SWAP); + + ath79_register_mdio(1, 0x0); + + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2); + + /* GMAC0 is connected to the PHY0 of the internal switch */ + ath79_switch_data.phy4_mii_en = 1; + ath79_switch_data.phy_poll_mask = BIT(0); + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ath79_eth0_data.phy_mask = BIT(0); + ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev; + ath79_register_eth(0); + + /* GMAC1 is connected to the internal switch */ + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; + + ath79_register_eth(1); + + ath79_register_usb(); + + ath79_register_wmac(art, NULL); +} +MIPS_MACHINE(ATH79_MACH_COMFAST_AP9341FE, "COMFAST-AP9341FE", "COMFAST AP9341FE", comfast_ap9341fe_setup); + +#define CF_WR600N_GPIO_LED_LAN1 22 +#define CF_WR600N_GPIO_LED_LAN2 11 +#define CF_WR600N_GPIO_LED_LAN3 19 +#define CF_WR600N_GPIO_LED_WAN1 18 + +#define CF_WR600N_GPIO_XWDT_TRIGGER 20 + +static struct gpio_keys_button comfast_cf_wr600n_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = COMFAST_KEYS_DEBOUNCE_INTERVAL, + .gpio = 16, + .active_low = 1, + } +}; + +static struct gpio_led comfast_cf_wr600n_gpio_leds[] __initdata = { + { + .name = "comfast:red", + .gpio = 2, + }, { + .name = "comfast:green", + .gpio = 3, + }, { + .name = "comfast:blue", + .gpio = 0, + }, { + .name = "cf_wr600n:green:lan1", + .gpio = CF_WR600N_GPIO_LED_LAN1, + .active_low = 1, + }, { + .name = "cf_wr600n:green:lan2", + .gpio = CF_WR600N_GPIO_LED_LAN2, + .active_low = 1, + }, { + .name = "cf_wr600n:green:lan3", + .gpio = CF_WR600N_GPIO_LED_LAN3, + .active_low = 1, + }, { + .name = "cf_wr600n:green:wan1", + .gpio = CF_WR600N_GPIO_LED_WAN1, + .active_low = 1, + }, +}; + + +static void __init comfast_cf_wr600n_setup(void) +{ + u8 *mac = (u8 *) KSEG1ADDR(0x1f010000); + u8 *art = (u8 *) KSEG1ADDR(0x1f011000); + + /* Disable JTAG, enabling GPIOs 0-3 */ + /* Configure OBS4 line, for GPIO 4*/ + ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE, AR934X_GPIO_FUNC_CLK_OBS4_EN); + +// ath79_gpio_output_select(CF_WR600N_GPIO_XWDT_TRIGGER, 0); +// enable_external_wdt(CF_WR600N_GPIO_XWDT_TRIGGER); + + ath79_register_m25p80(NULL); + + ath79_gpio_output_select(CF_WR600N_GPIO_LED_LAN2, 0); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(comfast_cf_wr600n_gpio_leds), + comfast_cf_wr600n_gpio_leds); + ath79_register_gpio_keys_polled(-1, COMFAST_KEYS_POLL_INTERVAL, + ARRAY_SIZE(comfast_cf_wr600n_gpio_keys), + comfast_cf_wr600n_gpio_keys); + + ext_lna_control_gpio_setup(13, 14); + + ath79_register_mdio(1, 0x0); + + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2); + + /* GMAC0 is connected to the PHY0 of the internal switch */ + ath79_switch_data.phy4_mii_en = 1; + ath79_switch_data.phy_poll_mask = BIT(4); + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ath79_eth0_data.phy_mask = BIT(4); + ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev; + ath79_register_eth(0); + + /* GMAC1 is connected to the internal switch */ + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; + + ath79_register_eth(1); + + ath79_register_usb(); + + ath79_register_wmac(art, NULL); +} + +MIPS_MACHINE(ATH79_MACH_COMFAST_CF_WR600N, "COMFAST-CF-WR600N", "COMFAST CF-WR600N", comfast_cf_wr600n_setup); + +#define CF_E316NV2_GPIO_XWDT_TRIGGER 16 + +static struct gpio_keys_button comfast_cf_e316nv2_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = COMFAST_KEYS_DEBOUNCE_INTERVAL, + .gpio = 20, + .active_low = 1, + } +}; + +static struct gpio_led comfast_cf_e316nv2_gpio_leds[] __initdata = { + { + .name = "comfast:white:wifi", + .gpio = 12, + .active_low = 1, + }, { + .name = "comfast:white:lan", + .gpio = 19, + .active_low = 1, + }, { + .name = "comfast:white:wan", + .gpio = 17, + .active_low = 1, + }, { + .name = "comfast:green", + .gpio = 3, + } +}; + +static void __init comfast_cf_e316nv2_setup(void) +{ + u8 *mac = (u8 *) KSEG1ADDR(0x1f010000); + u8 *art = (u8 *) KSEG1ADDR(0x1f011000); + + /* Disable JTAG, enabling GPIOs 0-3 */ + /* Configure OBS4 line, for GPIO 4*/ + ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE, AR934X_GPIO_FUNC_CLK_OBS4_EN); + + ath79_gpio_output_select(CF_E316NV2_GPIO_XWDT_TRIGGER, 0); + enable_external_wdt(CF_E316NV2_GPIO_XWDT_TRIGGER); + + ath79_register_m25p80(NULL); + + ath79_gpio_output_select(12, 0); + ath79_gpio_output_select(17, 0); + ath79_gpio_output_select(19, 0); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(comfast_cf_e316nv2_gpio_leds), + comfast_cf_e316nv2_gpio_leds); + ath79_register_gpio_keys_polled(-1, COMFAST_KEYS_POLL_INTERVAL, + ARRAY_SIZE(comfast_cf_e316nv2_gpio_keys), + comfast_cf_e316nv2_gpio_keys); + + ext_lna_control_gpio_setup(13, 14); + + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_PHY_SWAP); + + ath79_register_mdio(1, 0x0); + + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2); + + /* GMAC0 is connected to the PHY0 of the internal switch */ + ath79_switch_data.phy4_mii_en = 1; + ath79_switch_data.phy_poll_mask = BIT(0); + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ath79_eth0_data.phy_mask = BIT(0); + ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev; + ath79_register_eth(0); + + /* GMAC1 is connected to the internal switch */ + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; + + ath79_register_eth(1); + + ath79_register_usb(); + + ath79_register_wmac(art, NULL); +} +MIPS_MACHINE(ATH79_MACH_COMFAST_CF_E316NV2, "COMFAST-CF-E316NV2", "COMFAST CF-E316NV2", comfast_cf_e316nv2_setup); + +#define CF_E325N_GPIO_XWDT_TRIGGER 16 + +static struct gpio_keys_button comfast_cf_e325n_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = COMFAST_KEYS_DEBOUNCE_INTERVAL, + .gpio = 20, + .active_low = 1, + } +}; + +static struct gpio_led comfast_cf_e325n_gpio_leds[] __initdata = { + { + .name = "comfast:red", + .gpio = 2, + }, { + .name = "comfast:green", + .gpio = 3, + }, { + .name = "comfast:blue", + .gpio = 0, + } +}; + +static void __init comfast_cf_e325n_setup(void) +{ + u8 *mac = (u8 *) KSEG1ADDR(0x1f010000); + u8 *art = (u8 *) KSEG1ADDR(0x1f011000); + + /* Disable JTAG, enabling GPIOs 0-3 */ + /* Configure OBS4 line, for GPIO 4*/ + ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE, AR934X_GPIO_FUNC_CLK_OBS4_EN); + + ath79_gpio_output_select(CF_E325N_GPIO_XWDT_TRIGGER, 0); + enable_external_wdt(CF_E325N_GPIO_XWDT_TRIGGER); + + ath79_register_m25p80(NULL); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(comfast_cf_e325n_gpio_leds), + comfast_cf_e325n_gpio_leds); + ath79_register_gpio_keys_polled(-1, COMFAST_KEYS_POLL_INTERVAL, + ARRAY_SIZE(comfast_cf_e325n_gpio_keys), + comfast_cf_e325n_gpio_keys); + + ext_lna_control_gpio_setup(13, 14); + + ath79_setup_ar934x_eth_cfg(AR934X_ETH_CFG_SW_PHY_SWAP); + + ath79_register_mdio(1, 0x0); + + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 2); + + /* GMAC0 is connected to the PHY0 of the internal switch */ + ath79_switch_data.phy4_mii_en = 1; + ath79_switch_data.phy_poll_mask = BIT(0); + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ath79_eth0_data.phy_mask = BIT(0); + ath79_eth0_data.mii_bus_dev = &ath79_mdio1_device.dev; + ath79_register_eth(0); + + /* GMAC1 is connected to the internal switch */ + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; + + ath79_register_eth(1); + + ath79_register_usb(); + + ath79_register_wmac(art, NULL); +} +MIPS_MACHINE(ATH79_MACH_COMFAST_CF_E325N, "COMFAST-CF-E325N", "COMFAST CF-E325N", comfast_cf_e325n_setup); +#if 0 +#define DBDC9344GE_PHYMASK BIT(0) +#define DBDC9344GE_WMAC_CALDATA_OFFSET 0x1000 +#define DBDC9344GE_PCI_CALDATA_OFFSET 0x5000 + +#define DBDC9344GE_GPIO_EXTPHY_RESET 11 + +static struct gpio_keys_button comfast_dbdc9344ge_gpio_keys[] __initdata = { + { + .desc = "reset", + .type = EV_KEY, + .code = KEY_RESTART, + .debounce_interval = COMFAST_KEYS_DEBOUNCE_INTERVAL, + .gpio = 22, + .active_low = 1, + } +}; + +static struct gpio_led comfast_dbdc9344ge_gpio_leds[] __initdata = { + { + .name = "comfast:red", + .gpio = 2, + }, { + .name = "comfast:green", + .gpio = 3, + }, { + .name = "comfast:blue", + .gpio = 0, + } +}; + +static void __init comfast_dbdc9344ge_setup(void) +{ + u8 *mac = (u8 *) KSEG1ADDR(0x1f010000); + + ath79_gpio_function_setup(AR934X_GPIO_FUNC_JTAG_DISABLE, AR934X_GPIO_FUNC_CLK_OBS4_EN); + + ath79_register_m25p80(NULL); + + ath79_register_leds_gpio(-1, ARRAY_SIZE(comfast_dbdc9344ge_gpio_leds), + comfast_dbdc9344ge_gpio_leds); + + ath79_register_gpio_keys_polled(-1, COMFAST_KEYS_POLL_INTERVAL, + ARRAY_SIZE(comfast_dbdc9344ge_gpio_keys), + comfast_dbdc9344ge_gpio_keys); + + ext_lna_control_gpio_setup(18, 19); + + ath79_register_mdio(0, 0x00); + + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); + + /* GMAC0 is connected to GE-PHY by RGMII */ + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII; + ath79_eth0_data.phy_mask = DBDC9344GE_PHYMASK; + ath79_register_eth(0); + + ath79_register_wmac(mac + DBDC9344GE_WMAC_CALDATA_OFFSET, NULL); + ap91_pci_init(mac + DBDC9344GE_PCI_CALDATA_OFFSET, NULL); +} + +MIPS_MACHINE(ATH79_MACH_COMFAST_DBDC9344GE, "COMFAST-DBDC9344GE", "COMFAST DBDC9344GE", comfast_dbdc9344ge_setup); +#endif diff --git a/target/linux/ar71xx/generic/profiles/comfast.mk b/target/linux/ar71xx/generic/profiles/comfast.mk new file mode 100644 index 0000000..09612af --- /dev/null +++ b/target/linux/ar71xx/generic/profiles/comfast.mk @@ -0,0 +1,49 @@ +# +# Copyright (C) 2009 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +define Profile/COMFASTAP9341FE + NAME:=COMFAST AP9341FE + PACKAGES:= +endef + +define Profile/COMFASTAP9341FE/Description + Package set optimized for the COMFAST AP9341FE. +endef + +$(eval $(call Profile,COMFASTAP9341FE)) + +define Profile/COMFASTCFWR600N + NAME:=COMFAST CF-WR600N + PACKAGES:= +endef + +define Profile/COMFASTCFWR600N/Description + Package set optimized for the COMFAST CF-WR600N. +endef + +$(eval $(call Profile,COMFASTCFWR600N)) + +define Profile/COMFASTCFE316NV2 + NAME:=COMFAST CF-E316NV2 + PACKAGES:= +endef + +define Profile/COMFASTCFE316NV2/Description + Package set optimized for the COMFAST CF-E316NV2. +endef + +$(eval $(call Profile,COMFASTCFE316NV2)) + +define Profile/COMFASTCFE325N + NAME:=COMFAST CF-E325N + PACKAGES:= +endef + +define Profile/COMFASTCFE325N/Description + Package set optimized for the COMFAST CF-E325N. +endef + +$(eval $(call Profile,COMFASTCFE325N)) \ No newline at end of file diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index bb5de17..118adb3 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -971,6 +971,10 @@ pb92_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,2752k(rootfs),89 planex_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7744k(firmware),128k(art)ro ubntxm_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7552k(firmware),256k(cfg)ro,64k(EEPROM)ro uap_pro_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,1536k(kernel),14208k(rootfs),256k(cfg)ro,64k(EEPROM)ro,15744k@0x50000(firmware) +comfast_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,1536k(kernel),14656k(rootfs),64k(nvram)ro,16192k@0x20000(firmware) +ar9341_cf_wr600n_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,1536k(kernel),14656k(rootfs),64k(nvram)ro,16192k@0x20000(firmware) +ar9341_cf_e316nv2_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,1536k(kernel),14656k(rootfs),64k(nvram)ro,16192k@0x20000(firmware) +ar9341_cf_e325n_mtdlayout=mtdparts=spi0.0:64k(u-boot)ro,64k(art)ro,1536k(kernel),14656k(rootfs),64k(nvram)ro,16192k@0x20000(firmware) ubdev_mtdlayout=mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,7488k(firmware),64k(certs),256k(cfg)ro,64k(EEPROM)ro whrhpg300n_mtdlayout=mtdparts=spi0.0:248k(u-boot)ro,8k(u-boot-env)ro,3712k(firmware),64k(art)ro wlr8100_mtdlayout=mtdparts=spi0.0:192k(u-boot)ro,64k(u-boot-env)ro,1408k(kernel),14080k(rootfs),192k(unknown)ro,64k(art)ro,384k(unknown2)ro,15488k@0x40000(firmware) @@ -1320,6 +1324,99 @@ define Image/Build/UAPPRO -o $(call factoryname,$(1),$(2)) endef +Image/Build/COMFAST/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) $(comfast_mtdlayout)) +define Image/Build/COMFAST/buildkernel + $(call MkuImageLzma,$(2),$(3) $(comfast_mtdlayout)) + -rm -rf $(KDIR_TMP)/$(2) + mkdir -p $(KDIR_TMP)/$(2)/image + cp $(KDIR_TMP)/vmlinux-$(2).uImage $(KDIR_TMP)/$(2)/image/kernel0 + $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \ + --pad --big-endian --squash-uids -v -e 64KiB \ + -o $(KDIR_TMP)/$(2)-kernel.jffs2 \ + -d $(KDIR_TMP)/$(2)/image \ + 2>&1 1>/dev/null | awk '/^.+$$$$/' + -rm -rf $(KDIR_TMP)/$(2) + $(STAGING_DIR_HOST)/bin/padjffs2 $(KDIR_TMP)/$(2)-kernel.jffs2 -J 64 +endef + +define Image/Build/COMFAST + $(call CatFiles,$(KDIR_TMP)/$(2)-kernel.jffs2,1572864,$(KDIR)/root.$(1),14548992,$(call sysupname,$(1),$(2))) + -$(STAGING_DIR_HOST)/bin/mkfwimage2 -f 0x9f000000 \ + -v $(5).$(6).v6.0.0-OpenWrt-$(REVISION) \ + -p jffs2:0x50000:0xf60000:0:0:$(call sysupname,$(1),$(2)) \ + -o $(call factoryname,$(1),$(2)) +endef + +Image/Build/COMFAST_CF_WR600N/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) (ar9341_cf_wr600n_mtdlayout)) +define Image/Build/COMFAST_CF_WR600N/buildkernel + $(call MkuImageLzma,$(2),$(3) $(ar9341_cf_wr600n_mtdlayout)) + -rm -rf $(KDIR_TMP)/$(2) + mkdir -p $(KDIR_TMP)/$(2)/image + cp $(KDIR_TMP)/vmlinux-$(2).uImage $(KDIR_TMP)/$(2)/image/kernel0 + $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \ + --pad --big-endian --squash-uids -v -e 64KiB \ + -o $(KDIR_TMP)/$(2)-kernel.jffs2 \ + -d $(KDIR_TMP)/$(2)/image \ + 2>&1 1>/dev/null | awk '/^.+$$$$/' + -rm -rf $(KDIR_TMP)/$(2) + $(STAGING_DIR_HOST)/bin/padjffs2 $(KDIR_TMP)/$(2)-kernel.jffs2 -J 64 +endef + +define Image/Build/COMFAST_CF_WR600N + $(call CatFiles,$(KDIR_TMP)/$(2)-kernel.jffs2,1572864,$(KDIR)/root.$(1),14548992,$(call sysupname,$(1),$(2))) + -$(STAGING_DIR_HOST)/bin/mkfwimage2 -f 0x9f000000 \ + -v $(5).$(6).v6.0.0-OpenWrt-$(REVISION) \ + -p jffs2:0x50000:0xf60000:0:0:$(call sysupname,$(1),$(2)) \ + -o $(call factoryname,$(1),$(2)) +endef + +Image/Build/COMFAST_CF_E316NV2/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) $(ar9341_cf_e316nv2_mtdlayout)) +define Image/Build/COMFAST_CF_E316NV2/buildkernel + $(call MkuImageLzma,$(2),$(3) $(ar9341_cf_e316nv2_mtdlayout)) + -rm -rf $(KDIR_TMP)/$(2) + mkdir -p $(KDIR_TMP)/$(2)/image + cp $(KDIR_TMP)/vmlinux-$(2).uImage $(KDIR_TMP)/$(2)/image/kernel0 + $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \ + --pad --big-endian --squash-uids -v -e 64KiB \ + -o $(KDIR_TMP)/$(2)-kernel.jffs2 \ + -d $(KDIR_TMP)/$(2)/image \ + 2>&1 1>/dev/null | awk '/^.+$$$$/' + -rm -rf $(KDIR_TMP)/$(2) + $(STAGING_DIR_HOST)/bin/padjffs2 $(KDIR_TMP)/$(2)-kernel.jffs2 -J 64 +endef + +define Image/Build/COMFAST_CF_E316NV2 + $(call CatFiles,$(KDIR_TMP)/$(2)-kernel.jffs2,1572864,$(KDIR)/root.$(1),14548992,$(call sysupname,$(1),$(2))) + -$(STAGING_DIR_HOST)/bin/mkfwimage2 -f 0x9f000000 \ + -v $(5).$(6).v6.0.0-OpenWrt-$(REVISION) \ + -p jffs2:0x50000:0xf60000:0:0:$(call sysupname,$(1),$(2)) \ + -o $(call factoryname,$(1),$(2)) +endef + +Image/Build/COMFAST_CF_E325N/initramfs=$(call MkuImageLzma/initramfs,$(2),$(3) $(ar9341_cf_e325n_mtdlayout)) +define Image/Build/COMFAST_CF_E325N/buildkernel + $(call MkuImageLzma,$(2),$(3) $(ar9341_cf_e325n_mtdlayout)) + -rm -rf $(KDIR_TMP)/$(2) + mkdir -p $(KDIR_TMP)/$(2)/image + cp $(KDIR_TMP)/vmlinux-$(2).uImage $(KDIR_TMP)/$(2)/image/kernel0 + $(STAGING_DIR_HOST)/bin/mkfs.jffs2 \ + --pad --big-endian --squash-uids -v -e 64KiB \ + -o $(KDIR_TMP)/$(2)-kernel.jffs2 \ + -d $(KDIR_TMP)/$(2)/image \ + 2>&1 1>/dev/null | awk '/^.+$$$$/' + -rm -rf $(KDIR_TMP)/$(2) + $(STAGING_DIR_HOST)/bin/padjffs2 $(KDIR_TMP)/$(2)-kernel.jffs2 -J 64 +endef + +define Image/Build/COMFAST_CF_E325N + $(call CatFiles,$(KDIR_TMP)/$(2)-kernel.jffs2,1572864,$(KDIR)/root.$(1),14548992,$(call sysupname,$(1),$(2))) + -$(STAGING_DIR_HOST)/bin/mkfwimage2 -f 0x9f000000 \ + -v $(5).$(6).v6.0.0-OpenWrt-$(REVISION) \ + -p jffs2:0x50000:0xf60000:0:0:$(call sysupname,$(1),$(2)) \ + -o $(call factoryname,$(1),$(2)) +endef + + # $(4) = board (XS2, XS5, RS, XM) # $(5) = series (BZ, XM, XW) # $(6) = chip (ar7240, ar934x) @@ -1982,6 +2079,11 @@ $(eval $(call SingleProfile,TPLINK-SAFELOADER,64kraw,CPE510,cpe210-220-510-520,C $(eval $(call SingleProfile,UAPPRO,64k,UAPPRO,ubnt-uap-pro,UAP-PRO,ttyS0,115200,BZ,BZ,ar934x)) $(eval $(call SingleProfile,UAPPRO,64k,UBNTUNIFIOUTDOORPLUS,ubnt-unifi-outdoor-plus,UBNT-UOP,ttyS0,115200,BZ,BZ,ar7240)) +$(eval $(call SingleProfile,COMFAST,64k,COMFASTAP9341FE,comfast-ap9341fe,COMFAST-AP9341FE,ttyS0,115200,AP9341FE,AP9341FE,ar934x)) +$(eval $(call SingleProfile,COMFAST,64k,COMFASTCFWR600N,comfast-cf-wr600n,COMFAST-CF-WR600N,ttyS0,115200,CF-WR600N,CF-WR600N,ar934x)) +$(eval $(call SingleProfile,COMFAST,64k,COMFASTCFE316NV2,comfast-cf-e316nv2,COMFAST-CF-E316NV2,ttyS0,115200,CF-E316NV2,CF-E316NV2,ar934x)) +$(eval $(call SingleProfile,COMFAST,64k,COMFASTCFE325N,comfast-cf-e325n,COMFAST-CF-E325N,ttyS0,115200,CF-E325N,CF-E325N,ar934x)) + $(eval $(call SingleProfile,UBDEV,64kraw,UBDEV01,ubdev01,UBNT-UF,ttyS0,115200,XM,XM,ar7240)) $(eval $(call SingleProfile,UBNT,64k,UBNTRS,ubnt-rs,UBNT-RS,ttyS0,115200,RS,RSx,ar7100)) diff --git a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch index 941cb49..a3875cd 100644 --- a/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch +++ b/target/linux/ar71xx/patches-3.18/610-MIPS-ath79-openwrt-machines.patch @@ -1,6 +1,6 @@ --- a/arch/mips/ath79/machtypes.h +++ b/arch/mips/ath79/machtypes.h -@@ -16,22 +16,195 @@ +@@ -16,22 +16,199 @@ enum ath79_mach_type { ATH79_MACH_GENERIC = 0, @@ -25,6 +25,10 @@ + ATH79_MACH_BHU_BXU2000N2_A1, /* BHU BXU2000n-2 A1 */ + ATH79_MACH_CAP4200AG, /* Senao CAP4200AG */ + ATH79_MACH_CARAMBOLA2, /* 8devices Carambola2 */ ++ ATH79_MACH_COMFAST_AP9341FE, /* COMFAST AP9341FE */ ++ ATH79_MACH_COMFAST_CF_E316NV2, /* COMFAST CF-E316NV2 */ ++ ATH79_MACH_COMFAST_CF_E325N, /* COMFAST CF-E325N */ ++ ATH79_MACH_COMFAST_CF_WR600N, /* COMFAST CF-WR600N */ + ATH79_MACH_CPE510, /* TP-LINK CPE510 */ ATH79_MACH_DB120, /* Atheros DB120 reference board */ ATH79_MACH_PB44, /* Atheros PB44 reference board */ @@ -269,7 +273,7 @@ config ATH79_MACH_AP121 bool "Atheros AP121 reference board" select SOC_AR933X -@@ -11,62 +75,1030 @@ config ATH79_MACH_AP121 +@@ -11,62 +75,1045 @@ config ATH79_MACH_AP121 select ATH79_DEV_M25P80 select ATH79_DEV_USB select ATH79_DEV_WMAC @@ -336,6 +340,21 @@ + select ATH79_DEV_M25P80 + select ATH79_DEV_USB + ++config ATH79_MACH_COMFAST ++ bool "COMFAST reference board" ++ select SOC_AR934X ++ select ATH79_DEV_AP9X_PCI if PCI ++ select ATH79_DEV_ETH ++ select ATH79_DEV_GPIO_BUTTONS ++ select ATH79_DEV_LEDS_GPIO ++ select ATH79_DEV_M25P80 ++ select ATH79_DEV_NFC ++ select ATH79_DEV_USB ++ select ATH79_DEV_WMAC ++ help ++ Say 'Y' here if you want your kernel to support the ++ Comfast reference board. ++ +config ATH79_MACH_DB120 + bool "Atheros DB120 reference board" + select SOC_AR934X @@ -1328,7 +1347,7 @@ config ATH79_MACH_UBNT_XM bool "Ubiquiti Networks XM/UniFi boards" -@@ -83,6 +1115,97 @@ config ATH79_MACH_UBNT_XM +@@ -83,6 +1130,97 @@ config ATH79_MACH_UBNT_XM Say 'Y' here if you want your kernel to support the Ubiquiti Networks XM (rev 1.0) board. @@ -1426,7 +1445,7 @@ endmenu config SOC_AR71XX -@@ -124,7 +1247,10 @@ config ATH79_DEV_DSA +@@ -124,7 +1262,10 @@ config ATH79_DEV_DSA config ATH79_DEV_ETH def_bool n @@ -1438,7 +1457,7 @@ def_bool n config ATH79_DEV_GPIO_BUTTONS -@@ -154,6 +1280,11 @@ config ATH79_PCI_ATH9K_FIXUP +@@ -154,6 +1295,11 @@ config ATH79_PCI_ATH9K_FIXUP def_bool n config ATH79_ROUTERBOOT @@ -1452,7 +1471,7 @@ endif --- a/arch/mips/ath79/Makefile +++ b/arch/mips/ath79/Makefile -@@ -38,9 +38,124 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route +@@ -38,9 +38,125 @@ obj-$(CONFIG_ATH79_ROUTERBOOT) += route # # Machines # @@ -1471,6 +1490,7 @@ +obj-$(CONFIG_ATH79_MACH_AW_NR580) += mach-aw-nr580.o +obj-$(CONFIG_ATH79_MACH_BHU_BXU2000N2_A)+= mach-bhu-bxu2000n2-a.o +obj-$(CONFIG_ATH79_MACH_CAP4200AG) += mach-cap4200ag.o ++obj-$(CONFIG_ATH79_MACH_COMFAST) += mach-comfast.o +obj-$(CONFIG_ATH79_MACH_CPE510) += mach-cpe510.o obj-$(CONFIG_ATH79_MACH_DB120) += mach-db120.o +obj-$(CONFIG_ATH79_MACH_DLAN_PRO_500_WP) += mach-dlan-pro-500-wp.o diff --git a/target/linux/ar71xx/patches-3.18/614-MIPS-ath79-wdt-timeout.patch b/target/linux/ar71xx/patches-3.18/614-MIPS-ath79-wdt-timeout.patch new file mode 100644 index 0000000..6d45e9f --- /dev/null +++ b/target/linux/ar71xx/patches-3.18/614-MIPS-ath79-wdt-timeout.patch @@ -0,0 +1,54 @@ +--- a/drivers/watchdog/ath79_wdt.c 2014-06-23 23:35:55.747047338 -0400 ++++ b/drivers/watchdog/ath79_wdt.c 2014-06-23 21:29:47.793775345 -0400 +@@ -38,6 +38,12 @@ + + #define DRIVER_NAME "ath79-wdt" + ++#ifdef CONFIG_ATH79_MACH_COMFAST ++void ath79_external_wdt_trigger(void); ++void ath79_external_wdt_set_timeout(int timeout); ++void ath79_external_wdt_disable(void); ++#endif ++ + #define WDT_TIMEOUT 15 /* seconds */ + + #define WDOG_REG_CTRL 0x00 +@@ -86,6 +92,9 @@ + ath79_wdt_wr(WDOG_REG_TIMER, wdt_freq * timeout); + /* flush write */ + ath79_wdt_rr(WDOG_REG_TIMER); ++#ifdef CONFIG_ATH79_MACH_COMFAST ++ ath79_external_wdt_trigger(); ++#endif + } + + static inline void ath79_wdt_enable(void) +@@ -101,6 +110,9 @@ + ath79_wdt_wr(WDOG_REG_CTRL, WDOG_CTRL_ACTION_NONE); + /* flush write */ + ath79_wdt_rr(WDOG_REG_CTRL); ++#ifdef CONFIG_ATH79_MACH_COMFAST ++ ath79_external_wdt_disable(); ++#endif + } + + static int ath79_wdt_set_timeout(int val) +@@ -108,11 +120,17 @@ + if (val < 1) + return -EINVAL; + +- if (val > max_timeout) ++ if (val > max_timeout) { ++ printk(KERN_ERR "Watchdog timeout exceeds, using %d\n", max_timeout); + timeout = max_timeout; ++ } + else + timeout = val; + ++#ifdef CONFIG_ATH79_MACH_COMFAST ++ ath79_external_wdt_set_timeout(timeout); ++#endif ++ + ath79_wdt_keepalive(); + + return 0; -- 2.5.0 _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
