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 BC226C433F5 for ; Wed, 29 Sep 2021 15:05:48 +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 E5844613A6 for ; Wed, 29 Sep 2021 15:05:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E5844613A6 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 9D7D680F16; Wed, 29 Sep 2021 17:05:30 +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="qGOKXfJZ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id EFE9580EF6; Wed, 29 Sep 2021 17:05:21 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2061f.outbound.protection.outlook.com [IPv6:2a01:111:f400:7d00::61f]) (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 89F8A80F12 for ; Wed, 29 Sep 2021 17:05:04 +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=C8egdcfAVboodQ26tFDU/f74k19J5a44yJnowmaAENsZT190vt/9EEzqB+xrdh+czu3msV9f+a+uFt3BCv773XiiqlYFhZxjCHfCdidhI6T+NSKIJED0w8LSI6N/sf74MRChJD8ZH/0AJkj+M3SjSHvfe0E+ps1bhO5OW8yhWvP4QQmC7VLGg1WoFQe1+hXddXte8M674KNTsC89BdbzJtosa6ViEU8pb1xT4mNy2psZC9J/dwumG4EcQVAWLdbxLM6mErs3LQdVJbWeKo/wiK1AhzwmJEO1YIdeZuq3wEXBc1NyPZ3vp5/FdjrBUOmjYjg/YiIIRmSZEqRLKhmXZA== 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=N945dLATCnXBcFA+YIRzctSjG52f6ogR269NxpEWwcI=; b=bYbyKawyiXfsNPaiQpFUCHZighc7XBq3E40E8CnmM71VQancZyrDH+V0fV1hBf1Uu1g9FHghnlOmH2SiTyNN3TOqW7ipj7HiXGvwBWgn491T8eLtK7C+mnOh8tz8tWNQFl8RK1iTAHz+szexyGYYFiN9dLlcioL4BCTCDl1XPYYG2DVGE15Gc5M1KA/Gq7BjwCyY1sfUm5qPpD5LBINmy5oo+6alXShb7x3wudT6ZiTFZywXeYSXCPN+6hodK+ATSe/UYyCP+qQFvr5aUD394iYasq4QasByIy8zRExh/fG1OqUC72plwlz40aB5ZVqUUJmfl3zJC1XfAgnp5stogA== 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=N945dLATCnXBcFA+YIRzctSjG52f6ogR269NxpEWwcI=; b=qGOKXfJZ99M1ZVMjce4MpomB1MPXGaUDqEmUgwSPCymZOD0CVVduff8+KXlQHBal1+kHXsGMo/teHBU257cfupS4etdBk5/UgOzB48h4aPZBHWAAEBn1RhOcRA0U7Qsh0GYKzgRKy5clHK7pNQsKgbWr/ecdtTtjCzk/KdxO2j0= 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 VI1PR0402MB3550.eurprd04.prod.outlook.com (2603:10a6:803:3::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.20; Wed, 29 Sep 2021 15:05:03 +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.022; Wed, 29 Sep 2021 15:05:03 +0000 From: Vladimir Oltean To: u-boot@lists.denx.de, Joe Hershberger , Ramon Fried Cc: Priyanka Jain , Bin Meng , Michael Walle Subject: [PATCH v2 03/10] net: dsa: allow drivers to get the port OF node Date: Wed, 29 Sep 2021 18:04:38 +0300 Message-Id: <20210929150445.1593364-4-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210929150445.1593364-1-vladimir.oltean@nxp.com> References: <20210929150445.1593364-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: AM0PR01CA0171.eurprd01.prod.exchangelabs.com (2603:10a6:208:aa::40) To VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) MIME-Version: 1.0 Received: from localhost.localdomain (188.26.53.217) by AM0PR01CA0171.eurprd01.prod.exchangelabs.com (2603:10a6:208:aa::40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Wed, 29 Sep 2021 15:05:02 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 74c199a2-3dad-415a-04b7-08d9835a83e0 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3550: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SBqEsfpHFEtlJXMgMIXX9Mcs/yIBqw9GHG3v2CnMsn83/793ywA/Sd1iX+OBqUMKtz43d4EFYdeksY0aU+RJaZkoCijv56yDkuF3k5SkaThKDygNGAgqq+dDKRrNBwi3vaIjeJcmVaW78B/Yh70mOou9wRkS/uM1BbNeXgbvoamxY/CNUjXedUT7Xm8SswN+hptaZpEOUobVG1niXRYtgDSF+PqBQoWetomXgDp7+NRKYO2yJgpJjvWuZ6D892eAFd4zpEz2GgnaDCCRhAM13qb/x5f9uvXP3/gmUemOG36Zgs4PV5gfG/FCkwlLUZGAbcB6E4cx1bRDCJYK4RfpWBedNxmsfJYe/kwUu/TQrAHgD4stZwPdL8+oKB8fQovVULIje+oTqznewhHC0S+WEKkbgftAqh+IIRFGFxKEGch3246dlqjsp8knOMBQk65maxUckq/EvC4D5N6LndMQk8wMEsKtyO0Pog62dg1Q14IJpBpVQnbRiAJiiMYl+w4KpS0i/eSoXU7LmQZqNZFcEXm7kNLBJef/qZ7+OFXxgfJyWZHEhgT9VcoAF9hJVTuJGsTGIEmAZwD9zY6WIK+tztdSDhuBfVZwqf1rmsMWAVKvR9sVMqFZpQOg0OGYYVAiK2gX0LbEEjS+8ahGxHUsG4JTyTryIeCQDzfhc6wdGTZHu9l42flYfJZhiyfDm0ac2GKtW5z0/ST/wP9BzAvDSM/hosq6jLEUDOcvZK72X+8= 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)(8936002)(54906003)(83380400001)(66476007)(508600001)(6512007)(2906002)(4326008)(2616005)(44832011)(86362001)(956004)(1076003)(316002)(66946007)(110136005)(36756003)(186003)(6486002)(8676002)(5660300002)(52116002)(38100700002)(6506007)(38350700002)(6666004)(26005)(66556008)(15583001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AyRYJN4LQcVPgvbgNjfIjZpz26zwRpvjfLDYBhCRQUBEcvdRQxtty/TCOmKc?= =?us-ascii?Q?Z0QgUi2A15mQkQ2N9/3rwbE9E5D4wRgXfd9qooU9nh33RqSe1b4RFZhjeYbq?= =?us-ascii?Q?XI+hPpn9Clows+EEOGWY3IssYigPA5oCIwDq5NX9KPlNlybfIMhRAxm2FLaW?= =?us-ascii?Q?nywiQ9DT8nIs7jJLlsmCLRBBw4E7/6PKi6gFvaZ/lymITdiryQXYwa2Nnwj8?= =?us-ascii?Q?Wq+HNEV28jC47zxJvDnW4w7NZXKp2HlYMcLxqyaqXv3/emkGrQLjQD04ZEHH?= =?us-ascii?Q?bHoGxkAph05ZzYGuZ3hBcHVqSf5C8BxJU+j9wikOaso4DbaZQWAfsO5xycCp?= =?us-ascii?Q?f1MiZbEgerdWHsPENQv/4WH7nqHr+/F3oq8TbPtxUas9Jj6rp8Dyy2gFc1VZ?= =?us-ascii?Q?n9Z8Zq3yZIZ7maq6pqVh1RX8LY/9Bp41PKn82bY8ODiigKstx5+g9jA3/CHy?= =?us-ascii?Q?JNBRBAU1DPs+MoZTmipRvmCJlNTeeNvjA6O29YA6gKWUWf136J4t+N8yJfSB?= =?us-ascii?Q?QT7QtWtILFwecQjgAtQ0YXzNl2bW2FAi+ZwNqLkTuebtWL7uty4AVKeeKtRp?= =?us-ascii?Q?sfsEXcGVuFST/42S3iH1kQFAm8SuyDF83EzS/eBYj/weNWny8jaiN78/zJzP?= =?us-ascii?Q?x60cR2ySpat9LIqQBjuDmNtsvwb5mER7c9fZ2RbfITQ89cEd4ouApPmVgrbe?= =?us-ascii?Q?ajMhfB9KiPla5xGuNWv4bleBC1TCvh2R9H5yo4Gdkm+HImkOoUZxXZSOzlYu?= =?us-ascii?Q?Q4ZWHPzlDVbFCC4i/gnxxVDkQCxj5c9DPB+q9ShKPQwSeXuYXY2rFJ5WupPF?= =?us-ascii?Q?4rRPPOQp8ZNgfCWjR3Rejwu+18vK62v8mMbYdush2W3briQA/m8/ABr7RDuS?= =?us-ascii?Q?xmGD8mmpboh4l4uVsIwrV1t/38FVfZ25gP3r3SYRs2Sp00YIouJR9NesuTz4?= =?us-ascii?Q?8ne8boUsvhVLnhQ00IbdL6f7c/voIMLJkNP6FPetiCZs/wzAIaDBEeNyE+PK?= =?us-ascii?Q?dv8Ujauxx+aAd8UG6KJC/GpF3RXJ2m7wu5a5uYAEFZLLvLDMJMtschnGCK6j?= =?us-ascii?Q?v9uxufptR2zU4FmwjgHzSOVIgh52fJHeaV/BkS8oHSfLeRT45P6UYeNf0LIl?= =?us-ascii?Q?8fnAMbaMkcEc8qQZ2+EoYjOku+seIzs/KXTIT+iYusNuknQiKrSYMDypiUW9?= =?us-ascii?Q?8bdpCaxtrj16iGllR8WUJWtkmd84lEAmLiDcFOBMUGvNo+JheKo9jfMxf+Hw?= =?us-ascii?Q?FTn6PDZ9KGhnNg57HWZ2k4cDwOsXc/b5i8OJRapAgCrqGqzxYIYydvmonZAc?= =?us-ascii?Q?2reMnWEM9xpkY7EiYKoMx4ub?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 74c199a2-3dad-415a-04b7-08d9835a83e0 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5136.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Sep 2021 15:05:03.3926 (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: 9D0z06E39PwiNFre/sVsqteOmFp9LzBYo6HJyI/ch4q6Ldhn/4TMFgRMFWZSlinfjCYIhb3qPC8Eo6SQZtuDiA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3550 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 In the current DSA switch driver API, only the udevice of the switch (belonging to UCLASS_DSA) is exposed, as well as an "int port" argument. So drivers do not have access to the udevice of individual ports (belonging to UCLASS_ETH), one of the reasons being that not all ports have an associated UCLASS_ETH udevice. However, all DSA ports have an OF node, and in some cases the driver needs a handle to it, for all ports including the CPU port. Example: the following Linux per-port device tree property: managed = "in-band-status"; states whether a port should operate with clause 37 in-band autoneg enabled or not. This patch exposes a function which can be called by individual drivers as needed. Signed-off-by: Vladimir Oltean Reviewed-by: Ramon Fried --- v1->v2: none include/net/dsa.h | 12 ++++++++++++ net/dsa-uclass.c | 20 ++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/include/net/dsa.h b/include/net/dsa.h index a339a4973033..1b1068cd88ce 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -6,6 +6,7 @@ #ifndef __DSA_H__ #define __DSA_H__ +#include #include #include @@ -145,6 +146,17 @@ int dsa_set_tagging(struct udevice *dev, ushort headroom, ushort tailroom); */ struct udevice *dsa_get_master(struct udevice *dev); +/** + * dsa_port_get_ofnode() - Return a reference to the given port's OF node + * + * Can be called at driver probe time or later. + * + * @dev: DSA switch udevice pointer + * @port: Port index + * @return OF node reference if OK, NULL on error + */ +ofnode dsa_port_get_ofnode(struct udevice *dev, int port); + /** * dsa_port_get_pdata() - Helper that returns the platdata of an active * (non-CPU) DSA port device. diff --git a/net/dsa-uclass.c b/net/dsa-uclass.c index 3b097f75b75c..85b60bd9ea0e 100644 --- a/net/dsa-uclass.c +++ b/net/dsa-uclass.c @@ -44,6 +44,26 @@ int dsa_set_tagging(struct udevice *dev, ushort headroom, ushort tailroom) return 0; } +ofnode dsa_port_get_ofnode(struct udevice *dev, int port) +{ + struct dsa_pdata *pdata = dev_get_uclass_plat(dev); + struct dsa_port_pdata *port_pdata; + struct udevice *pdev; + + if (port == pdata->cpu_port) + return pdata->cpu_port_node; + + for (device_find_first_child(dev, &pdev); + pdev; + device_find_next_child(&pdev)) { + port_pdata = dev_get_parent_plat(pdev); + if (port_pdata->index == port) + return dev_ofnode(pdev); + } + + return ofnode_null(); +} + /* returns the DSA master Ethernet device */ struct udevice *dsa_get_master(struct udevice *dev) { -- 2.25.1