From patchwork Wed Jan 6 08:15:52 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar Kushwaha X-Patchwork-Id: 563717 X-Patchwork-Delegate: yorksun@freescale.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 774891402BC for ; Wed, 6 Jan 2016 19:16:45 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 54CAC4B8F2; Wed, 6 Jan 2016 09:16:37 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XmWV9zg_cCVG; Wed, 6 Jan 2016 09:16:37 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 51B744B8F3; Wed, 6 Jan 2016 09:16:34 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 969D94B8D4 for ; Wed, 6 Jan 2016 09:16:30 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ds0-15BFaKsr for ; Wed, 6 Jan 2016 09:16:30 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0111.outbound.protection.outlook.com [207.46.100.111]) by theia.denx.de (Postfix) with ESMTPS id 8E56F4B8C6 for ; Wed, 6 Jan 2016 09:16:23 +0100 (CET) Received: from BLUPR03CA007.namprd03.prod.outlook.com (10.255.124.24) by BN3PR03MB1462.namprd03.prod.outlook.com (10.163.35.13) with Microsoft SMTP Server (TLS) id 15.1.361.13; Wed, 6 Jan 2016 08:16:18 +0000 Received: from BN1BFFO11OLC003.protection.gbl (10.255.124.4) by BLUPR03CA007.outlook.office365.com (10.255.124.24) with Microsoft SMTP Server (TLS) id 15.1.361.13 via Frontend Transport; Wed, 6 Jan 2016 08:16:18 +0000 Authentication-Results: spf=permerror (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; Received-SPF: PermError (protection.outlook.com: domain of freescale.com used an invalid SPF mechanism) Received: from az84smr01.freescale.net (192.88.158.2) by BN1BFFO11OLC003.mail.protection.outlook.com (10.58.145.14) with Microsoft SMTP Server (TLS) id 15.1.355.15 via Frontend Transport; Wed, 6 Jan 2016 08:16:18 +0000 Received: from b32579-VirtualBox.ap.freescale.net (B32579-02.ap.freescale.net [10.232.40.239]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id u068FsbB008690; Wed, 6 Jan 2016 01:16:15 -0700 From: Prabhakar Kushwaha To: Date: Wed, 6 Jan 2016 13:45:52 +0530 Message-ID: <1452068152-2843-1-git-send-email-prabhakar@freescale.com> X-Mailer: git-send-email 1.9.1 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11OLC003; 1:jscDMgektvhF9z5MLWJg7gf85COfKaAGoFR56axjlxKrBI5BKjBA0rvRYOkiODZMiGj5ttIyJgyp+DdMkUROkbNZHMhgGbNZxU1z+omA310pQCL3VQPoOvkgVeAFUVDZnMbJhbH88sMi3GYG/PsT9afRLASDbrR9ZcZiXtDG3UavNQyieVnaTEWFf3x5NAO+xUTJQuFIA/vdPFOwuHh0haUjuovsq53moqKxX1SyoDubogMp14vkkhbnZxdG2C0xMw2cNWp1furBjbvNz93mLYd4bkbjjI7O/KrZ4ePjaHr5sWz4bIF5Sf3a2wJc7G1vaC11QNXFnNn+2UKrQ8Z2T8MnobQ4UhxCX2vkVlm6wDSoQbM7P263zwoEILiAuOzSAsVwNwlCf7pGsiIAGY2A683HvcR3hi4t1YgmUhD7gKoYUvLf4bBk6JMmt/rUkWh2 X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(448002)(3190300001)(199003)(189002)(4326007)(5001960100002)(110136002)(229853001)(81156007)(11100500001)(2351001)(107886002)(69596002)(106466001)(19580395003)(87936001)(50986999)(50226001)(5003940100001)(50466002)(86362001)(92566002)(189998001)(97736004)(48376002)(85326001)(104016004)(5008740100001)(19580405001)(1220700001)(6806005)(586003)(47776003)(36756003)(77096005)(33646002)(1096002)(4001430100002)(7059030); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR03MB1462; H:az84smr01.freescale.net; FPR:; SPF:PermError; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB1462; 2:2FrV2ULjQt6jogpETwujKjTjz1wwAc8E/K4mkdxgge3aPWQa9nibMb+9TTKdQO7BAOiJ3M9gtkJPZpyGiyJ+W8j1WIornvfMPAOhmawKvZRyGPNYbuUApSV86nkQ2WCkgkqwcuczZuJIK4qRWvEBjQ==; 3:A0BX6YpLIcJbAavQL23t8WFoxuyEwvAfMu6CKHQsbYZiK/qhLKcEU6Y0ClXBTsMdhGHQB23pg3Dsiwxs9kELHlqjR2rsrIHPGWv6FVidQqZ5DGDQ4Pyg2/qWQod/Z+xkWpOt4x/VhujbZ5acC0ScOi9RAblk5TkzGv3MGDMna/5jD/xgsycK0+gCdoW1goCHywvuCpyMg55iVzWejDB8dvxjbOcIjKgtAaKKWmXLduc=; 25:48ZX9lcdlxNXblfsCapCxBv/r5W8cz4ahh8OOXO0e92yg+bJUbE9oc088vMDuW+2e7fCIUS3igdf7KefikJ2sAovqWv3UsxU69P8SfyTN2YRRQAs0sgfPoCLReutg6AAtzW69A8fH/tyTxZCt38Njia2Gwai/Tn8YVRdBMOTUW/EqP8vq23cW2xsMIWC7GF0mss0qpMg75/zXw9p9zuIhB9bE5wphRk7RXK6vKrTXow1QqZ//gn0QfT/SC+2OIh0W4YU9UUMqtBPk7NN1mN9jg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1462; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB1462; 20:wVsgr4G6fjmwCJAPRZ61JiQnuBK9/wc+S9bPfoHJBh2IF1UvNRFrCz9sbsMfohtoH5xgiN1VPzE5VgA4McZG5VxZsxXs9cFhwVDvcOlZrYD7I76u0wxBNLh+ZWHP3lTdaocLg3nHntr6u8x9vaOlSoGWyqqjal7Yk9q8TXXjh4NhC8yURxonc5W+Osb6Or+TPN5fUVtGGJpigHJ3sd5IPh2+qyR3Nvb2QAtS9EzxjD/AUVdqZ8lYyTDvLW7NtXsLlO42S1TINYb9sbFdLBEYMloaDQsCjqk3LWgUN1nzMwHyMnfk+XiRDYemiW/wwIlhLzCoIlHvC3cbm09OsvsE2KIcTlrQgkhtSkw1yno/Wn8=; 4:bCmqAxe32ybm7L1PwZKb/orm+fsUKc+Nbfo6Uk0bo2JLzBpsWhUYJ6k+QVZ6SRf8kuseBi0N4kgi7iUEJllNSv+kZ+jpzbNRSrqKOybBchQ+/ZZG352ZIULZEw/lG4VNegRQd18HOD14+8ANar6lLgZ8s30Xcw6jho5BvGo0umw39npaaTHp3O9jbZnqp3N7ns3iTTEemRGjjf6uYj+acHRrMDdwDMPh6Pi77vPPm6IhxhlfdChE6U0ThuTdgoCzW9KPGpdaFv0E9iONJ1cqWgwpWmPyN+SsWCdB0ztmV38JDQdpaNfF/pHCNQvFj7Lz6s3zeQV8oUy3C4QIBU7MH1XelD50DvHLDMwAoGblkQdcaUv8Dmwinrl1GLtaBdqkqDhrssezYTtx7NAB3vFZfcEtMUyEFJgI/VqDdHqT+JS8i6LW6I//+e3Xmg3B7aV1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(10201501046)(3002001); SRVR:BN3PR03MB1462; BCL:0; PCL:0; RULEID:; SRVR:BN3PR03MB1462; X-Forefront-PRVS: 0813C68E65 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR03MB1462; 23:WIv5oJPBe39M8TNE3ld3IjjBNoa0vy2N0MAG545Zy?= =?us-ascii?Q?M+C3HWndftVDXfMu1FLkMHM2lJ7E3yDvbgusK9VM+57+tCOdnZyVJVfrJ6pq?= =?us-ascii?Q?wG4p1DgDocAzFCXv419EkiK1MULnuxAXG6A1L+QMDaD2BOCGpvc61h39DxsT?= =?us-ascii?Q?hc7MoEqIe68sTGHl2MuR/DVO2MWy+UeAVfYSUiv5d25R2tbVtL+bt/8Zc7RS?= =?us-ascii?Q?pqer3X+zJNpU00vLuaSREUxgL9VRcrTrJRZu/6TvkJx9gGUC0FXjwRSXN6NJ?= =?us-ascii?Q?z2J8OOKjTNSWEvKadLncvgzwQeZBgV1LRiTXYkxH7g9ACGhBKljDhaIh49cH?= =?us-ascii?Q?1Rt/kXR8OG0oopvstdXB67DcDTG8wd4BFmw9S7wcUne+epx5LEddTARiCHGo?= =?us-ascii?Q?jPcx4ZEPvhW5vvAKZgvFPb0p4RMi+1kR4y3B8trrokoh1i2FtYIWERJpH8an?= =?us-ascii?Q?wI2RI4bP0RH3jT5ayhybvItMt9J8sZ28ATePtJ6CCBpnl08bp2mxwqa074XN?= =?us-ascii?Q?es7Sc/aTNfCC3d56B7Jrk2Yjxgepvl2QtX/hyd3a4acThQBw88WBN351pl0Q?= =?us-ascii?Q?AB7z9UNzXvZK1JMAp3UWzvADYjP5ROi7gu3OQgpnSi8W1KnpCNlXuxh06wiD?= =?us-ascii?Q?5NLAEKgL8coF9HoRydmb4Bsx2jTgEty3bikY0TWrVhew/zjjxk8wNHK4YSDj?= =?us-ascii?Q?K3mZUdTkjD/QBSdW4q+Rr5hazGX8rWQfwvOzaKPHt0XVtLvWnU3Tz/ZIdb2q?= =?us-ascii?Q?CvQzhhnoXMet5ciRt1KVcSN3y1LdHBwTbukG1o18S6aaBfbzFLHj2DNal1xJ?= =?us-ascii?Q?i7d5bnwmbb5ZcgFVdPaYPUJni4SdjHscnDSBQgIJBCVtYtn+KyhQV7IWeq2z?= =?us-ascii?Q?IJAMD5hx8OuRWhl1uAktgSj7EVsxTwabzf8tdYchQuGGW8VEWJ1icQVSZklQ?= =?us-ascii?Q?EqNppe6pFM8nlLdjyja1/pe3og3+dsh+QfCWkdaKYKICS063wurPi7G5ryW5?= =?us-ascii?Q?1jAnnQus+4WONPuc0Zrw5aQRF7snFDl3koVeZfLSH4W2ukY7PTLZeW0w4bMz?= =?us-ascii?Q?/MEQ9GCw+xJe0So07MRY1dduv70?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB1462; 5:ZCmK7FH3Ur8j7ybkz3DIE9213W13XRY3Rml/Zyq8706tZSyhLQVqxsMbCi8mOE2UqXhmG0OHSXc2xpWj2I/GYanWjbM/pzzybJJP0v+tty5L98U3ZRt6D05bXTPCq2EALtyXTRlySCDWtaReO+8HYg==; 24:XjfgkOUJZ9WjDFAmGtjpqwnX3O3h5zYTCWP8WdB7A7EXl9y9MgBFjKy6ma+tj1BE6h4cmJxMiyUEl1Am/9pgllkVUjIlnlkB4evWBHdVp/U= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2016 08:16:18.8086 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB1462 Cc: yorksun@freescale.com Subject: [U-Boot] [PATCH 1/2] driver: net: ldpaa_eth: Add support of PHY framework X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This patch integrate DPAA2 ethernet driver existing PHY framework. Call phy_connect and phy_config as per available DPMAC id defined in SerDes Protcol. Signed-off-by: Pratiyush Mohan Srivastava Signed-off-by: Prabhakar Kushwaha --- drivers/net/ldpaa_eth/ldpaa_eth.c | 42 ++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c b/drivers/net/ldpaa_eth/ldpaa_eth.c index 69530b1..2e76cc5 100644 --- a/drivers/net/ldpaa_eth/ldpaa_eth.c +++ b/drivers/net/ldpaa_eth/ldpaa_eth.c @@ -14,12 +14,29 @@ #include #include +#include #include "ldpaa_eth.h" -#undef CONFIG_PHYLIB static int init_phy(struct eth_device *dev) { - /*TODO for external PHY */ + struct ldpaa_eth_priv *priv = (struct ldpaa_eth_priv *)dev->priv; + struct phy_device *phydev = NULL; + struct mii_dev *bus; + + bus = wriop_get_mdio(priv->dpmac_id); + if (bus == NULL) + return 0; + + phydev = phy_connect(bus, wriop_get_phy_address(priv->dpmac_id), + dev, wriop_get_enet_if(priv->dpmac_id)); + if (!phydev) { + printf("Failed to connect\n"); + return -1; + } + + priv->phydev = phydev; + + phy_config(phydev); return 0; } @@ -349,7 +366,6 @@ static int ldpaa_eth_open(struct eth_device *net_dev, bd_t *bd) } #ifdef CONFIG_PHYLIB - /* TODO Check this path */ err = phy_startup(priv->phydev); if (err) { printf("%s: Could not initialize\n", priv->phydev->dev->name); @@ -367,9 +383,17 @@ static int ldpaa_eth_open(struct eth_device *net_dev, bd_t *bd) return err; } - dpmac_link_state.rate = SPEED_1000; - dpmac_link_state.options = DPMAC_LINK_OPT_AUTONEG; - dpmac_link_state.up = 1; + dpmac_link_state.rate = priv->phydev->speed; + + if (priv->phydev->autoneg == AUTONEG_DISABLE) + dpmac_link_state.options &= ~DPMAC_LINK_OPT_AUTONEG; + else + dpmac_link_state.options |= DPMAC_LINK_OPT_AUTONEG; + + if (priv->phydev->duplex == DUPLEX_HALF) + dpmac_link_state.options |= DPMAC_LINK_OPT_HALF_DUPLEX; + + dpmac_link_state.up = priv->phydev->link; err = dpmac_set_link_state(dflt_mc_io, MC_CMD_NO_FLAGS, priv->dpmac_handle, &dpmac_link_state); if (err < 0) { @@ -798,12 +822,6 @@ static int ldpaa_eth_netdev_init(struct eth_device *net_dev, net_dev->halt = ldpaa_eth_stop; net_dev->send = ldpaa_eth_tx; net_dev->recv = ldpaa_eth_pull_dequeue_rx; -/* - TODO: PHY MDIO information - priv->bus = info->bus; - priv->phyaddr = info->phy_addr; - priv->enet_if = info->enet_if; -*/ if (init_phy(net_dev)) return 0;