From patchwork Wed Jan 23 17:00:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 1030239 X-Patchwork-Delegate: joe.hershberger@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="pfvNoL9t"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43lMQF0vl7z9s7h for ; Thu, 24 Jan 2019 10:47:01 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id D8316C21E15; Wed, 23 Jan 2019 23:46:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_WEB,SPF_HELO_PASS,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 4EB85C21DA1; Wed, 23 Jan 2019 23:45:37 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 43C38C21DD4; Wed, 23 Jan 2019 17:01:07 +0000 (UTC) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30081.outbound.protection.outlook.com [40.107.3.81]) by lists.denx.de (Postfix) with ESMTPS id 4F7A5C21DD4 for ; Wed, 23 Jan 2019 17:01:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OPgAJs1wMA1uSUW24r3N3DZbp7hAybu3QfJgp/dVCNA=; b=pfvNoL9tzNhSUrO/1TUxIe0/L0xFpCYmWWbQCKiJ4UROlgObo8hufbvtwL3fjhNT1UJSbWCxdaMmNV3WqDJYK1fMQNbKWCe4YhQ9y/7x+mOkhVElgbnr6+DcUXOtAlPAFDTqSobJSNLNd8DgyBrSWUcN9zvQWR+TF8f3ejCM0Zw= Received: from DB7PR04MB5163.eurprd04.prod.outlook.com (20.176.235.75) by DB7PR04MB5065.eurprd04.prod.outlook.com (20.176.234.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.16; Wed, 23 Jan 2019 17:01:03 +0000 Received: from DB7PR04MB5163.eurprd04.prod.outlook.com ([fe80::515:3d2f:7821:7703]) by DB7PR04MB5163.eurprd04.prod.outlook.com ([fe80::515:3d2f:7821:7703%5]) with mapi id 15.20.1537.031; Wed, 23 Jan 2019 17:01:03 +0000 From: Vladimir Oltean To: "u-boot@lists.denx.de" , "joe.hershberger@ni.com" Thread-Topic: [PATCH v2 1/3] net: phy: ar803x: Use phy_read_mmd and phy_write_mmd functions Thread-Index: AQHUsz01uzZlYOfSoEKm7kPnQHOcZw== Date: Wed, 23 Jan 2019 17:00:56 +0000 Message-ID: <1548262809-19361-2-git-send-email-vladimir.oltean@nxp.com> References: <1548262809-19361-1-git-send-email-vladimir.oltean@nxp.com> In-Reply-To: <1548262809-19361-1-git-send-email-vladimir.oltean@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: VI1P18901CA0007.EURP189.PROD.OUTLOOK.COM (2603:10a6:801::17) To DB7PR04MB5163.eurprd04.prod.outlook.com (2603:10a6:10:1d::11) authentication-results: spf=none (sender IP is ) smtp.mailfrom=vladimir.oltean@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [86.34.165.90] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR04MB5065; 6:x4i/7rZQezO/kRY0eSt4p6kCpPBfVpOC/qJJqtHCbacpomT7e+itvAKmNl/uXa3ZnuhQ/ulTcwOM3r7FrXQFOeuTEp5sM+TlOFlw19hivD4AcmoN4F4RBhDv+IAs4zxGT7yJFzmf2NXrJ1+3RshfX1YCa9i3NuSXW6ajfit03PdHrWmvHK7+VgKmYFLPi5mubzWNkuexHTK9ycGsWqUQhPGrU8DC9XBIQIrwyRxsfqsBCVJKWc2VBYWohoZaOwzQoDh2GxyQ1mQTu/pyXtew6IQ9jXOnxzD3cq5uesnBPdRkQe6R8cQeMkTAmcZSCoyrUWFvOs+QxVcDefxQAXKU3uvMxUwvUpAaohhhjZ29YKr7ddnDdE7kxXVCHbAxm/d7Lvc7GwJcckDtyFa+WSFBUSyNqEKa5M45nbw0Mt9fToo/4zQ19Hodjvj65fxBYLGIssJ14LJHTH9ysMlBLKyGQQ==; 5:e8QAWUldzcYyjseuvqGiyfyYkljqueoLeyLCKqL0vkSgwBAJ5pDfk3w4/KGX7SiHYXSecMGmVZ+cgIYGd2WrPkDQunWunxERR5lIUILH1csBa0p3wBcpjAAJQ00MP6yj3NVEA2EXDHZtJgQHJYifgaLCkN4/tLL8VhJhsMZRwXHmR/klmIqu2pnzX3+HP2VFFAt8NGsljTtqix4x0F2+Vg==; 7:7It96TrwBNo6kXA0e2pgvxKtxiFOE9h2Po7kyLz+JOSrzmaaL87vTK+DNEAusjRvyb4te34SjeAOJdGe9uPKQ4Nr3vfEYrfjbn0XJr5YnbkQIwLpuWBSVsYXt0X0FQMtidDv90jjC705jqvYaNNtmg== x-ms-office365-filtering-correlation-id: e76af753-5e33-42d8-3cd3-08d6815457a4 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB7PR04MB5065; x-ms-traffictypediagnostic: DB7PR04MB5065: x-microsoft-antispam-prvs: x-forefront-prvs: 0926B0E013 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(396003)(366004)(376002)(346002)(199004)(189003)(6486002)(6512007)(53936002)(106356001)(105586002)(36756003)(6116002)(3846002)(25786009)(86362001)(4326008)(6436002)(76176011)(6506007)(386003)(97736004)(66066001)(52116002)(2501003)(2906002)(316002)(486006)(44832011)(305945005)(99286004)(186003)(54906003)(8936002)(6666004)(8676002)(81156014)(81166006)(26005)(256004)(71190400001)(71200400001)(476003)(446003)(11346002)(478600001)(4744005)(68736007)(2616005)(7736002)(110136005)(102836004)(14454004)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR04MB5065; H:DB7PR04MB5163.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 04LiBigWmjaHGjLT+7o/bCHUCerC/+VmUfCvO1tSRo/pme7rv7WfCJ9PjQMhOHtHLgB8TAN0/TrDzEGhhcUHjnE0+acUNQIdDLNHkayqZDizsin4/Cg0Bt3J25copr9EC00Qp24am5m2iZLIj+pVIqmK2l1fTI+H0bPN9UAavyT4b7RXPb72Jl80TtfAeNcH6T9i0EHT9tRTSif9orDGovpeN0eH1d63SdIj3bkHA8lNfY5icUw8FvTnI5fuRN6P3YuxFxBOQyjz62EDN3h5IL+dlt7soim/TbKyugzEHD3fHEBdDevj8w0nEFMTGS4OJ0TW24/f3PDlV4PgW8z8gH/4ZIVSyfGwOezVASF2GuMA9eTUxKwow1cxkWtS/9F28/FbHXAnTbQXsqBVvC65HMBA2XdV5fERpTIiF2TokTA= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e76af753-5e33-42d8-3cd3-08d6815457a4 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2019 17:00:56.3527 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB5065 X-Mailman-Approved-At: Wed, 23 Jan 2019 23:45:35 +0000 Cc: Vladimir Oltean , "ccaione@baylibre.com" , "joseph.hershberger@ni.com" Subject: [U-Boot] [PATCH v2 1/3] net: phy: ar803x: Use phy_read_mmd and phy_write_mmd functions X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" Signed-off-by: Vladimir Oltean --- Changes in v2: * Patch added in this version. drivers/net/phy/atheros.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/net/phy/atheros.c b/drivers/net/phy/atheros.c index 3783d15..b4066e3 100644 --- a/drivers/net/phy/atheros.c +++ b/drivers/net/phy/atheros.c @@ -57,11 +57,9 @@ static int ar8035_config(struct phy_device *phydev) { int regval; - phy_write(phydev, MDIO_DEVAD_NONE, 0xd, 0x0007); - phy_write(phydev, MDIO_DEVAD_NONE, 0xe, 0x8016); - phy_write(phydev, MDIO_DEVAD_NONE, 0xd, 0x4007); - regval = phy_read(phydev, MDIO_DEVAD_NONE, 0xe); - phy_write(phydev, MDIO_DEVAD_NONE, 0xe, (regval|0x0018)); + /* CLK_25M output clock select: 125 MHz */ + regval = phy_read_mmd(phydev, MDIO_MMD_AN, 0x8016); + phy_write_mmd(phydev, MDIO_MMD_AN, 0x8016, regval | 0x0018); phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05); regval = phy_read(phydev, MDIO_DEVAD_NONE, 0x1e); From patchwork Wed Jan 23 17:00:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 1030236 X-Patchwork-Delegate: joe.hershberger@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="k84eOJ8f"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43lMNt47Lmz9s7h for ; Thu, 24 Jan 2019 10:45:45 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 78D86C21E4E; Wed, 23 Jan 2019 23:45:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, RCVD_IN_SORBS_WEB, SPF_HELO_PASS, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id ACC73C21C38; Wed, 23 Jan 2019 23:45:36 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 08BB2C21CB1; Wed, 23 Jan 2019 17:01:08 +0000 (UTC) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30075.outbound.protection.outlook.com [40.107.3.75]) by lists.denx.de (Postfix) with ESMTPS id D2CE7C21E12 for ; Wed, 23 Jan 2019 17:01:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DgGuerePm2PVGXDs0roAjfpxYQOQMJP9GXcKJcqXNhA=; b=k84eOJ8ff7dNaIbsFvYkEnzgqSBRn9GxM8HoFiCma8+PkszVqmXo4sqzeqjk89ls1B/UrKBRAKd8WAcb9a7YVXpApIQunViDJgjmUz8AGRXU/WtsNz8ryAGVY5ZE+4EZpHSxE1iG4SpiQ0KmdiY+AMJ59Q9JPkp2xtdQeor8RpY= Received: from DB7PR04MB5163.eurprd04.prod.outlook.com (20.176.235.75) by DB7PR04MB5065.eurprd04.prod.outlook.com (20.176.234.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.16; Wed, 23 Jan 2019 17:01:04 +0000 Received: from DB7PR04MB5163.eurprd04.prod.outlook.com ([fe80::515:3d2f:7821:7703]) by DB7PR04MB5163.eurprd04.prod.outlook.com ([fe80::515:3d2f:7821:7703%5]) with mapi id 15.20.1537.031; Wed, 23 Jan 2019 17:01:03 +0000 From: Vladimir Oltean To: "u-boot@lists.denx.de" , "joe.hershberger@ni.com" Thread-Topic: [PATCH v2 2/3] net: phy: ar803x: Address packet drops at low traffic rate due to SmartEEE feature Thread-Index: AQHUsz01y/6zOsO4CE6OCtUnD2JmnQ== Date: Wed, 23 Jan 2019 17:00:57 +0000 Message-ID: <1548262809-19361-3-git-send-email-vladimir.oltean@nxp.com> References: <1548262809-19361-1-git-send-email-vladimir.oltean@nxp.com> In-Reply-To: <1548262809-19361-1-git-send-email-vladimir.oltean@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: VI1P18901CA0007.EURP189.PROD.OUTLOOK.COM (2603:10a6:801::17) To DB7PR04MB5163.eurprd04.prod.outlook.com (2603:10a6:10:1d::11) authentication-results: spf=none (sender IP is ) smtp.mailfrom=vladimir.oltean@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [86.34.165.90] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR04MB5065; 6:7YTACEGNIyMCuDHspGqlZetLgv9w0hRkcSH2Jfs+u323yjlRQTYZ4MvhvKB4jXQcWHIq15hL0amPPB2W6b4bG47OchCNKgTzCUhvdog+ye5t80561OM1gLf0aHr8vR8iZmcNxAlsNKn3RgbuaakfGwVNyqwtnN3TjK7T8KsGFaGzBq/HxbgBRsYw9nT49J2sbk3FVf/29OqAyUpgl72Z94vAZYw4J5njb22sYf2hTw6DaWTnfNGvlcJZp7bHcDg0ovZoo/9vUBX13+DiNZeqpMgvYhUFN6VnlE074+z0NoYt/nmNYe4Er6rW6Kz8rplpVRii7wU7YMrvRYpM1bKtJ+Sp73t3YZ/afUkRJ42xboNhpM489eOpt7oLUL4rmapGnCSEJ6xJ0KwPld8mLjE5RzFDceLW3DKHUajVQMOw2hr5Epx0v/tMAlH9U/lARWocOy0VRNzScKHJExjTFiW72g==; 5:K1GnQuTu/MX4bbkWHYxIMQ9k5GTLFIFOfP0QMolVXA+7x4IjJfBtutx1AqR/zzqcaxgQXJqU6PCu/9Ru33OEFuUorVyNjfrUOr5Q/jvn77V7ILvP25creBhvQTX0zXbJ4qSvaHNywOU3CI0krfsNgjD0lMvo9WbRGjDYEQPACaee5OmJmJnWC1dQmERrKCPfAja3bXwyrOIYkr6OW3muTA==; 7:f0n50PQS9KWBv1cjkVIhl0LePjArgt5hU72YUxeTGFy+kz8S3qxRBaLHj2YT1TbOXi9H2uXIfcpLAtABdU+IcR7JMVaAeS4XLwOm8U88XvfHPhZrSJ5+8teVEUxRDMolqm9O124r86ngPkBv3MZeCg== x-ms-office365-filtering-correlation-id: 300c1c08-1ef6-439b-86ab-08d68154580f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB7PR04MB5065; x-ms-traffictypediagnostic: DB7PR04MB5065: x-microsoft-antispam-prvs: x-forefront-prvs: 0926B0E013 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(396003)(366004)(376002)(346002)(199004)(189003)(6486002)(6512007)(53936002)(106356001)(105586002)(36756003)(6116002)(3846002)(25786009)(86362001)(4326008)(6436002)(76176011)(6506007)(386003)(97736004)(66066001)(52116002)(2501003)(2906002)(316002)(486006)(44832011)(305945005)(99286004)(186003)(54906003)(8936002)(6666004)(8676002)(81156014)(81166006)(26005)(256004)(71190400001)(71200400001)(476003)(446003)(11346002)(478600001)(68736007)(2616005)(7736002)(110136005)(102836004)(14454004)(50226002)(16453002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR04MB5065; H:DB7PR04MB5163.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: y88lUMmsBum6VuknzoI858zT46bpry58/EhtJXzAkv1QABdr3fv/WFU4WlfUG9PYBiTYHkShwcJPMhRqI4IxSWLyMZTQSvIchB1dMUQOw8tVmNJpq7r2z19WoEakVuDsng+xb4skWz7LRQ6yPV4fDwYBNnYA2qhm5dO2ZzTiMojaLKs0LguImVBzSn3pzdi9vidstsWtKslGI6+aTlN9qJQM/vUmuVIHYgGfa3lFj0YbECp+Q0SEs+mJ88fxhWQPoASvcHO2c1ttsD5ZXkEfnQXDFcjZvzgw5XKY5a4jxlKwTedq1ohgcW9MQ2yH08OfRxMZQTg+HZbPeb58ksT0gJXPOqtxsHGdt12upJyHTabIEBbxddzIN3IQc3kUuRBjSj9vJfZxYnhfWL+orNOH3ooQWOVHjg7N0erpx8xcj7Y= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 300c1c08-1ef6-439b-86ab-08d68154580f X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2019 17:00:57.0402 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB5065 X-Mailman-Approved-At: Wed, 23 Jan 2019 23:45:34 +0000 Cc: Vladimir Oltean , "ccaione@baylibre.com" , "joseph.hershberger@ni.com" Subject: [U-Boot] [PATCH v2 2/3] net: phy: ar803x: Address packet drops at low traffic rate due to SmartEEE feature X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" * According to the AR8031 and AR8035 datasheets, smartEEE mode (active by default) makes the PHY enter sleep after a configurable idle time. It does this autonomously, without LPI (Low Power Idle) signals coming from MAC. AR8021 does not appear to support this. * This patch allows disabling the SmartEEE feature of above PHYs. * Tested with ping (default of 1 second interval) over back-to-back RGMII between 2 boards having AR8035 at both ends: - Without SmartEEE: 225 packets transmitted, 145 received, 35% packet loss, time 229334ms - With SmartEEE: 144 packets transmitted, 144 received, 0% packet loss, time 146378ms Signed-off-by: Vladimir Oltean Acked-by: Joe Hershberger --- Changes in v2: * Adapted to use phy_read_mmd and phy_write_mmd functions. drivers/net/phy/Kconfig | 21 +++++++++++++++++++++ drivers/net/phy/atheros.c | 26 ++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig index 3dc0822..6abe8c5 100644 --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig @@ -94,6 +94,27 @@ config PHY_AQUANTIA_FW_NAME config PHY_ATHEROS bool "Atheros Ethernet PHYs support" +config PHY_ATHEROS_SMART_EEE + depends on PHY_ATHEROS + default y + tristate "SmartEEE feature for Atheros PHYs" + help + Enables the Atheros SmartEEE feature (not IEEE 802.3az). When 2 PHYs + which support this feature are connected back-to-back, they may + negotiate a low-power sleep mode autonomously, without the Ethernet + controller's knowledge. This setting may cause issues under 2 known + circumstances (both noticed at low traffic rates): + - If the voltage rails on the PHY are unstable, then the PHY can + actually reset as it enters the low power state. This means that + the frames it is supposed to buffer until it wakes up are going + to be dropped instead. + - If 1588/PTP synchronization is the only traffic source over this + PHY, the delays caused by the sleep/wakeup time are going to add + to the synchronization error between the master and the slave. + Default y, which means that the PHY's out-of-reset state is not + changed (SmartEEE active). To work around the issues described + above, change to n. + config PHY_BROADCOM bool "Broadcom Ethernet PHYs support" diff --git a/drivers/net/phy/atheros.c b/drivers/net/phy/atheros.c index b4066e3..750c11b 100644 --- a/drivers/net/phy/atheros.c +++ b/drivers/net/phy/atheros.c @@ -5,6 +5,7 @@ * Copyright 2011, 2013 Freescale Semiconductor, Inc. * author Andy Fleming */ +#include #include #include @@ -17,6 +18,21 @@ #define AR803x_DEBUG_REG_0 0x0 #define AR803x_RGMII_RX_CLK_DLY 0x8000 +#define AR803X_LPI_EN BIT(8) + +static void ar803x_enable_smart_eee(struct phy_device *phydev, bool on) +{ + int regval; + + /* 5.1.11 Smart_eee control3 */ + regval = phy_read_mmd(phydev, MDIO_MMD_PCS, 0x805D); + if (on) + regval |= AR803X_LPI_EN; + else + regval &= ~AR803X_LPI_EN; + phy_write_mmd(phydev, MDIO_MMD_PCS, 0x805D, regval); +} + static int ar8021_config(struct phy_device *phydev) { phy_write(phydev, MDIO_DEVAD_NONE, 0x00, 0x1200); @@ -29,6 +45,11 @@ static int ar8021_config(struct phy_device *phydev) static int ar8031_config(struct phy_device *phydev) { +#ifdef CONFIG_PHY_ATHEROS_SMART_EEE + ar803x_enable_smart_eee(phydev, true); +#else + ar803x_enable_smart_eee(phydev, false); +#endif if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID || phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) { phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_ADDR_REG, @@ -57,6 +78,11 @@ static int ar8035_config(struct phy_device *phydev) { int regval; +#ifdef CONFIG_PHY_ATHEROS_SMART_EEE + ar803x_enable_smart_eee(phydev, true); +#else + ar803x_enable_smart_eee(phydev, false); +#endif /* CLK_25M output clock select: 125 MHz */ regval = phy_read_mmd(phydev, MDIO_MMD_AN, 0x8016); phy_write_mmd(phydev, MDIO_MMD_AN, 0x8016, regval | 0x0018); From patchwork Wed Jan 23 17:00:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vladimir Oltean X-Patchwork-Id: 1030238 X-Patchwork-Delegate: joe.hershberger@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="TsFNTxnW"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43lMPx5ww5z9s7h for ; Thu, 24 Jan 2019 10:46:45 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 8541BC21DD3; Wed, 23 Jan 2019 23:46:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, RCVD_IN_SORBS_WEB, SPF_HELO_PASS, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id B161EC21DB3; Wed, 23 Jan 2019 23:45:37 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AEC2EC21CB1; Wed, 23 Jan 2019 17:01:08 +0000 (UTC) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30075.outbound.protection.outlook.com [40.107.3.75]) by lists.denx.de (Postfix) with ESMTPS id 1D3F1C21DFA for ; Wed, 23 Jan 2019 17:01:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XBGaJGKQX+gnDSYKnMsWCJbjHQuz05EJnscqGC3RxDA=; b=TsFNTxnW2/y3L6gGHLJ4ranal9H69lZC+oWbmWFaxt4H1wmLCmVRR09WDtUgzizV6OSyHQx5WTYlho0noOhbStX+XIGVxd8odxsF+fM3xorUGrYPqgSKcsNW76eYWuusuQeqSxrc2Lu0c66Gmz8IE0A9Ae+tJJUYKx+2B+W2gKA= Received: from DB7PR04MB5163.eurprd04.prod.outlook.com (20.176.235.75) by DB7PR04MB5065.eurprd04.prod.outlook.com (20.176.234.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.16; Wed, 23 Jan 2019 17:01:04 +0000 Received: from DB7PR04MB5163.eurprd04.prod.outlook.com ([fe80::515:3d2f:7821:7703]) by DB7PR04MB5163.eurprd04.prod.outlook.com ([fe80::515:3d2f:7821:7703%5]) with mapi id 15.20.1537.031; Wed, 23 Jan 2019 17:01:04 +0000 From: Vladimir Oltean To: "u-boot@lists.denx.de" , "joe.hershberger@ni.com" Thread-Topic: [PATCH v2 3/3] net: phy: ar803x: Use common functions for RGMII internal delays Thread-Index: AQHUsz02cVKfpaKf9U6aPhH7buUcrA== Date: Wed, 23 Jan 2019 17:00:58 +0000 Message-ID: <1548262809-19361-4-git-send-email-vladimir.oltean@nxp.com> References: <1548262809-19361-1-git-send-email-vladimir.oltean@nxp.com> In-Reply-To: <1548262809-19361-1-git-send-email-vladimir.oltean@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: VI1P18901CA0007.EURP189.PROD.OUTLOOK.COM (2603:10a6:801::17) To DB7PR04MB5163.eurprd04.prod.outlook.com (2603:10a6:10:1d::11) authentication-results: spf=none (sender IP is ) smtp.mailfrom=vladimir.oltean@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [86.34.165.90] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB7PR04MB5065; 6:fvH7jlbN/FGyqZVbRxHlq8Uyi+1hKUZU937Sc4djHZLCayfbaTadxvjy+evicuc2QuppewMvSoo6PqCVb6lPQvNsiBbYT3AjabEZt4B+cg2nEQic+7qtDtZGdZ7MAuZZb3RR45MuQLqJ2WRKMhjzY9aCUgbwuca9Rt/c2P/qAoJQm+Oa0lapoCDpVGAR3z5fk5S2BB/gqRIEX7XC9ye9JZrBYCgNZ6Ph8HUuj4f0whxPTMkN712Wl9BbSwKoQb+8lI5vzncDWjidYkTS/YYhZW4opS++VgxDBZDV0GxNpyZyyG7zdyykdbk/JkXJx7BEubzAofMhpmrCb98sv4ufO22iBB2N3JqATsTPpp9WhNFydwwjB8YyfYu4gUGsz0qaN16le75caoVAZFdy0z5+HM7wNkinEW2Jj3EAdReGa1W61DkVIzgWeowJBVF91geWC2Ts5lR/prPRpQRckk8JfA==; 5:fSJ46h+peetyYqsLQCEgDfVLBPm+wBt9H91Sc66jkA0+WMsSRbE6JjK5JB/bvjQgrNpSnO40MhyaIiMA4Yb9cgIpHQbe+jaxzKmQpFkxejbCl6+huhla//E695KSGSxFNmgD9nVGOuJLRyF+Kl3zbzF4T0NaQtn0tSgYPT59uu3R5Nck68hBI6ZrwAnPaFha2EpDQczDyP7r85IqJ3h7Pw==; 7:o9NvCI0FkBaAzHJLFSINgfUlh9sS/Qo1xVXD2S/QL0EKY+885ls5ffx4s4kDXhxq9ChA22l00H+6ADIDaj+smwtWJbE96DfunzmfV/RHpMWNU+iyvHk6Jk6nietqs/+9ZXKm5gxxNudNKDA1Ia5KlA== x-ms-office365-filtering-correlation-id: 63f0aa5a-e77f-46ef-a986-08d681545873 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605077)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:DB7PR04MB5065; x-ms-traffictypediagnostic: DB7PR04MB5065: x-microsoft-antispam-prvs: x-forefront-prvs: 0926B0E013 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(136003)(396003)(366004)(376002)(346002)(199004)(189003)(6486002)(6512007)(53936002)(106356001)(105586002)(36756003)(6116002)(3846002)(25786009)(86362001)(4326008)(6436002)(76176011)(6506007)(386003)(97736004)(66066001)(52116002)(2501003)(2906002)(316002)(486006)(44832011)(305945005)(99286004)(186003)(54906003)(8936002)(6666004)(8676002)(81156014)(81166006)(26005)(256004)(71190400001)(71200400001)(476003)(446003)(11346002)(478600001)(68736007)(2616005)(7736002)(110136005)(102836004)(14454004)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB7PR04MB5065; H:DB7PR04MB5163.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: WDIYdtnZX06ZdlsKNoZ8Dop+hpA/GFysPVAHM4ONMePtj9mMDVcFMGhZCXJrJSLBgRXNPUBVs2m3dT3TZQsXEqfG1ka7eQ42t/MHeqzNK9orA8HhWAJjTho5M/bc+BMF9uUjZKjnZVUHkyrA4Me9ElI+SP0pRIJLV9Md7pp7LKMdeed/D4FoOu1TseRPWbMdvRbmjxXopOUOc5DHERUcfLMpOILPrbYm5tzb18pMwQfj1YNopaO9Hso5EiF0qCeL0ghaRQ2PmVIh0+cuaTQSashrsLLWOmxCgazGCzHFquWYctZEqwUYFvbi4yhKNK8Khc0maZZIRniWyc3nhQ7TyMW6GmOCMqJnzlUbvp9HE3R8qKc319YS7syIw2GtIAS3SbmVznAX4XZYrwapTxmlShLgl9C9stGAijKXY41XXIg= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63f0aa5a-e77f-46ef-a986-08d681545873 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2019 17:00:57.7121 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB5065 X-Mailman-Approved-At: Wed, 23 Jan 2019 23:45:35 +0000 Cc: Vladimir Oltean , "ccaione@baylibre.com" , "joseph.hershberger@ni.com" Subject: [U-Boot] [PATCH v2 3/3] net: phy: ar803x: Use common functions for RGMII internal delays X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" Signed-off-by: Vladimir Oltean --- Changes in v2: * Patch added in this version. drivers/net/phy/atheros.c | 76 ++++++++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/drivers/net/phy/atheros.c b/drivers/net/phy/atheros.c index 750c11b..9eb40f7 100644 --- a/drivers/net/phy/atheros.c +++ b/drivers/net/phy/atheros.c @@ -13,10 +13,10 @@ #define AR803x_PHY_DEBUG_DATA_REG 0x1e #define AR803x_DEBUG_REG_5 0x5 -#define AR803x_RGMII_TX_CLK_DLY 0x100 +#define AR803x_RGMII_TX_CLK_DLY BIT(8) #define AR803x_DEBUG_REG_0 0x0 -#define AR803x_RGMII_RX_CLK_DLY 0x8000 +#define AR803x_RGMII_RX_CLK_DLY BIT(15) #define AR803X_LPI_EN BIT(8) @@ -33,11 +33,40 @@ static void ar803x_enable_smart_eee(struct phy_device *phydev, bool on) phy_write_mmd(phydev, MDIO_MMD_PCS, 0x805D, regval); } +static void ar803x_enable_rx_delay(struct phy_device *phydev, bool on) +{ + int regval; + + phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_ADDR_REG, + AR803x_DEBUG_REG_0); + regval = phy_read(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_DATA_REG); + if (on) + regval |= AR803x_RGMII_RX_CLK_DLY; + else + regval &= ~AR803x_RGMII_RX_CLK_DLY; + phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_DATA_REG, regval); +} + +static void ar803x_enable_tx_delay(struct phy_device *phydev, bool on) +{ + int regval; + + phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_ADDR_REG, + AR803x_DEBUG_REG_5); + regval = phy_read(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_DATA_REG); + if (on) + regval |= AR803x_RGMII_TX_CLK_DLY; + else + regval &= ~AR803x_RGMII_TX_CLK_DLY; + phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_DATA_REG, regval); +} + static int ar8021_config(struct phy_device *phydev) { phy_write(phydev, MDIO_DEVAD_NONE, 0x00, 0x1200); - phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05); - phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x3D47); + phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_ADDR_REG, + AR803x_DEBUG_REG_5); + phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_DATA_REG, 0x3D47); phydev->supported = phydev->drv->features; return 0; @@ -51,20 +80,12 @@ static int ar8031_config(struct phy_device *phydev) ar803x_enable_smart_eee(phydev, false); #endif if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID || - phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) { - phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_ADDR_REG, - AR803x_DEBUG_REG_5); - phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_DATA_REG, - AR803x_RGMII_TX_CLK_DLY); - } + phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) + ar803x_enable_tx_delay(phydev, true); if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID || - phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) { - phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_ADDR_REG, - AR803x_DEBUG_REG_0); - phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_DATA_REG, - AR803x_RGMII_RX_CLK_DLY); - } + phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) + ar803x_enable_rx_delay(phydev, true); phydev->supported = phydev->drv->features; @@ -87,25 +108,18 @@ static int ar8035_config(struct phy_device *phydev) regval = phy_read_mmd(phydev, MDIO_MMD_AN, 0x8016); phy_write_mmd(phydev, MDIO_MMD_AN, 0x8016, regval | 0x0018); - phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05); - regval = phy_read(phydev, MDIO_DEVAD_NONE, 0x1e); - phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, (regval|0x0100)); + phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_ADDR_REG, 0x05); + regval = phy_read(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_DATA_REG); + phy_write(phydev, MDIO_DEVAD_NONE, AR803x_PHY_DEBUG_DATA_REG, + regval | 0x0100); if ((phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) || - (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)) { - /* select debug reg 5 */ - phy_write(phydev, MDIO_DEVAD_NONE, 0x1D, 0x5); - /* enable tx delay */ - phy_write(phydev, MDIO_DEVAD_NONE, 0x1E, 0x0100); - } + (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)) + ar803x_enable_tx_delay(phydev, true); if ((phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) || - (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID)) { - /* select debug reg 0 */ - phy_write(phydev, MDIO_DEVAD_NONE, 0x1D, 0x0); - /* enable rx delay */ - phy_write(phydev, MDIO_DEVAD_NONE, 0x1E, 0x8000); - } + (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID)) + ar803x_enable_rx_delay(phydev, true); phydev->supported = phydev->drv->features;