From patchwork Thu Sep 17 07:06:43 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gong Qianyu X-Patchwork-Id: 518747 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 E7911140213 for ; Thu, 17 Sep 2015 17:22:48 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id D0A244B809; Thu, 17 Sep 2015 09:22:46 +0200 (CEST) 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 US8qr-mbVRQV; Thu, 17 Sep 2015 09:22:46 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 1FEAA4B819; Thu, 17 Sep 2015 09:22:16 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 39F254B7E8 for ; Thu, 17 Sep 2015 09:14:16 +0200 (CEST) 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 OojXbbbMT7ph for ; Thu, 17 Sep 2015 09:14:16 +0200 (CEST) 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-bn1-obe.outbound.protection.outlook.com (mail-bn1on0141.outbound.protection.outlook.com [157.56.110.141]) by theia.denx.de (Postfix) with ESMTPS id 908454B7C5 for ; Thu, 17 Sep 2015 09:13:30 +0200 (CEST) Received: from DM2PR03CA0025.namprd03.prod.outlook.com (10.141.96.24) by BY2PR03MB507.namprd03.prod.outlook.com (10.141.143.21) with Microsoft SMTP Server (TLS) id 15.1.268.17; Thu, 17 Sep 2015 07:13:27 +0000 Received: from BL2FFO11FD037.protection.gbl (2a01:111:f400:7c09::192) by DM2PR03CA0025.outlook.office365.com (2a01:111:e400:2428::24) with Microsoft SMTP Server (TLS) id 15.1.274.16 via Frontend Transport; Thu, 17 Sep 2015 07:13:26 +0000 Authentication-Results: spf=fail (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: Fail (protection.outlook.com: domain of freescale.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BL2FFO11FD037.mail.protection.outlook.com (10.173.161.133) with Microsoft SMTP Server (TLS) id 15.1.274.4 via Frontend Transport; Thu, 17 Sep 2015 07:13:26 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t8H7CrMa002378; Thu, 17 Sep 2015 00:13:23 -0700 From: Gong Qianyu To: Date: Thu, 17 Sep 2015 15:06:43 +0800 Message-ID: <1442473613-17374-3-git-send-email-Qianyu.Gong@freescale.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1442473613-17374-1-git-send-email-Qianyu.Gong@freescale.com> References: <1442473613-17374-1-git-send-email-Qianyu.Gong@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD037; 1:ULO0TMdc6mFrWRrnOWQ5rb5blLzI9vsgjQkkhaSZ4No3uTCNGDerKq6L3OYIcjlPVJNg1IJ3JLUkXYfLc67ZB+Aixl3rRk5LlHSthHBht4bpsZ2BYam2cMDJU2PHbE24P5qjvnbu6fcox8MAzs1sJjIuMCE+AWYQHwFtK7NU7jwczhSMBQU7gSBV8V3iyvqhV3iMhFavmEl/snyI//omwnttRTwifmZXCuLn2840PKklWoXUkyDb/UsW13X/IZXRNfXpKS/lE6sAH82gy35hvB27gURyQg88Qeq7vrHV8NznBB3ziEXQvDUuMOrts4RhqQUBEmuIScmGJeDze6iGWS6FhbPfMeJY4HWep5hJ+Pmu3QQS5Uuu59ybue/EIk5yw+0cJIhQUKkwmSCg5QQh1A== X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(81156007)(50466002)(36756003)(104016003)(4001540100001)(86362001)(47776003)(189998001)(64706001)(77096005)(5003940100001)(48376002)(97736004)(105606002)(2351001)(229853001)(106466001)(68736005)(50226001)(92566002)(87936001)(77156002)(450100001)(2950100001)(62966003)(6806004)(110136002)(19580405001)(19580395003)(11100500001)(5007970100001)(85426001)(5001830100001)(5001860100001)(5001960100002)(46102003)(107886002)(76176999)(50986999)(69596002)(217873001)(4001430100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY2PR03MB507; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB507; 2:26d8O97E+Wl4Fd2N4CgNMn34U/NL5LzK9KjVJl7AHOXtF0KCRDcDCIQhlsVBRBi5Ex8j9x0+qTU0XSjI5Fy1p9jjTj/TyGaUk/blWbplQKdFOCibuGWkbCVygrBFyk/jV8Td0g8Amasu+wiH/2fdsvt7JqBTj9cU3H+vXpMOfHQ=; 3:347ND+rAYBS+JST1WauEvR5ZWvqlWG43tPH8bSL2EBKbyEqT15U54JlNkM56GGYWDe44tN2/7Pz+xnP+yJZf8szQiAYcb5ypq7VWs5syRBHqCWc3SlAn4OCrbOTxXCd760ZqouQvCO+MYWCEHuDee4sNxoBdoEiHP9L3srphaAch7fP9n8zojNw8QtparO69USmWQZ9vt5uO+B9ieFdP/C8IWEbTffq1Uxp0xYomp5U=; 25:uRqqkH9X+E4r4p/Y/gRmzyM6zPE/qFrYN8lcH4YH1Lu4sfihxDnT0AQdzsOwcm4E0ypkpCxAgJrU5jmI59wsCfNGVjLKaKv5Is1TxxjlfC/TEmYBqOce1/Ec/xzoirQ8gulmUYpZBe6pjWq5YB0dIudmCaQEPEqGwYaEEZHG9vzbeKQyJBuKZPPKabjs6+yttSXh/wYDRlB5nlWwQfft/cgORUy9hhbFcDjHGSTabSRk9gBpUYKtrnr2Bp2qsrsTPPM3mCBD5P2lm4EiHR3+kQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB507; X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB507; 20:7+yPbJRA2dPnXa4viGkL7CQ1drG9dZcQqXhJldpYE1qphMV3aV17l/yPgV/I3U3xL2CVMk3X0kg6c974b1+oryC7F/+O4FMXhBZh1f6LFGgU0R4yL5NerzEicIZXT6QuLb0GpuiWzUV0mVBthEwy/3pdpFAWSSDQe3dDcFudYGh0UqtaDVVKd5p7Ef+RsII3RgJa5v3nAyKBRtsSd6DGftHLqqmHeDyXoLmi5GEuFv7X8jsR+gca/uF1nfAkoTaG/HmKH3/bU/xv2oz+Qei5VcAMj4An4lY36eRl1jn24A8zS48f535pQ0XFg3aDfyefnS6PVGHEgWyRMROrnNY412fF6CHBnUMGnCEyrz/XNW4=; 4:JMS3TQ7kY/czfVziuZd1AvMnB7U3G4VttUyyLMVCB29PyRoBaaPFTONgkxP5ne/UMasSdQMcEHm9/E04WBLDkFuYazKmhLwjyY5bhmfIpa3XPH+xr0owPm05H1q3Ncbcwls2eE4a9URsZtrmseLp5jFqfpGNF2KImbGSzQGD8oUjJb3SFFMJT97zfcWNvJzvs7WUkUNEFtXnQW3mBJpickWNfI3U53X2fFq5Flusrf0+4qznNg/56LFyQ9XGGKOjoXCN6IpIKgODRGc3uL7KQ8vS92bfVojKZoZr6OTeAauRSGGWrT8dS1IguvSXlNqLE/pPMEcqy1fMy9TU/VH+mb8fVpNKK5w6Vki5OBZXpDvDBT5HkFvHZ6qnKe7/IIpR X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(8121501046)(520075)(520078)(5005006)(520058)(3002001); SRVR:BY2PR03MB507; BCL:0; PCL:0; RULEID:; SRVR:BY2PR03MB507; X-Forefront-PRVS: 07025866F6 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR03MB507; 23:QLG83cAINrCQYlUjr5wOPPbxHGoHc+4owYeSmzTE+g?= =?us-ascii?Q?8xTZKeYsB4/bEntJNqVPeVaE5/ZggUdRNva0lnSdvZfNvWxpC22W6Eh0E9oT?= =?us-ascii?Q?3rTJtA8kiwhcM6UtrDSODFiH8nf/LxbhM8v1JN0G4xi8g7KvvSyv1bqTsBtB?= =?us-ascii?Q?Gb4XNdTrULZIjK35eTohDUm6lbSX8S4WRDe5GFAjVeT8n2EZcSuNoezYcBZe?= =?us-ascii?Q?tIOCJyNefPMIWghaP/R5iLBbtQSJL/myw+zbXFq5wblKtQArCx9hYAA/GIpU?= =?us-ascii?Q?JNyqsQGgKz7SDzVgB1tmYOix0yUsZCC1fdOfx4+k0Jnkw+X+hFp/ehH6qEM0?= =?us-ascii?Q?kl8eD573mNTR/Bu1Ug9XlV3/6AnCbiA2gd0E18JMMbKlItb6CGjqd614Hf10?= =?us-ascii?Q?B9GdXsWvsxtTXv01M8wdOrdCQmUnDSZImQmAq5l6UnIqs++zkuD++tWsaLEJ?= =?us-ascii?Q?tk6OS/gzTnuNx9Ws+O4SKPUIoA/A0zQqGkP2mkluxl5i4ZZb7hhU0fM5KttB?= =?us-ascii?Q?NZ0srTaJv07aBQwTQiAMO7pMw47rw6yVzVul7qMNicOU7oDc2N+hmjADm0M5?= =?us-ascii?Q?GyebVBTL4mGy/EjyKuosP7YNJtbA+5VASpL7LJTTwZMmUTOpx6tfNsdkjxHw?= =?us-ascii?Q?YpZMYfBPr/agh5kYgXTDr0Ed4/6qi7u4gKR3s7dJUfYQaWsnAJnc/7nCAd/W?= =?us-ascii?Q?qgJGvC8bfc23SXUWyNNev+6Nwhkrx2/I4WGPS6eKDjCI+m1J9XxnE+MaXX2E?= =?us-ascii?Q?kd4O0y6pqxYIDoXhXPL23rfE+ghU75hr3+INaAXQLqm/1wEVmNCTWC6mOm1q?= =?us-ascii?Q?jed8N6R2iSCc9O2ATUB7wvA0kFsMBhvkKU70L7AcZBCgTRpbBgBaxWSgVwmM?= =?us-ascii?Q?T5KhGaW72KQ4pXXLx6idrTl6rPiyqMvlraelCMdlwZslOeuFP+IpSauFLOK3?= =?us-ascii?Q?aNkfSCOc5nZYMZ4g2NEYuiHTQCJLdUeilGrg9cz7c7JwykXq2k7NoHjh0IHv?= =?us-ascii?Q?Mlj9EyHlhSoQIrOxkrbOzLiq3qtSw9Sd2B8DybuoHjQZgM+qBGrjUVMSIsUW?= =?us-ascii?Q?ZmAlOxCRwZwmr/qHzXZPnPfnxoLN2oTORV9s9sz8LgnOZXT5oqGfRviRcyhY?= =?us-ascii?Q?LH5L6YwnGMoAClIuCFLtabte9T4J3DRqk4vJbbaufpUT6x2Wjc7HVJ8E2Y0X?= =?us-ascii?Q?MLZ2ai1367yCWJkA7bQfY3l2bAUVhnYcJAmtdhbzdHge2pMdUvFm+dkPDVrk?= =?us-ascii?Q?xhz2AFujL4Vmi/56AkHLFtwD1iKwAk7OjarZquNmn0YMS03mFg8Qzyx4FPLl?= =?us-ascii?Q?T3rRqd0789OLRFoaJe5ZU=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR03MB507; 5:el0OZRXc02rVFhaLJ2NcEq2Bi/YDggHlcLISZTlVCKui6p2u2p5NXfYYkNTfy7w+JIZNcZs1T58X7hQakJhGsJDBquYX28eHE4ZPWM2yPcKYJTas1Sqbx6r11ZcG8BnD6rrqZn680EKZtOB28w0+AQ==; 24:D+mSOaN/YtMxrg9di/zQ+Xf+b1rjWkwc7/ZfItrQ1UxoV8z8Lgc2IGovqaOvKM1naFalfbGPuwtqXuxY4Qsyo4Tfh42EYNGLNsEyddELo84=; 20:6Gh1tx+sKs3fw3e7653dGnssLQaBh4BuSDi+PhhXOiggUadMkEnvTB+ubtHJ0D3QA0EyYC6D2LpouR3ecPjyVg== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2015 07:13:26.1417 (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: BY2PR03MB507 Cc: B07421@freescale.com, Gong Qianyu , Shaohui.Xie@freescale.com, B48286@freescale.com, B53747@freescale.com Subject: [U-Boot] [Patch v2 06/16] net/fm: Add QSGMII PCS init 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" From: Shaohui Xie QSGMII PCS needed to be programmed same as SGMII PCS, and there are four ports in QSGMII PCS, port 0, 1, 2, 3, all the four ports shared port 0's MDIO controller, so when programming port 0, we continue to program other three ports. Signed-off-by: Shaohui Xie Signed-off-by: Mingkai Hu Signed-off-by: Gong Qianyu --- drivers/net/fm/eth.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c index a768a90..12eb9b8 100644 --- a/drivers/net/fm/eth.c +++ b/drivers/net/fm/eth.c @@ -41,28 +41,39 @@ static void dtsec_configure_serdes(struct fm_eth *priv) bus.priv = priv->mac->phyregs; bool sgmii_2500 = (priv->enet_if == PHY_INTERFACE_MODE_SGMII_2500) ? true : false; + int i = 0; + +qsgmii_loop: + if ((priv->enet_if == PHY_INTERFACE_MODE_QSGMII) && + ((priv->phyaddr % 4) != 0)) + return; /* SGMII IF mode + AN enable only for 1G SGMII, not for 2.5G */ value = PHY_SGMII_IF_MODE_SGMII; if (!sgmii_2500) value |= PHY_SGMII_IF_MODE_AN; - memac_mdio_write(&bus, 0, MDIO_DEVAD_NONE, 0x14, value); + memac_mdio_write(&bus, i, MDIO_DEVAD_NONE, 0x14, value); /* Dev ability according to SGMII specification */ value = PHY_SGMII_DEV_ABILITY_SGMII; - memac_mdio_write(&bus, 0, MDIO_DEVAD_NONE, 0x4, value); + memac_mdio_write(&bus, i, MDIO_DEVAD_NONE, 0x4, value); /* Adjust link timer for SGMII - 1.6 ms in units of 8 ns = 2 * 10^5 = 0x30d40 */ - memac_mdio_write(&bus, 0, MDIO_DEVAD_NONE, 0x13, 0x3); - memac_mdio_write(&bus, 0, MDIO_DEVAD_NONE, 0x12, 0xd40); + memac_mdio_write(&bus, i, MDIO_DEVAD_NONE, 0x13, 0x3); + memac_mdio_write(&bus, i, MDIO_DEVAD_NONE, 0x12, 0xd40); /* Restart AN */ value = PHY_SGMII_CR_DEF_VAL; if (!sgmii_2500) value |= PHY_SGMII_CR_RESET_AN; - memac_mdio_write(&bus, 0, MDIO_DEVAD_NONE, 0, value); + memac_mdio_write(&bus, i, MDIO_DEVAD_NONE, 0, value); + + if ((priv->enet_if == PHY_INTERFACE_MODE_QSGMII) && (i < 3)) { + i++; + goto qsgmii_loop; + } #else struct dtsec *regs = priv->mac->base; struct tsec_mii_mng *phyregs = priv->mac->phyregs; @@ -91,6 +102,7 @@ static void dtsec_init_phy(struct eth_device *dev) #endif if (fm_eth->enet_if == PHY_INTERFACE_MODE_SGMII || + fm_eth->enet_if == PHY_INTERFACE_MODE_QSGMII || fm_eth->enet_if == PHY_INTERFACE_MODE_SGMII_2500) dtsec_configure_serdes(fm_eth); }