From patchwork Tue May 3 12:08:30 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Lamparter X-Patchwork-Id: 617930 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3qzg1y5XDrz9t5C for ; Tue, 3 May 2016 22:08:54 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlemail.com header.i=@googlemail.com header.b=po6zUVBW; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933174AbcECMIx (ORCPT ); Tue, 3 May 2016 08:08:53 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:35433 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932634AbcECMIv (ORCPT ); Tue, 3 May 2016 08:08:51 -0400 Received: by mail-wm0-f67.google.com with SMTP id e201so3409842wme.2 for ; Tue, 03 May 2016 05:08:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=ULJNk/tx+bOvEi/WFxB3KVhRbTcMG6a3Ag7Ox0Et+QE=; b=po6zUVBWhmZc93KtGxuj/n0y4Hv5EBpm4Nvd46Bx5QR18wMitkJoy8PgvZzZF0B4T3 4P6BFzeODOipb+KZFVcV9uaMJlUvLfi/xISvFvfRlhYZBo97cUt90kqxHaj80z4c1D7G zjkVbui9dYPYAng+Y9o0oj7NKccHqs2XBQWkKC9/CcdsfX4rUCKaySzC/mKPjtdSbxf4 8wpIPDQyPlFQ0WVbsAsN9oXjWTmkDbzTrd9oKw4OYh2H4JLZAnebND4vnOU/eh6JTdpZ OhtqidS4KY37TZDoj/TXhsT61TIF5exCP2MQsm/L8oiPWoPCHrIr4OTQTuThH2zGq580 bQ9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ULJNk/tx+bOvEi/WFxB3KVhRbTcMG6a3Ag7Ox0Et+QE=; b=cftWW0f3FR5i/Kyi5UiG+tozEBYmprNAeDXTQFbcuMCeCEUk17W+zb+AITkQABF6Ud LZB3YYGYZWnraENrhnUQ7yNt85ybBmRXBFB1l6eWtdLET8DP1oGQ9ffl9TnL34kXjn/P t9Txf8MmxBqztcaDriAE6uURF6pyTFcdHsMbp9orCfibhCWAAZCgtPuylNUvqQg6CTDe 4Lll1kCy4zrL6XpEEozmKpoJWg37/ElAR9LE31PQWiFJDTkzVQJJPX8KHWX5iKmxcOG9 j+lSx4jjj26+j3b+KSF6N0/aPKjTBZe3nYQhjidWeAeQ/iXrxUZ8TrA98FTj7VnO8Q1m sSFg== X-Gm-Message-State: AOPr4FWDaktCQaKvOx/FMVMXb2Oc8Nr4FvJhTcscfHONAq2HzLLqpdni5NB0zhMQhtGtWQ== X-Received: by 10.195.6.65 with SMTP id cs1mr2446397wjd.8.1462277330416; Tue, 03 May 2016 05:08:50 -0700 (PDT) Received: from debian64.daheim (pD9F8AE03.dip0.t-ipconnect.de. [217.248.174.3]) by smtp.googlemail.com with ESMTPSA id o129sm16485852wmb.17.2016.05.03.05.08.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 03 May 2016 05:08:49 -0700 (PDT) Received: from chuck by debian64.daheim with local (Exim 4.87) (envelope-from ) id 1axZ85-0002L3-23; Tue, 03 May 2016 14:08:46 +0200 From: Christian Lamparter To: netdev@vger.kernel.org Cc: Christian Lamparter Subject: [PATCH] drivers: net: emac: add Atheros AR8035 phy initialization code Date: Tue, 3 May 2016 14:08:30 +0200 Message-Id: <1462277310-8949-1-git-send-email-chunkeey@googlemail.com> X-Mailer: git-send-email 2.8.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: 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 };