From patchwork Fri Sep 11 11:02:21 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gong Qianyu X-Patchwork-Id: 516692 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 AE09B14030C for ; Fri, 11 Sep 2015 21:09:08 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 3833D4B736; Fri, 11 Sep 2015 13:09:07 +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 fGixQ7JZlTaD; Fri, 11 Sep 2015 13:09:07 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id A56FC4B71D; Fri, 11 Sep 2015 13:09:06 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id C8E7E4B71D for ; Fri, 11 Sep 2015 13:09:03 +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 Tac17PV64K3s for ; Fri, 11 Sep 2015 13:09:03 +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-bl2-obe.outbound.protection.outlook.com (mail-bl2on0111.outbound.protection.outlook.com [65.55.169.111]) by theia.denx.de (Postfix) with ESMTPS id 245F04B719 for ; Fri, 11 Sep 2015 13:09:00 +0200 (CEST) Received: from DM2PR03CA0002.namprd03.prod.outlook.com (10.141.96.12) by DM2PR03MB510.namprd03.prod.outlook.com (10.141.87.15) with Microsoft SMTP Server (TLS) id 15.1.262.15; Fri, 11 Sep 2015 11:08:58 +0000 Received: from BN1AFFO11FD028.protection.gbl (2a01:111:f400:7c10::125) by DM2PR03CA0002.outlook.office365.com (2a01:111:e400:2428::12) with Microsoft SMTP Server (TLS) id 15.1.268.17 via Frontend Transport; Fri, 11 Sep 2015 11:08:57 +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 BN1AFFO11FD028.mail.protection.outlook.com (10.58.52.88) with Microsoft SMTP Server (TLS) id 15.1.262.18 via Frontend Transport; Fri, 11 Sep 2015 11:08:57 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id t8BB8Lqj022423; Fri, 11 Sep 2015 04:08:54 -0700 From: Gong Qianyu To: Date: Fri, 11 Sep 2015 19:02:21 +0800 Message-ID: <1441969351-40604-4-git-send-email-Qianyu.Gong@freescale.com> X-Mailer: git-send-email 2.1.0.27.g96db324 In-Reply-To: <1441969351-40604-1-git-send-email-Qianyu.Gong@freescale.com> References: <1441969351-40604-1-git-send-email-Qianyu.Gong@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD028; 1:2rm/3tmtWRvEpxqShQI/EBHVC/qZhl5Xc9C3A6t9oaO1dnkXZLG3seDDRsuwOj2FfqwsiwTClN4vuHvVrUb3OAw9CyT2gWG9KOQRmhmNPEEaVpzGRyiGrb7bXXEy58pB8hOFz0NJIynFUjgMRZINgKelgzY1rK5Ry2clpIhPlEn1LeGLNnGq9Wvinv1sJCd37pA+kijo5DK1GC++ZulgeJyNvOF+Fd0qgyz+3M2VFwfaQ9Mvsu55ZgFpDBIPw4FtAsfSirBFAhZjr2Ux5YibOcQT3uzKDhH/+wLdFDEItOrOmIUNd3IYpSrJEMIibYs+1+Deg1eUc5O5lL0oIUXgaJ2F86jR0/02AUBGJtd5sssWVwF80EMQVVWrkEN8fX06mX3sCF8cIGtN3LOr4rSC1A== X-Forefront-Antispam-Report: CIP:192.88.158.2; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(104016003)(5001860100001)(85426001)(5001830100001)(110136002)(5001960100002)(107886002)(48376002)(50226001)(11100500001)(50466002)(450100001)(86362001)(77156002)(189998001)(62966003)(87936001)(97736004)(5007970100001)(2950100001)(77096005)(68736005)(2351001)(105606002)(106466001)(50986999)(229853001)(76176999)(64706001)(47776003)(5003940100001)(46102003)(92566002)(19580395003)(81156007)(4001540100001)(19580405001)(6806004)(69596002)(36756003)(217873001)(4001430100001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR03MB510; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB510; 2:Tt8rhPDwjpNJHoh/9ky3wPvf0SOi8pYhsBQ+QhG0m8odCGc4KsSuiGIshPHMuEMmeLIGiBWKWh9lmzG1lFyfyvCaHOCtLRVrD1KWwLeP6kKQsakgLd8KLVp5K9n/weLrE4WAUdlPIZ5Jji42sNkhIt24en87k8jcO9OVjLDLAlg=; 3:E6FG2eZB7xefVaTUO10Ds7bTyQSWmt0VlfPP3FLb9tcGmpFVq2lYsir9nWQRJIHIy3UgN0/KTSQA0I8iU6pojPCF/bgqQfhO+IZ1+dBVz0AFBOvXUgklB+3OXaVHPqJzG63j1Nhp3B0y1kCu2bE0tyxAquJYwG9nX+CvjiOmzBK1GHJKwhxQCoh5IbQKRAtaIOW3TeubvvUATKxXcE8qYFcb1TQX763UVZOSyubRgwM=; 25:i87o/5FVdz6VvjfxMrDmso0wV3JV5a/OgxkEH6e5dKZcFCJiwIx0iMxRRfYunVdEktOBHWBHUA/5JAmSYFB18kkogh0ItHNB6oMjh0E6T3/xt7q+iy89YgqDN2bh5BkStoQDJ1oFUUgINCNiyz9W+ND7334g7XSXaMc+wQpubL6wL/kYzxeV/j2jIpPk2Db+e/4aNgDzsGqa+n+SmB/gyyBbUI9EPyI88NqKdQZzQicMa8CMiGuQOC7MkiNTvOkVzqIQ1D1AGkvDoEuOQ/qoig== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB510; X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB510; 20:6FFy+KeRvGpDJ1vrjEUJDNMVkVHTN41VTyYVQP1pnG4CH27B88E1eUeDQWlG6V+ojRGjBrARJA+crgGgdu9Ony6vq65JSDHRP7SNldGyVwEe70ek8D6o/yqoQjemzxSiA26rx/N3E48X//Z6fK9ak0AD904In4aNz5uLy7iNo6bW4NxPKuSfO6WJGsAy9HSx7xhKZMNCv/LkuCZuxwW6UcNloIrtrAb56ONXe3g0Y0FVc7t7zwSe6+USosdTXK/h7kjSBzzBddIJFpZ/74g74YWG40ehwWycKV0/EHZy7fevfuSBis7SihW4pDlB50BmPc+q/0dCU7MKlwk2fQ+FyA8UcZt2K9vExXHY/aHQ5Do=; 4:nSsXFmhhJDARbhYLZ90K+SdVtkGBLIIsFJvKY/bSBLCRzeEU3/yZ1ncgcg4oqQW0yum78Yb8zgNAOsF1MQlAv/2zPe2gVl9gujcDdmtByDPXFBsNNVqeGvRHZ+FCg63C71rctMb0NpmbkIU6RjsXj22uq12swqZczmIj8dDvkH/Ff16MjVAtzuI+JiprKdeI5Zn+z4KH3JzAqmAQW2inslBVU2xDdjJVAbrtVyxRg7SAS5ywC1gJNoynTTSMtu8toqyHccSrdw5gV1oMOB5As0BV5cmxOR38ajkM/Gzk9JBvyxgDp3ElORANMA+pHybs X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(8121501046)(3002001); SRVR:DM2PR03MB510; BCL:0; PCL:0; RULEID:; SRVR:DM2PR03MB510; X-Forefront-PRVS: 06968FD8C4 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR03MB510; 23:v8zWidolidWIkFjU4MaTtzqad3+sTcCnax4VkHWdjr?= =?us-ascii?Q?HhxFpbD7H9xzg9u51sFU7Zn36ZX/XWZfq6q27GysKm2yFhX5h8AZpbLvLFS5?= =?us-ascii?Q?UkjyxXdg/X/OWwWFFR2WFTLXZnueCENbfRvE0SCFNQucoJjSBnlf55gjTNgF?= =?us-ascii?Q?lSEu+xshuIkzH6sGGdjw9ADTGrpuVHGkexadDcAnY1DVh7OEez0STeSvf+8c?= =?us-ascii?Q?kp1BrdI0JqvAQ52uqDkbnuWc43+N5ODxVte2s7Kzt/S9uwsQNyat4RciCJ0F?= =?us-ascii?Q?pvL3jxbTf1FHatLOTm9B8sBNQBcixzNGGq1MLWqq7kmFKUrWKchwP0IvZntK?= =?us-ascii?Q?ydt55OqGRDEuOUBPXseBlC3yuxdP5BEHYzDgLke8P93rVDE/5Nju7D0PLqxo?= =?us-ascii?Q?IN113vHyk0hhTmOkTxoEJ7XRWPlSp2TO7dEg5VRrL0YKtCZhWSvJeLFEYoTG?= =?us-ascii?Q?Oq7ul43K8xwlC/Fk7+8Es//RZt5Oehbs13321YETYzRAhyd0/v4OKihWHNZj?= =?us-ascii?Q?KanQlxJv353/eG6Ghr6r4TBBaa2IvyTXAG1Ie3/4rL2X2N2r3DT/KfchtBz/?= =?us-ascii?Q?ycqPncK1LV9Zjy3pMcL9Xk4Kcr/xQM92vaS5RhbDZcW0tVvk/skiwqvIFeJI?= =?us-ascii?Q?hXgk48Gt95JFWkH7n0+LhIpyirJUFFEXu8wOcGr/k0qvdsxOmqWUWo+ykyUH?= =?us-ascii?Q?433SgUzFVtfH6wEcpnu2uXrJgMoNfL2XxtAFubFouZ5AoS/wox+j6vNWCbrA?= =?us-ascii?Q?Eiat7WYyJSRtIAfNkULnl/Y74ailC+swOtJ33oxt1Js2fmaCsRmL15kDA4hi?= =?us-ascii?Q?CX2Lge4m5uhbomaeksp1FH/kNexJv59UYe1mpTdiQh1xCmsUG3HDYkhR8SfG?= =?us-ascii?Q?eFSWKxayuIKBWo2O9fy4ouqJizNruFMnlxe6kf0muaqN7uZEAHT3KBDko/bM?= =?us-ascii?Q?U1LVRpodz1nJaUOLpxvcsmgunwNfmc2GE941Bu+Q3Y1WXSU4JNANbU/zo7NC?= =?us-ascii?Q?n9adynOuSNiwPXpuc+gCeBWHolFjSOW+eE4C8mU4W1wkZQe974jAqKqGDebu?= =?us-ascii?Q?txUfBcxiskzRZ7OKBMlTbEsvXHNFZBP1Te/wLwPls7S3D6zgLw9A3TosQteP?= =?us-ascii?Q?4MK7t0QA1me1hEW1jiW1BqOdy/xw7GVoCozlYBcykIHDaXGl7eZFv9czmibB?= =?us-ascii?Q?ZdX7GREV67Tq7mo2fPSF/IhpFAxSUbkLUtd19XCw8K5Ruasow7zhg4BHvaTr?= =?us-ascii?Q?5wBckpiKVd7dKb7rxX668nL75b3RemcHMvufV8GMTVet5BWr6Roe/iMghEVP?= =?us-ascii?Q?/UtqeaqTyyQIsJCHLSOVA=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB510; 5:7ltzbcywg7X9RcktE5tSK0KGpg1KKVHbZLH63Gh+a4hZOJ9OryGo7ZXLjpUcEeWDmzD+oDfc9w1zxHSQIStQLNX69b+Xcgaiw/rXKUgfaf75zNMit+jpoOnJNApmByz+N/YShF6m90oMK/LmEfpnWg==; 24:oXBHV7nRGlRPSqO/JjRFG5UTDKdF5+kkHwAysgwpJYJ87DxJNoJvcYjwZb9+XOAIP72boUuHrhYtkLu7TeGpQjKFOCsRSefGaarM/ACMJHc=; 20:Dg1ykCC9ckpW0Bh4dYfhCDrlCP84RACIH4h8Gyo9RdaT4Dv5Ofw7/q5RgPld7mbARrOBKo57IEFrvjN2oeVzgQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Sep 2015 11:08:57.4986 (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: DM2PR03MB510 Cc: Gong Qianyu , Shaohui Xie , b48286@freescale.com, b21284@freescale.com, b53747@freescale.com Subject: [U-Boot] [PATCH 04/14] 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); }