From patchwork Wed Jul 1 06:12:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Calvin Johnson X-Patchwork-Id: 1320264 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=oss.nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=U5/C3xh0; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49xWBG6644z9sTT for ; Wed, 1 Jul 2020 16:13:26 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727095AbgGAGNX (ORCPT ); Wed, 1 Jul 2020 02:13:23 -0400 Received: from mail-eopbgr30050.outbound.protection.outlook.com ([40.107.3.50]:52900 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726615AbgGAGNV (ORCPT ); Wed, 1 Jul 2020 02:13:21 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JHEbLntu97Cgc3j7wlsZabxCCKNpPaQdLH7vmi9hKs4C+s1tffxc9cpgvFSiwQX0GN3iABRP7VsRX36gGfhib8jVXzyDT5i7YCNhgNREXUqPY9fsHZZ2rzixOTzDjm5Ldvpdg3Zij7nIN8oAlxccLiMxPsl59Q+4Y2NFPfZF55dPZvrV3tMNxRbpw3t5UMsrjNjl1shzZyz+cLQ+TRp5yLJL7MdXYQu6BXqIDxKZhEOnf9mKOXR1B9xSg0q9nLp672ieBoAAWrPNMSFw+ItVzzch3P7eeXDyzRAc4GVp2ZuXgAkKiobHAgkrA5PXKZPHjOVM2qWDZQHojPyDDUZIkA== 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:X-MS-Exchange-SenderADCheck; bh=sUjv+vktLgapsb4KaKUbBlwzkLzBzn1qoBM+j3UNPxY=; b=KcqafK+WeVVLiMVgqXTF6h6ylQ6lDyYmo3wykP+695I8xt8x/xrffbZESaxFAMg2z/x83iqd6QJwNw6KRV9zMn2lR4Adp0bt4q7F2QW7/fbbz6cG/CiHR0Uf8y6li5nEEMRIocQ4Qf4TEkg9S8mvKvvgjhydUSfUV0oECbC5u0lKJ07K9QWTXRLdK0C6W0Xzyt8o9oTzzMbcxwlzWvYuvfKQmcOow9fZldy8FjDzp8b3eMgxHnbze+VclCrw0rKAida+HeGk93YWC/rh9/gKk+O653Onxyy6O7fKdLqsmWxtqm4KHuT3Popr9Z/aJlEw7ExNP77m9rT1Fe79nNZ9fA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sUjv+vktLgapsb4KaKUbBlwzkLzBzn1qoBM+j3UNPxY=; b=U5/C3xh0FHIu/0yAoWSpb8iFtnjJqICjHpoFlYivmkUfkalDlhLc+nPx28kfy+oeLMHIyv+vvvX6+OAdoliJ13wGe9nbQYZQyFfVSW8n5dp+iBpqwVJlQ7GQZuWBNsyOPiYjZvkXJHzR27dGoPj42eUjJLKuIlqTkRETsnwbKwg= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=oss.nxp.com; Received: from AM0PR04MB5636.eurprd04.prod.outlook.com (2603:10a6:208:130::22) by AM0PR04MB6066.eurprd04.prod.outlook.com (2603:10a6:208:13e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Wed, 1 Jul 2020 06:13:17 +0000 Received: from AM0PR04MB5636.eurprd04.prod.outlook.com ([fe80::7dda:a30:6b25:4d45]) by AM0PR04MB5636.eurprd04.prod.outlook.com ([fe80::7dda:a30:6b25:4d45%7]) with mapi id 15.20.3131.026; Wed, 1 Jul 2020 06:13:17 +0000 From: Calvin Johnson To: Jeremy Linton , Russell King - ARM Linux admin , Jon , Cristi Sovaiala , Ioana Ciornei , Andrew Lunn , Andy Shevchenko , Florian Fainelli , Madalin Bucur Cc: netdev@vger.kernel.org, linux-acpi@vger.kernel.org, linux.cj@gmail.com, Calvin Johnson , "David S. Miller" , Heiner Kallweit , Jakub Kicinski , linux-kernel@vger.kernel.org Subject: [net-next PATCH v2 1/3] net: phy: introduce find_phy_device() Date: Wed, 1 Jul 2020 11:42:31 +0530 Message-Id: <20200701061233.31120-2-calvin.johnson@oss.nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200701061233.31120-1-calvin.johnson@oss.nxp.com> References: <20200701061233.31120-1-calvin.johnson@oss.nxp.com> X-ClientProxiedBy: SG2PR06CA0230.apcprd06.prod.outlook.com (2603:1096:4:ac::14) To AM0PR04MB5636.eurprd04.prod.outlook.com (2603:10a6:208:130::22) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from lsv03152.swis.in-blr01.nxp.com (14.142.151.118) by SG2PR06CA0230.apcprd06.prod.outlook.com (2603:1096:4:ac::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.20 via Frontend Transport; Wed, 1 Jul 2020 06:13:13 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [14.142.151.118] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: a73cf0e4-0900-4c91-b989-08d81d85d852 X-MS-TrafficTypeDiagnostic: AM0PR04MB6066: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-Forefront-PRVS: 04519BA941 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uu1oS4my4DSyZWAZeloPw/DPKwPPu+BKJrNRK6ivSJ+C3pRSRaBXoodj+XA+yZpXftuY6/4Zw0qMULx0yTzFcGuOeU0GcS9xr3O4aw+jKBlvvF2B0eNGV2kdlkc7SswWu6ImzqqaUPu3xBDbcTqUlGUFIfqkCRMbGThAK7crzQx1VWOzQNcIvBYQiePDu7VGgmwOn2MrVRlN0Y/3Oq5/F8vdD7c8eXspiWivl7XM+J25Yriqf2cSutzQvWD0IuGNuH7Ch4qw2zEveBCUUxVbFjViLreU3n2eKh6c13XbzktTRm7seqKr6CrOqVz/EYQ+86uaNMPVBaetNYiQuAmzK0vnfzbREuqpjglkldeL4nXAj7FaX0AImYQmjSiE23xG X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5636.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(39860400002)(376002)(346002)(366004)(136003)(2906002)(6666004)(4326008)(7416002)(6512007)(316002)(110136005)(54906003)(86362001)(1006002)(8676002)(478600001)(66556008)(55236004)(8936002)(5660300002)(186003)(26005)(52116002)(6506007)(44832011)(16526019)(2616005)(956004)(66946007)(66476007)(1076003)(6486002)(6636002)(110426005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 7TDYPFb4njh8B9jQeKqcy1vFkya4a8105K+sem5LBRXaVDqimV5tmI/qagDGsXjb2hIq9IlUrGj36v+JdctqYMeMf4SCFQYTy6AEvfcJSm8abTuFTiIg0F1fEX0xxruUqaGBOJJlVrh4zHZIktJMS5+JfJVm0iM/mkGjuaYDACu6lT+yZ0tYjnNHBHS5t7Ba47zKRi5kSrMvr9XifH0IkJ4eAQtvROLScJjz7OCX6+NRE+iL1den1lYEzCThbYNccXjkiyc/qXOOEZAwa1SebHmA4JlmmnWwojo3OI1EcqqKOXQhpgLklSaKKyUb8SaWwhWwcz4Xp+Hamcpfc3IptpeUnlVnlh3cNxHTACFxuV/fJ7cPlsiAL23Wnlf81T2AlpQHn5eG6IA41JZF1h+uFFjYJSkRfj07P5HeHX3EqPXnfDZck7puTc64EPw6Fy6ctJTOrm4uQF81RybE2OF2aeT57xAF9o7Uv5td/0jOqwbz2nsuH2TX3StgB0kNP1sg X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a73cf0e4-0900-4c91-b989-08d81d85d852 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5636.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 06:13:17.1890 (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: cFymC/F81otse+m7DIuKRc4uLhU7rSK16pxT6aaUuYpq6V13XnK8N+M77fIUUXFvaf5SpLJsGjtoC4W2lq8GHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6066 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The PHYs on a mdiobus are probed and registered using mdiobus_register(). Later, for connecting these PHYs to MAC, the PHYs registered on the mdiobus have to be referenced. For each MAC node, a property "mdio-handle" is used to reference the MDIO bus on which the PHYs are registered. On getting hold of the MDIO bus, use find_phy_device() to get the PHY connected to the MAC. Signed-off-by: Calvin Johnson --- Changes in v2: None drivers/net/phy/phy_device.c | 25 +++++++++++++++++++++++++ include/linux/phy.h | 1 + 2 files changed, 26 insertions(+) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index eb1068a77ce1..417000197ab1 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -966,6 +967,30 @@ struct phy_device *phy_find_first(struct mii_bus *bus) } EXPORT_SYMBOL(phy_find_first); +struct phy_device *find_phy_device(struct fwnode_handle *fwnode) +{ + struct fwnode_handle *fwnode_mdio; + struct platform_device *pdev; + struct mii_bus *mdio; + struct device *dev; + int addr; + int err; + + fwnode_mdio = fwnode_find_reference(fwnode, "mdio-handle", 0); + dev = bus_find_device_by_fwnode(&platform_bus_type, fwnode_mdio); + if (IS_ERR_OR_NULL(dev)) + return NULL; + pdev = to_platform_device(dev); + mdio = platform_get_drvdata(pdev); + + err = fwnode_property_read_u32(fwnode, "phy-channel", &addr); + if (err < 0 || addr < 0 || addr >= PHY_MAX_ADDR) + return NULL; + + return mdiobus_get_phy(mdio, addr); +} +EXPORT_SYMBOL(find_phy_device); + static void phy_link_change(struct phy_device *phydev, bool up) { struct net_device *netdev = phydev->attached_dev; diff --git a/include/linux/phy.h b/include/linux/phy.h index 101a48fa6750..ef9d7ca5d7ba 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -1245,6 +1245,7 @@ int phy_sfp_probe(struct phy_device *phydev, struct phy_device *phy_attach(struct net_device *dev, const char *bus_id, phy_interface_t interface); struct phy_device *phy_find_first(struct mii_bus *bus); +struct phy_device *find_phy_device(struct fwnode_handle *fwnode); int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, u32 flags, phy_interface_t interface); int phy_connect_direct(struct net_device *dev, struct phy_device *phydev, From patchwork Wed Jul 1 06:12:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Calvin Johnson X-Patchwork-Id: 1320265 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=oss.nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=LQmlH0UY; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49xWBK49vLz9sTT for ; Wed, 1 Jul 2020 16:13:29 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727119AbgGAGN3 (ORCPT ); Wed, 1 Jul 2020 02:13:29 -0400 Received: from mail-eopbgr30054.outbound.protection.outlook.com ([40.107.3.54]:63137 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726615AbgGAGN1 (ORCPT ); Wed, 1 Jul 2020 02:13:27 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=amjo4lCx+2svjmZ46nzkJEbpklYgHLFCQNk5Kjox4ltgNQ6OUSdhgaBV5tqff3g5uFBnF2kkLN4ToEG9iqfjAmnngppaIsFnkJ61cqexlFnZE/7TWrcHHikbdqhMnExQHlRROCJAKbjVhITtgGty+XfMXHbbUDFFmr3qBUrkIky2txA52kw/FLJIQ3uD49G8CDW1PFTFyXW+sqs4YeI2a+SiqdeWgBCr5v1Ot+rqXDRWXo0c1Jke1Sp0C9+9NQg59LniNLHW01oBTfWU1ZHnpjvEJHaeWUpbBpvtLcP4bD/KLa9gpgTojblFRPEnIGyBEHD2UWXVDN2X2r305fX65g== 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:X-MS-Exchange-SenderADCheck; bh=0RyyMxoKLb0GzHCNEqeAf9e6bpfPsdTF+a9VNgh+YwA=; b=mQIsPVhn+d3/TJ5uFagw5w8VTHnAZT7puUcAoUM/77IfN76V2C9JYV8sVqabVd0Nq9mpkys8r5gD6vqnSoUPUfewu4/GgyZA8ZHIWHLK/zW3Dt1jvfKg5UbOLd3nb2/vq3w9PcT71A6uzAcloOOQwcWOKV/WvGQpuS6Zk4p57waxJL+c2wSWzcH1mzqOtlJfSHa6wzGxfSp/N6Tdmn/HvLwbGj1S3DyGVp7aiC6zV8bhB2ONsQVP/wDO+n3c4HUF8EGP/ZFh3YNJhe16c8gl6KpQcpxmuqzbljDAnjZu+dfRBhkEU3NIgK4ltodwDWQ1w6CWF9QAlNXI4RU8n6uXDQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0RyyMxoKLb0GzHCNEqeAf9e6bpfPsdTF+a9VNgh+YwA=; b=LQmlH0UYRQIXPA3kCnewy45ZE93vejgEPP4IKFM52RUgXEFKGNqEO0gURmFVrAZQutV64nFlgCq93VLENQSq4HX5xfI2jBOHCVxoT/O5ZeaJQcqirMFp6YFj8sF6Bu7LCkQFud5dMHyOyZGLj8dWrGC4HFh5FG/0c8Gr2BlnLpQ= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=oss.nxp.com; Received: from AM0PR04MB5636.eurprd04.prod.outlook.com (2603:10a6:208:130::22) by AM0PR04MB6066.eurprd04.prod.outlook.com (2603:10a6:208:13e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Wed, 1 Jul 2020 06:13:23 +0000 Received: from AM0PR04MB5636.eurprd04.prod.outlook.com ([fe80::7dda:a30:6b25:4d45]) by AM0PR04MB5636.eurprd04.prod.outlook.com ([fe80::7dda:a30:6b25:4d45%7]) with mapi id 15.20.3131.026; Wed, 1 Jul 2020 06:13:23 +0000 From: Calvin Johnson To: Jeremy Linton , Russell King - ARM Linux admin , Jon , Cristi Sovaiala , Ioana Ciornei , Andrew Lunn , Andy Shevchenko , Florian Fainelli , Madalin Bucur Cc: netdev@vger.kernel.org, linux-acpi@vger.kernel.org, linux.cj@gmail.com, Calvin Johnson , Len Brown , "Rafael J. Wysocki" , linux-kernel@vger.kernel.org Subject: [net-next PATCH v2 2/3] Documentation: ACPI: DSD: Document MDIO PHY Date: Wed, 1 Jul 2020 11:42:32 +0530 Message-Id: <20200701061233.31120-3-calvin.johnson@oss.nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200701061233.31120-1-calvin.johnson@oss.nxp.com> References: <20200701061233.31120-1-calvin.johnson@oss.nxp.com> X-ClientProxiedBy: SG2PR06CA0230.apcprd06.prod.outlook.com (2603:1096:4:ac::14) To AM0PR04MB5636.eurprd04.prod.outlook.com (2603:10a6:208:130::22) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from lsv03152.swis.in-blr01.nxp.com (14.142.151.118) by SG2PR06CA0230.apcprd06.prod.outlook.com (2603:1096:4:ac::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.20 via Frontend Transport; Wed, 1 Jul 2020 06:13:19 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [14.142.151.118] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: eee5a63c-6c7d-4772-4a74-08d81d85dbfe X-MS-TrafficTypeDiagnostic: AM0PR04MB6066: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-Forefront-PRVS: 04519BA941 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9KlUPKAsAd29JSUZzR4bn8r2+sZLwjczm9nvL/v4sObki7bfrn//LO2OpaFfxSDmD9Vup+qkwDqXBbNxTpmsWEdr9PHg2MIpQcUuXG4ctEz1/8w0QX5N/9AbxCu8t552wXXP5ZOGikFSMrrAqKdiHgptsvshfWNpIkOf78baVGPywPrONoPxpyyZYIY7/aIzyqRs3rq4P+VccLynvBF3POqDmlR5NPvUrfqasjLeCl0PW3iPDKBwNTjrXAmH6U3C6EEpfM1TKxmdQUglInFXJM4/4bFIkyS6ehvszq66sIrcDO8+inxybmAxDAARMxFroumVFvN0MpvK8vkfHf3xP8sqdBKebySjD5c/IJ1gIAlwOPEarLmXhrUQCYVznMHK X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5636.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(39860400002)(376002)(346002)(366004)(136003)(2906002)(6666004)(4326008)(7416002)(6512007)(316002)(110136005)(54906003)(86362001)(1006002)(8676002)(478600001)(66556008)(55236004)(8936002)(5660300002)(186003)(26005)(52116002)(6506007)(44832011)(16526019)(2616005)(956004)(66946007)(66476007)(1076003)(6486002)(6636002)(110426005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: Uk25naEvgFYP3Cr4uBZ019rH2SDne0E5JeBIUbCy2YgWGc8j4OHfOWSZzhEgv7JugJfzOAK1akGJrZdpvqeDXw241LfyQQ0Wu3eq3FspCkXfEAF7MwLySwJfJjiWHbuCH1r7XMrk35dYlZYJxJlKxLrD+ykNugjdHEIuFthHHvbeIoETmV3F+mT6DDwc0qhzZNP/gesZCykh84XC7yQrdu1dC/WRhm4YPpara4/QCPK8Ah3twQex1ivdTWQ6ezhl8b9T1EaiUpN8c6qgoJjYxw5VD018gDMxCkXUBDQ+nN9Hr+bdHOQZ3FJzYMSboKEjy/juZNqN6hzwQaRH32TH/Kcb3SX3u9ffJtLxtH+LlX7djztYKVSJC1BF2KTVRXjQLlrUZSFefqhFwNRA9b8+ndQcrgc9VmjRIToR2CcJl2M2ycQD0WNbQfGo+yBp/Vj2umGpBYBCrocYMCgZruVU6NtGPkPwLkJS6Ew4J5XLlAA= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: eee5a63c-6c7d-4772-4a74-08d81d85dbfe X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5636.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 06:13:23.4355 (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: 3jniY1qajGkesX4vY+QtaBIGrwcigfBn9ZQqa3ABjzgy0VaS+QPTmw3TXmW3JsxMDa9hLi2fkaeAJaSu7Ntxuw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6066 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Introduce ACPI mechanism to get PHYs registered on a MDIO bus and provide them to be connected to MAC. An ACPI node property "mdio-handle" is introduced to reference the MDIO bus on which PHYs are registered with autoprobing method used by mdiobus_register(). Signed-off-by: Calvin Johnson --- Changes in v2: None Documentation/firmware-guide/acpi/dsd/phy.rst | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Documentation/firmware-guide/acpi/dsd/phy.rst diff --git a/Documentation/firmware-guide/acpi/dsd/phy.rst b/Documentation/firmware-guide/acpi/dsd/phy.rst new file mode 100644 index 000000000000..78dcb0cacc7e --- /dev/null +++ b/Documentation/firmware-guide/acpi/dsd/phy.rst @@ -0,0 +1,40 @@ +.. SPDX-License-Identifier: GPL-2.0 + +========================= +MDIO bus and PHYs in ACPI +========================= + +The PHYs on a mdiobus are probed and registered using mdiobus_register(). +Later, for connecting these PHYs to MAC, the PHYs registered on the +mdiobus have to be referenced. + +For each MAC node, a property "mdio-handle" is used to reference the +MDIO bus on which the PHYs are registered. On getting hold of the MDIO +bus, use find_phy_device() to get the PHY connected to the MAC. + + +An example of this is show below:: + + Scope(\_SB.MCE0.PR17) // 1G + { + Name (_DSD, Package () { + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package () { + Package (2) {"phy-channel", 1}, + Package (2) {"phy-mode", "rgmii-id"}, + Package (2) {"mdio-handle", Package (){\_SB.MDI0}} + } + }) + } + + Scope(\_SB.MCE0.PR18) // 1G + { + Name (_DSD, Package () { + ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), + Package () { + Package (2) {"phy-channel", 2}, + Package (2) {"phy-mode", "rgmii-id"}, + Package (2) {"mdio-handle", Package (){\_SB.MDI0}} + } + }) + } From patchwork Wed Jul 1 06:12:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Calvin Johnson X-Patchwork-Id: 1320266 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=oss.nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=RurYNZuB; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49xWBX3P8qz9sTV for ; Wed, 1 Jul 2020 16:13:40 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727782AbgGAGNh (ORCPT ); Wed, 1 Jul 2020 02:13:37 -0400 Received: from mail-eopbgr10070.outbound.protection.outlook.com ([40.107.1.70]:60875 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726615AbgGAGNg (ORCPT ); Wed, 1 Jul 2020 02:13:36 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GaziaAgeoINLJA5pIVp7Ebvnzc5kprrtfHWzxG/LbP5xPlA9wQ+D2QRAWn1lzIdT/G6k2NYlT+srKilHVA3+5WtAaEcMBUaUrQuC2e9NDqGYWH6DHAOnzz+WKFJYXUwnIRRuRPp0miwI+C3lACmCz7j+huF5Bvh9M/bRRIlFIvd2l5Sn9pmGSAm7YSxPyFNXoNyIaL2ghqsNp5hXz7bTzItQIxt/Yy+mqhIPI0zByYUMobwG5hQcVBk2ccqolr8/VkewvQNM5/J6Xqs9N5sk5q3GiWQtIYUGn/VfKEFBmwCprit8jAjNxZtsyzZKYGm+fx2DAAwNe8D0WKEDdu9M2g== 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:X-MS-Exchange-SenderADCheck; bh=P/yJw4XIgQtFs3W2W/ixMX1wl2ZZqlrgEKkqFid2SEE=; b=fdwCDOs5Gkbtfh6FY76WWGfeLFtpI9BTOVumRH7ze0NoDY28ABrLgFpFt4yycFsDacITM/VtYYFHBM0Hso7yiMFjoQyru/NxsvTIpM0JkbjUE+ZJ4tH93oCEQw2HvHd1w4amSBu3ZOcgYNGIVlb6x3lm7FCbe4dmJKbWuZEkbYUJV7sHh6mrct0u2ADYx5vX43W/MUPW26dKZSm2NE7yb3TMIJRWN4YqLfMsAin68Q7OFFiLNRaaiMtz2FXJf1zUYSY57IoOyWuW0f9PwemDc/c3j79yifW67bWMUrxWKMyPC1lFZzHhJWHpnZ7yZriN/s3OrJo4aGp4YnpUDnYl+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P/yJw4XIgQtFs3W2W/ixMX1wl2ZZqlrgEKkqFid2SEE=; b=RurYNZuB+3ffpnkoZh7N23KFzQz9w/Ohc2oi4vlWP3V/faU2Zth26fig6IdvCNZTsRwET3As4NMJiwV0bNzEyCezm+D2MWdqHWB5ohDdpSq0ffSx1JPZmC/2jaKiMiyJDbw1afwc3G1NmeY5dXcph//GNtzdMVlmBadN1Tc/IrY= Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=oss.nxp.com; Received: from AM0PR04MB5636.eurprd04.prod.outlook.com (2603:10a6:208:130::22) by AM0PR04MB6066.eurprd04.prod.outlook.com (2603:10a6:208:13e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.25; Wed, 1 Jul 2020 06:13:29 +0000 Received: from AM0PR04MB5636.eurprd04.prod.outlook.com ([fe80::7dda:a30:6b25:4d45]) by AM0PR04MB5636.eurprd04.prod.outlook.com ([fe80::7dda:a30:6b25:4d45%7]) with mapi id 15.20.3131.026; Wed, 1 Jul 2020 06:13:29 +0000 From: Calvin Johnson To: Jeremy Linton , Russell King - ARM Linux admin , Jon , Cristi Sovaiala , Ioana Ciornei , Andrew Lunn , Andy Shevchenko , Florian Fainelli , Madalin Bucur Cc: netdev@vger.kernel.org, linux-acpi@vger.kernel.org, linux.cj@gmail.com, Calvin Johnson , "David S. Miller" , Ioana Radulescu , Jakub Kicinski , linux-kernel@vger.kernel.org Subject: [net-next PATCH v2 3/3] net: dpaa2-mac: Add ACPI support for DPAA2 MAC driver Date: Wed, 1 Jul 2020 11:42:33 +0530 Message-Id: <20200701061233.31120-4-calvin.johnson@oss.nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200701061233.31120-1-calvin.johnson@oss.nxp.com> References: <20200701061233.31120-1-calvin.johnson@oss.nxp.com> X-ClientProxiedBy: SG2PR06CA0230.apcprd06.prod.outlook.com (2603:1096:4:ac::14) To AM0PR04MB5636.eurprd04.prod.outlook.com (2603:10a6:208:130::22) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from lsv03152.swis.in-blr01.nxp.com (14.142.151.118) by SG2PR06CA0230.apcprd06.prod.outlook.com (2603:1096:4:ac::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.20 via Frontend Transport; Wed, 1 Jul 2020 06:13:25 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [14.142.151.118] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ed8617dd-aaac-4a2e-a988-08d81d85dfc8 X-MS-TrafficTypeDiagnostic: AM0PR04MB6066: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:747; X-Forefront-PRVS: 04519BA941 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JBOQwGtn7q5H0QWRs8/wnnsvuW3jJwEVgcDfqy7KwIK+ZhisWfoRMhrpCQhvXxaV8BovSDcnKyNUsphyxImFA7bCoInqpLGRRDJCdcINtSfST7FcyQhZkV4Uf1aXDQQw/miyJl+Xs25b8BY7ptDvcF1N3B0sEY/j8w+foFa2tWIY21/5i6jrhBCefVctXastlFKnThL9c4qnaVbhtoadBAkzqbrwU2nOVmuxoNDKtkwgydx28DKluKyL9dHmg+V8u1+9wFmQFW9HTQhgfwVVuKWxALqCJFjFQMjEYm5F+M+/nKDS/K7DeCED2N/8/ow+JfyYvFKBuzEnZDF6KQ4ZMB613clG8/8WxUMfaRrff/PQiaj7JYuw9ipPy0qx/3LZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB5636.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(39860400002)(376002)(346002)(366004)(136003)(2906002)(6666004)(4326008)(7416002)(6512007)(316002)(110136005)(54906003)(86362001)(1006002)(8676002)(478600001)(66556008)(55236004)(83380400001)(8936002)(5660300002)(186003)(26005)(52116002)(6506007)(44832011)(16526019)(2616005)(956004)(66946007)(66476007)(1076003)(6486002)(6636002)(110426005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: X7GZe1cfBgcBbMx28NbjpekjIiyQJDAFSdDTKoaouHf/lXM9gV2T3DYyu8h4OSI+pztyQa9Z4oVnOp+NRTbczL95VWWiGAEt17a1hhiLulDNbel1lkHd1Yi7H3v2GrGZh1hzpdg+mj8vmECUTE2s2d5KYIqiWucmPfO/nGnNdwZpB/87lAr9IOf4AY7tHwdlczuaWT4kno8JDcjaLYhBeO/8YYQWv4MPB10FlITZvwxakjH6eqB5ivd9eztATAMTKtN9aTfUhX88ooBFF0YQLtl5Cx9v/t0scoNDBL3jN1SQdqXx2F9HgFkRollExA1+XFRGRc/56Sr2jopuyR67hsZNVbhxI8Xsxo6wgkvNM9cf8WasYPW42UFa4VkVp1oBobuhH/gzoOyLWULUMzi1jfY34SoVEzlkBZIBksZC2+XKmJjzNcMkgvypxN0abfoobrVpczcZxDllGpEn0rfFXMgIsaILLUQdCdUMlpZBYlY= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed8617dd-aaac-4a2e-a988-08d81d85dfc8 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB5636.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2020 06:13:29.6779 (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: skYtdUAs6Myh5G7yCRB+EPQqxPb4TQE121pY/ErioJJSAasdqU3VjN81iL17R3jeSA6mzhdAXxfB4G9pII93YQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6066 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Modify dpaa2_mac_connect() to support ACPI along with DT. Modify dpaa2_mac_get_node() to get the dpmac fwnode from either DT or ACPI. Replace of_get_phy_mode with fwnode_get_phy_mode to get phy-mode for a dpmac_node. Define and use helper function find_phy_device() to find phy_dev that is later connected to mac->phylink. Signed-off-by: Calvin Johnson --- Changes in v2: - clean up dpaa2_mac_get_node() - introduce find_phy_device() - use acpi_find_child_device() .../net/ethernet/freescale/dpaa2/dpaa2-mac.c | 79 ++++++++++++------- 1 file changed, 50 insertions(+), 29 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c index 3ee236c5fc37..78e8160c9b52 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c @@ -3,6 +3,8 @@ #include "dpaa2-eth.h" #include "dpaa2-mac.h" +#include +#include #define phylink_to_dpaa2_mac(config) \ container_of((config), struct dpaa2_mac, phylink_config) @@ -23,38 +25,46 @@ static int phy_mode(enum dpmac_eth_if eth_if, phy_interface_t *if_mode) } /* Caller must call of_node_put on the returned value */ -static struct device_node *dpaa2_mac_get_node(u16 dpmac_id) +static struct fwnode_handle *dpaa2_mac_get_node(struct device *dev, + u16 dpmac_id) { - struct device_node *dpmacs, *dpmac = NULL; - u32 id; + struct fwnode_handle *fsl_mc_fwnode = dev->parent->parent->fwnode; + struct fwnode_handle *dpmacs, *dpmac = NULL; + struct device *fsl_mc = dev->parent->parent; + struct acpi_device *adev; int err; + u32 id; - dpmacs = of_find_node_by_name(NULL, "dpmacs"); - if (!dpmacs) - return NULL; - - while ((dpmac = of_get_next_child(dpmacs, dpmac)) != NULL) { - err = of_property_read_u32(dpmac, "reg", &id); - if (err) - continue; - if (id == dpmac_id) - break; + if (is_of_node(fsl_mc_fwnode)) { + dpmacs = device_get_named_child_node(fsl_mc, "dpmacs"); + if (!dpmacs) + return NULL; + + while ((dpmac = fwnode_get_next_child_node(dpmacs, dpmac))) { + err = fwnode_property_read_u32(dpmac, "reg", &id); + if (err) + continue; + if (id == dpmac_id) + return dpmac; + } + } else if (is_acpi_node(fsl_mc_fwnode)) { + adev = acpi_find_child_device(ACPI_COMPANION(dev->parent), + dpmac_id, false); + if (adev) + return (&adev->fwnode); } - - of_node_put(dpmacs); - - return dpmac; + return NULL; } -static int dpaa2_mac_get_if_mode(struct device_node *node, +static int dpaa2_mac_get_if_mode(struct fwnode_handle *dpmac_node, struct dpmac_attr attr) { phy_interface_t if_mode; int err; - err = of_get_phy_mode(node, &if_mode); - if (!err) - return if_mode; + err = fwnode_get_phy_mode(dpmac_node); + if (err > 0) + return err; err = phy_mode(attr.eth_if, &if_mode); if (!err) @@ -231,7 +241,8 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac) { struct fsl_mc_device *dpmac_dev = mac->mc_dev; struct net_device *net_dev = mac->net_dev; - struct device_node *dpmac_node; + struct fwnode_handle *dpmac_node = NULL; + struct phy_device *phy_dev; struct phylink *phylink; struct dpmac_attr attr; int err; @@ -251,7 +262,7 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac) mac->if_link_type = attr.link_type; - dpmac_node = dpaa2_mac_get_node(attr.id); + dpmac_node = dpaa2_mac_get_node(&dpmac_dev->dev, attr.id); if (!dpmac_node) { netdev_err(net_dev, "No dpmac@%d node found.\n", attr.id); err = -ENODEV; @@ -269,7 +280,7 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac) * error out if the interface mode requests them and there is no PHY * to act upon them */ - if (of_phy_is_fixed_link(dpmac_node) && + if (of_phy_is_fixed_link(to_of_node(dpmac_node)) && (mac->if_mode == PHY_INTERFACE_MODE_RGMII_ID || mac->if_mode == PHY_INTERFACE_MODE_RGMII_RXID || mac->if_mode == PHY_INTERFACE_MODE_RGMII_TXID)) { @@ -282,7 +293,7 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac) mac->phylink_config.type = PHYLINK_NETDEV; phylink = phylink_create(&mac->phylink_config, - of_fwnode_handle(dpmac_node), mac->if_mode, + dpmac_node, mac->if_mode, &dpaa2_mac_phylink_ops); if (IS_ERR(phylink)) { err = PTR_ERR(phylink); @@ -290,20 +301,30 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac) } mac->phylink = phylink; - err = phylink_of_phy_connect(mac->phylink, dpmac_node, 0); + if (is_of_node(dpmac_node)) + err = phylink_of_phy_connect(mac->phylink, + to_of_node(dpmac_node), 0); + else if (is_acpi_node(dpmac_node)) { + phy_dev = find_phy_device(dpmac_node); + if (IS_ERR(phy_dev)) + goto err_phylink_destroy; + err = phylink_connect_phy(mac->phylink, phy_dev); + } if (err) { - netdev_err(net_dev, "phylink_of_phy_connect() = %d\n", err); + netdev_err(net_dev, "phylink_fwnode_phy_connect() = %d\n", err); goto err_phylink_destroy; } - of_node_put(dpmac_node); + if (is_of_node(dpmac_node)) + of_node_put(to_of_node(dpmac_node)); return 0; err_phylink_destroy: phylink_destroy(mac->phylink); err_put_node: - of_node_put(dpmac_node); + if (is_of_node(dpmac_node)) + of_node_put(to_of_node(dpmac_node)); err_close_dpmac: dpmac_close(mac->mc_io, 0, dpmac_dev->mc_handle); return err;