From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E478C433EF for ; Mon, 27 Sep 2021 23:14:13 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2F639611C2 for ; Mon, 27 Sep 2021 23:14:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 2F639611C2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A1ABE82DF0; Tue, 28 Sep 2021 01:14:08 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="bS8UhMB7"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 97F7C82DB1; Tue, 28 Sep 2021 01:14:03 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20631.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::631]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id ABF8B82C45 for ; Tue, 28 Sep 2021 01:13:58 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=vladimir.oltean@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lwnBBp4ueCyBD9uYCAC/40+a3gTJH9s+8ErxW1ZRQyl05JDH1Xzv+6KqGZimKOFEro7rK6qaRgs1wlghRiAa6VBuKCzdt7ZeKalH9VjT3T1dbwrkIugSukZgRVz2zuGLvjhB4SkVcjs8x9x2LCDe87q2ut8CDRJGua3yDDqvUr8/hZtoyS2lOpSUESNddZ/IGlm4pV6L7lfTHttwt5sDfqIDCevHLCYoEQot16k3rxyMsEMkQhhK7UfUGTeZV96Hy2tcI66ZoRa0frqB/NCWwpSKxJ67zVk0jnpvR8MChu24NzvicJvwyH+5XA2gc5F1EToIw5xtlugvgQlnbagvkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=yvArp0JaN+Hfsr9FWO+HtCds2hQhIwck/IJUCuZnr70=; b=KmFMgm9JJ+jZDZKCiucL+Ro8p9dTAvHJhjvIVyyjEaHUg9lXYmn6YD0fb7eUm9yfuJl0+NmgiqYMGnG0C8j9c8qtc4N3T4DXEaI/VKdAkdx7c8qVTWVJJWWxYLo1HOpRTgh/6G3DdwA00zjQtHSoY8IxdnHlaKzU2+Jr2tIR41FmPnqcqgYQCIRvFQOWlw8lUtxdZTRcWGdTx15c8qznEYI8ut8xx6wrJJGenRmWyVYhOcF6U+sfoqKz90BuHixHvSfd3G5lwX3pRByNbY5LGY1mZcKaPvI9eAtsUDoD3q+ilVW7TL/VaL9a9uLhZTmUKyLXHLnah6vC01J8ud29dw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yvArp0JaN+Hfsr9FWO+HtCds2hQhIwck/IJUCuZnr70=; b=bS8UhMB7WlAdBpcxDzFYcKsUZ8Z2aZrGU066AytbvrNXrPclUtdN1jAklWUIEqthraPAr55UDgUgzqqQOL8HHazeKWhR+aDWckWqUt8qGaZ691O/0o4/17etuTlCaTvNgGojC1jy86XuaMK2+REkFXnq9ZLkThoVBmblORFpMkU= Authentication-Results: lists.denx.de; dkim=none (message not signed) header.d=none;lists.denx.de; dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) by VE1PR04MB6701.eurprd04.prod.outlook.com (2603:10a6:803:124::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.15; Mon, 27 Sep 2021 23:13:55 +0000 Received: from VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::e157:3280:7bc3:18c4]) by VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::e157:3280:7bc3:18c4%5]) with mapi id 15.20.4544.021; Mon, 27 Sep 2021 23:13:55 +0000 From: Vladimir Oltean To: u-boot@lists.denx.de Cc: Joe Hershberger , Ramon Fried Subject: [PATCH] net: phy: mscc: add support for VSC8502 in dual RGMII mode Date: Tue, 28 Sep 2021 02:13:42 +0300 Message-Id: <20210927231342.809024-1-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.25.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: AM0PR02CA0140.eurprd02.prod.outlook.com (2603:10a6:20b:28d::7) To VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) MIME-Version: 1.0 Received: from localhost.localdomain (188.26.53.217) by AM0PR02CA0140.eurprd02.prod.outlook.com (2603:10a6:20b:28d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.13 via Frontend Transport; Mon, 27 Sep 2021 23:13:54 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 62cd0e16-702d-4f77-e984-08d9820c7a53 X-MS-TrafficTypeDiagnostic: VE1PR04MB6701: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cfj0Rm3E6P6ndm4gwB+vCjmCMHIbMCCygjQPn7tvujEhXmMPSxdgeDAEpX0mAYN4mXJ4BXhoW9njeij9VCs2Tww5g4dPBrg87NX3ZplDPUtimQ+gwTJ5IeLGEqyNwjz1x4yXBLFUq9huvb0zE6LOliyqPaflX8IDbG8aiNutabrhlk0EjeWP0wc8zE/YnXWcMmza6z8KCtyWsBGEHslaQr9vM810zE8iWtV0len4TRlHxBqcZJSoQY+ifK98W9dqnaii1a/2W9vwbO0oSFjVYnwmB6sb8CGrYjox4ENET2OXxKp9cKZdKK/zv3D98wmeP62k4lHqB2olkh0/tWrV2Je0n7s8sTpTkJDDHcOYyU9xVvHQ8XKpHYZerYIJjzL5HgwU6rfnlyyzhgQMX/XJ68CVzFkdZgNzj7wHDS5GVvPkm5EwNlVbo2tBeiLzwinYNo0ThHtU7Ozkp/UqFnNF05wDlZXbAxrhEgJ4MFAi3jq6g/8jCga4HYGG0N4OC+uSsBcoapglGHs7FDcyXjoO+d75Gh4CI8WC7j/9oxEZCx8gdN+V/mO1g/NlVdWa2j3nOR7KOx2pgfX4yQKIHomGD+LmDdq7TYax2w+m5gMyhBMojvF3NOLg2diSxyrO5RWEMBMj9LjoQ3CLFZRGFtoN21XqLrcFDltB14l5MLBYfSO6Krfx18YjHRzdI0VQgdTRb1JHdCKbNBCybnvjNIfNkQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5136.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(86362001)(1076003)(186003)(26005)(44832011)(66556008)(66476007)(66946007)(316002)(6916009)(4326008)(54906003)(5660300002)(6486002)(52116002)(508600001)(38100700002)(6666004)(6512007)(8676002)(8936002)(2906002)(956004)(83380400001)(2616005)(36756003)(6506007)(38350700002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Y6kswjmQ6tW+Q9WRyY9OWMCyfZjQCA7F33uwb3b7c/EK6BZY3+l0UKS0+XUt?= =?us-ascii?Q?11+qsKSzTkR1j3EG7Ucj+T99c6ZtlaJM9jBXUcwjFd84MkdDF6vYjvOw2ME5?= =?us-ascii?Q?mxDjNw0hMmCiCzRbLAdIvNWK4LdpPE0HPxSeooXkG6TsrPchhRuSguGt9InM?= =?us-ascii?Q?l2AwRc0QP+oz1sTdYmt8BHc5DIagL6++C1oqXu88tzvo23Zdk4ZKlJ78QGMk?= =?us-ascii?Q?Rp7M10haJ9IfybQsMqqlxy71ozXTuIokxLsTW8iHP+YhAQ2qBcl3455ex1ow?= =?us-ascii?Q?qItaPOTIT7pW3N0z0BZ/8Dqya/VnoIh8taFIJUO4ixuMDqp9BpXJT+kgLUKg?= =?us-ascii?Q?aJLitWv5k9Phk8QMz+SLPBL5/D4MyOgkSSdhIJK7R1SPas65nc4UNL8wqauY?= =?us-ascii?Q?bh501jq9JAQhwuSsdfww33fqMP5PaMERTDNdmVr+GaRMx1PH0hcKnKILPdEP?= =?us-ascii?Q?0GD7pGiX218NuvRIZ4PIIKMiWrYx4RA13D7ewbqwxMIL9MBOq5Xf2IceeQDy?= =?us-ascii?Q?Z9BhTSoHIczpsyIdBoxsmnzPmaBEij3U1c9cl3m6pkeEEcPKhuMcR0fOm16S?= =?us-ascii?Q?ozcDHNI9NUpoS/V+ndERIkG468j+3dV0Hiri+BZYPPK8jjEP6JUlilRNcwcf?= =?us-ascii?Q?dmNvfeetf1P1LdxWPbRQJrKtzbVR/JNWYgxZTCBhc6dhw8dw2IdnAbqJ++KS?= =?us-ascii?Q?lpfQcOaS0kWbdRYq7MkB4Eh2XjY6FBwA76jj0fiB9+yDDbsDXn9idvmdane5?= =?us-ascii?Q?2v/t2A9K5Xgrw78r4BzLP6KmnjL1SE3762SiG1ykn/zK+QiZx5LssKKx1JMw?= =?us-ascii?Q?2TcjqJw79fh9ZaIQ7hJd7+/70x5syVyWq0dgYYRfDurlYXYPVwjdsjTdbAhw?= =?us-ascii?Q?3mE3Y63oR9qtstmHh3R9zGC5dxM624eK1KN/irXuXUcbgI7BtoqNl4Xwb22F?= =?us-ascii?Q?XFEDj4HThydOwK9izIq60jlxaQxVeJ796kOpPSnktvmC9pxalX5t2IsfEefb?= =?us-ascii?Q?+aX/evyJbN07QE9rB2croV+cA9JCFHcOp6EvHESUDwhmDCJxYgFlaLOZ44We?= =?us-ascii?Q?SgGvlq388TUEUcrYIXfE2sdMtTxSV1ASr8A6y5AhrzRjXGVG2rS+0ELXATq/?= =?us-ascii?Q?6Rolm6gMB9pfs3UwBz2aTf8JTSDwSrgz2k4RCrQyGQwXlPzTch2zYY2RFou0?= =?us-ascii?Q?Itezk8gFDg7lOlD+c0Qc98veMd/WwiTc+5bBgYtPCBq3ACnDj9WD7paxeqvM?= =?us-ascii?Q?VLFx7vjfgo5KVMWfEFrkfjbN5d2lWaP4u0+s96hUE3kbYWLFoZ615pBrWok7?= =?us-ascii?Q?qHN3SVNjYN6PPl6J1R126VMR?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62cd0e16-702d-4f77-e984-08d9820c7a53 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5136.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2021 23:13:55.5022 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GCyGNWsJTlIlxWfsnH34//ijlrCeURknKyqi1+UCDZakTzheyoBTzhcVPhOKdVomt5HBiIANA6zq4L/LmyQ8eA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB6701 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean The VSC8502 is a Microchip (formerly Microsemi, formerly Vitesse) dual port, gigabit Ethernet copper PHY which supports the MII, GMII and RGMII MAC-side interfaces. Of these, I could only test RGMII, and my board needed RGMII delays to be applied by software, so I am able to confirm that this patch handles that properly. Signed-off-by: Vladimir Oltean --- drivers/net/phy/mscc.c | 56 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/drivers/net/phy/mscc.c b/drivers/net/phy/mscc.c index d1a643cf5a0c..f9482b21a010 100644 --- a/drivers/net/phy/mscc.c +++ b/drivers/net/phy/mscc.c @@ -19,6 +19,7 @@ /* Microsemi PHY ID's */ #define PHY_ID_VSC8530 0x00070560 #define PHY_ID_VSC8531 0x00070570 +#define PHY_ID_VSC8502 0x00070630 #define PHY_ID_VSC8540 0x00070760 #define PHY_ID_VSC8541 0x00070770 #define PHY_ID_VSC8574 0x000704a0 @@ -1513,6 +1514,50 @@ static int vsc8584_config(struct phy_device *phydev) return vsc8584_config_init(phydev); } +static int vsc8502_config(struct phy_device *phydev) +{ + bool rgmii_rx_delay = false, rgmii_tx_delay = false; + u16 reg = 0; + int ret; + + /* Assume nothing needs to be done for the default GMII/MII mode */ + if (!phy_interface_is_rgmii(phydev)) + return 0; + + /* Set Extended PHY Control 1 register to RGMII */ + phy_write(phydev, MDIO_DEVAD_NONE, MSCC_PHY_EXT_PHY_CNTL_1_REG, + BIT(13) | BIT(12)); + + /* Soft reset required after changing PHY mode from the default + * of GMII/MII + */ + ret = mscc_phy_soft_reset(phydev); + if (ret) + return ret; + + if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID || + phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) + rgmii_rx_delay = true; + if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID || + phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) + rgmii_tx_delay = true; + + phy_write(phydev, MDIO_DEVAD_NONE, MSCC_EXT_PAGE_ACCESS, + MSCC_PHY_PAGE_EXT2); + + if (rgmii_rx_delay) + reg |= VSC_PHY_RGMII_DELAY_2000_PS << RGMII_RX_CLK_DELAY_POS; + if (rgmii_tx_delay) + reg |= VSC_PHY_RGMII_DELAY_2000_PS << RGMII_TX_CLK_DELAY_POS; + + phy_write(phydev, MDIO_DEVAD_NONE, MSCC_PHY_RGMII_CNTL_REG, reg); + + phy_write(phydev, MDIO_DEVAD_NONE, MSCC_EXT_PAGE_ACCESS, + MSCC_PHY_PAGE_STD); + + return 0; +} + static struct phy_driver VSC8530_driver = { .name = "Microsemi VSC8530", .uid = PHY_ID_VSC8530, @@ -1533,6 +1578,16 @@ static struct phy_driver VSC8531_driver = { .shutdown = &genphy_shutdown, }; +static struct phy_driver VSC8502_driver = { + .name = "Microsemi VSC8502", + .uid = PHY_ID_VSC8502, + .mask = 0x000ffff0, + .features = PHY_GBIT_FEATURES, + .config = &vsc8502_config, + .startup = &mscc_startup, + .shutdown = &genphy_shutdown, +}; + static struct phy_driver VSC8540_driver = { .name = "Microsemi VSC8540", .uid = PHY_ID_VSC8540, @@ -1577,6 +1632,7 @@ int phy_mscc_init(void) { phy_register(&VSC8530_driver); phy_register(&VSC8531_driver); + phy_register(&VSC8502_driver); phy_register(&VSC8540_driver); phy_register(&VSC8541_driver); phy_register(&VSC8574_driver); -- 2.25.1