From d6baeb5c480f547f13f92b8994cf467d25e2ef7e Mon Sep 17 00:00:00 2001 From: Henryk Heisig Date: Thu, 16 Feb 2017 15:22:49 +0100 Subject: [PATCH] ar71xx: fix lan ports on archer C59 and C60 Signed-off-by: Henryk Heisig --- .../ar71xx/base-files/etc/board.d/01_leds | 4 ++-- .../ar71xx/base-files/etc/board.d/02_network | 15 +++++++------- .../arch/mips/ath79/mach-archer-c59-v1.c | 20 ++++++++++++++++--- .../arch/mips/ath79/mach-archer-c60-v1.c | 16 ++++++++++++--- 4 files changed, 40 insertions(+), 15 deletions(-) diff --git a/target/linux/ar71xx/base-files/etc/board.d/01_leds b/target/linux/ar71xx/base-files/etc/board.d/01_leds index af028777218..70f5dac9446 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/01_leds +++ b/target/linux/ar71xx/base-files/etc/board.d/01_leds @@ -51,8 +51,8 @@ antrouter-r1) ;; archer-c59-v1|\ archer-c60-v1) - ucidef_set_led_switch "lan" "LAN" "$board:green:lan" "switch0" "0x3C" - ucidef_set_led_switch "wan" "WAN" "$board:green:wan" "switch0" "0x02" + ucidef_set_led_switch "lan" "LAN" "$board:green:lan" "switch0" "0x1E" + ucidef_set_led_netdev "wan" "WAN" "$board:green:wan" "eth0" ucidef_set_led_wlan "wlan" "WLAN" "$board:green:wlan2g" "phy1tpt" ucidef_set_led_wlan "wlan5g" "WLAN5G" "$board:green:wlan5g" "phy0tpt" diff --git a/target/linux/ar71xx/base-files/etc/board.d/02_network b/target/linux/ar71xx/base-files/etc/board.d/02_network index 621a010671f..3ae35f1a813 100755 --- a/target/linux/ar71xx/base-files/etc/board.d/02_network +++ b/target/linux/ar71xx/base-files/etc/board.d/02_network @@ -206,9 +206,15 @@ ar71xx_setup_interfaces() "0@eth1" "2:lan" "3:lan" "4:lan" "5:lan" "6@eth0" "1:wan" ;; archer-c59-v1|\ - archer-c60-v1) + rb-450g) + ucidef_set_interfaces_lan_wan "eth1.1" "eth0" ucidef_add_switch "switch0" \ - "0@eth0" "2:lan:4" "3:lan:3" "4:lan:2" "5:lan:1" "1:wan" + "0@eth1" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2" + ;; + archer-c60-v1) + ucidef_set_interfaces_lan_wan "eth1.1" "eth0" + ucidef_add_switch "switch0" \ + "0@eth1" "1:lan:1" "2:lan:2" "3:lan:3" "4:lan:4" ;; arduino-yun|\ dir-505-a1|\ @@ -374,11 +380,6 @@ ar71xx_setup_interfaces() ucidef_add_switch "switch0" \ "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5@eth1" ;; - rb-450g) - ucidef_set_interfaces_lan_wan "eth1.1" "eth0" - ucidef_add_switch "switch0" \ - "0@eth1" "1:lan:1" "2:lan:4" "3:lan:3" "4:lan:2" - ;; routerstation-pro) ucidef_set_interfaces_lan_wan "eth1.1" "eth0" ucidef_add_switch "switch0" \ diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c59-v1.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c59-v1.c index 28353aa77b0..d55f9b9f75b 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c59-v1.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c59-v1.c @@ -194,19 +194,33 @@ static void __init archer_c59_v1_setup(void) ARRAY_SIZE(archer_c59_v1_gpio_keys), archer_c59_v1_gpio_keys); + ath79_setup_qca956x_eth_cfg(QCA956X_ETH_CFG_SW_PHY_SWAP | + QCA956X_ETH_CFG_SW_PHY_ADDR_SWAP); + + ath79_register_mdio(0, 0x0); ath79_register_mdio(1, 0x0); - ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 1); ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0); + + /* WAN port */ + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ath79_eth0_data.speed = SPEED_100; + ath79_eth0_data.duplex = DUPLEX_FULL; + ath79_eth0_data.phy_mask = BIT(0); + ath79_register_eth(0); + + /* LAN ports */ + ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; ath79_eth1_data.speed = SPEED_1000; ath79_eth1_data.duplex = DUPLEX_FULL; - ath79_eth1_data.phy_mask = BIT(4); + ath79_switch_data.phy_poll_mask |= BIT(4); + ath79_switch_data.phy4_mii_en = 1; ath79_register_eth(1); ath79_register_wmac(art + ARCHER_C59_V1_WMAC_CALDATA_OFFSET, mac); ap91_pci_init(art + ARCHER_C59_V1_PCI_CALDATA_OFFSET, NULL); - ath79_register_usb(); gpio_request_one(ARCHER_C59_V1_GPIO_USB_POWER, GPIOF_OUT_INIT_HIGH | GPIOF_EXPORT_DIR_FIXED, diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c60-v1.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c60-v1.c index 78186f02cda..4d83fa737b9 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c60-v1.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-archer-c60-v1.c @@ -116,15 +116,25 @@ static void __init archer_c60_v1_setup(void) ARRAY_SIZE(archer_c60_v1_gpio_keys), archer_c60_v1_gpio_keys); - ath79_setup_qca956x_eth_cfg(QCA956X_ETH_CFG_SW_PHY_SWAP | - QCA956X_ETH_CFG_SW_PHY_ADDR_SWAP); + ath79_register_mdio(0, 0x0); ath79_register_mdio(1, 0x0); - ath79_init_mac(ath79_eth1_data.mac_addr, mac, 0); + ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0); + ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1); + /* WAN port */ + ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_MII; + ath79_eth0_data.speed = SPEED_100; + ath79_eth0_data.duplex = DUPLEX_FULL; + ath79_eth0_data.phy_mask = BIT(4); + ath79_register_eth(0); + + /* LAN ports */ ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_GMII; ath79_eth1_data.speed = SPEED_1000; ath79_eth1_data.duplex = DUPLEX_FULL; + ath79_switch_data.phy_poll_mask |= BIT(4); + ath79_switch_data.phy4_mii_en = 1; ath79_register_eth(1); ath79_register_wmac(art + ARCHER_C60_V1_WMAC_CALDATA_OFFSET, mac);