From a57d6e2d47688cfa392d6ea7f36ae6f9d84affc5 Mon Sep 17 00:00:00 2001 From: Chris Blake Date: Wed, 20 Jul 2016 15:44:51 +0200 Subject: apm821xx: add support for the Cisco Meraki MR24 This patch adds support for the Cisco Meraki MR24 Access point to the apm821xx target. Board: MR24 - Meraki MR24 Cloud Managed Access Point CPU: APM82181 SoC 800 MHz (PLB=200 OPB=100 EBC=100) Flash size: 32MiB RAM Size: 128MiB Wireless: Atheros AR9380 5.0GHz + Atheros AR9380 2.4GHz Ethernet ports: 1x Gigabit Atheros AR8035 WARNING: The serial port needs a TTL/RS-232 v3.3 level converter! For flashing instructions, visit: Signed-off-by: Chris Blake --- .../002-powerpc_ibm_phy_add_ar8035.patch | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 target/linux/apm821xx/patches-4.4/002-powerpc_ibm_phy_add_ar8035.patch (limited to 'target/linux/apm821xx/patches-4.4/002-powerpc_ibm_phy_add_ar8035.patch') diff --git a/target/linux/apm821xx/patches-4.4/002-powerpc_ibm_phy_add_ar8035.patch b/target/linux/apm821xx/patches-4.4/002-powerpc_ibm_phy_add_ar8035.patch new file mode 100644 index 0000000000..b7316e15b3 --- /dev/null +++ b/target/linux/apm821xx/patches-4.4/002-powerpc_ibm_phy_add_ar8035.patch @@ -0,0 +1,62 @@ +From 0c13957a43a90b1522eb616f3c9967ec44e4da1d Mon Sep 17 00:00:00 2001 +From: Christian Lamparter +Date: Tue, 3 May 2016 13:58:24 +0200 +Subject: [PATCH] drivers: net: emac: add Atheros AR8035 phy initialization + code +To: netdev@vger.kernel.org + +This patch adds the phy initialization code for Qualcomm +Atheros AR8035 phy. This configuration is found in the +Cisco Meraki MR24. + +Signed-off-by: Christian Lamparter +--- + drivers/net/ethernet/ibm/emac/phy.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/drivers/net/ethernet/ibm/emac/phy.c b/drivers/net/ethernet/ibm/emac/phy.c +index d3b9d10..5b88cc6 100644 +--- a/drivers/net/ethernet/ibm/emac/phy.c ++++ b/drivers/net/ethernet/ibm/emac/phy.c +@@ -470,12 +470,38 @@ static struct mii_phy_def m88e1112_phy_def = { + .ops = &m88e1112_phy_ops, + }; + ++static int ar8035_init(struct mii_phy *phy) ++{ ++ phy_write(phy, 0x1d, 0x5); /* Address debug register 5 */ ++ phy_write(phy, 0x1e, 0x2d47); /* Value copied from u-boot */ ++ phy_write(phy, 0x1d, 0xb); /* Address hib ctrl */ ++ phy_write(phy, 0x1e, 0xbc20); /* Value copied from u-boot */ ++ ++ return 0; ++} ++ ++static struct mii_phy_ops ar8035_phy_ops = { ++ .init = ar8035_init, ++ .setup_aneg = genmii_setup_aneg, ++ .setup_forced = genmii_setup_forced, ++ .poll_link = genmii_poll_link, ++ .read_link = genmii_read_link, ++}; ++ ++static struct mii_phy_def ar8035_phy_def = { ++ .phy_id = 0x004dd070, ++ .phy_id_mask = 0xfffffff0, ++ .name = "Atheros 8035 Gigabit Ethernet", ++ .ops = &ar8035_phy_ops, ++}; ++ + static struct mii_phy_def *mii_phy_table[] = { + &et1011c_phy_def, + &cis8201_phy_def, + &bcm5248_phy_def, + &m88e1111_phy_def, + &m88e1112_phy_def, ++ &ar8035_phy_def, + &genmii_phy_def, + NULL + }; +-- +2.8.1 + -- cgit v1.2.3