Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2195746/?format=api
{ "id": 2195746, "url": "http://patchwork.ozlabs.org/api/patches/2195746/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260211182230.968921-15-mikhail.kshevetskiy@iopsys.eu/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260211182230.968921-15-mikhail.kshevetskiy@iopsys.eu>", "list_archive_url": null, "date": "2026-02-11T18:22:28", "name": "[v2,14/16] net: airoha: fill in support for PCS/PHY in Airoha Ethernet driver", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "c3c0f0b01dc95e785f737c7be27631df04165ed7", "submitter": { "id": 84987, "url": "http://patchwork.ozlabs.org/api/people/84987/?format=api", "name": "Mikhail Kshevetskiy", "email": "mikhail.kshevetskiy@iopsys.eu" }, "delegate": { "id": 157425, "url": "http://patchwork.ozlabs.org/api/users/157425/?format=api", "username": "jforissier", "first_name": "Jerome", "last_name": "Forissier", "email": "jerome.forissier@linaro.org" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260211182230.968921-15-mikhail.kshevetskiy@iopsys.eu/mbox/", "series": [ { "id": 491892, "url": "http://patchwork.ozlabs.org/api/series/491892/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=491892", "date": "2026-02-11T18:22:15", "name": "net: airoha: PCS and MDIO support for Airoha AN7581 SoC", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/491892/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2195746/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2195746/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=iopsys.eu header.i=@iopsys.eu header.a=rsa-sha256\n header.s=selector1 header.b=uXN57Zfr;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)", "phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=iopsys.eu", "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de", "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=iopsys.eu header.i=@iopsys.eu header.b=\"uXN57Zfr\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=iopsys.eu", "phobos.denx.de;\n spf=pass smtp.mailfrom=mikhail.kshevetskiy@genexis.eu", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=iopsys.eu;" ], "Received": [ "from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fB6L65VTbz1xpY\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 12 Feb 2026 05:25:18 +1100 (AEDT)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id EBCF783D5D;\n\tWed, 11 Feb 2026 19:23:40 +0100 (CET)", "by phobos.denx.de (Postfix, from userid 109)\n id 69BD783CBD; Wed, 11 Feb 2026 19:23:40 +0100 (CET)", "from PA4PR04CU001.outbound.protection.outlook.com\n (mail-francecentralazlp170130007.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c20a::7])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 606FF83E85\n for <u-boot@lists.denx.de>; Wed, 11 Feb 2026 19:23:38 +0100 (CET)", "from DU2PR08MB10037.eurprd08.prod.outlook.com (2603:10a6:10:49a::20)\n by PAWPR08MB11040.eurprd08.prod.outlook.com (2603:10a6:102:46f::5)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb\n 2026 18:23:37 +0000", "from DU2PR08MB10037.eurprd08.prod.outlook.com\n ([fe80::3c7:6d2e:8afe:e4dc]) by DU2PR08MB10037.eurprd08.prod.outlook.com\n ([fe80::3c7:6d2e:8afe:e4dc%4]) with mapi id 15.20.9587.010; Wed, 11 Feb 2026\n 18:23:37 +0000" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_PASS,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=tj9AGRs4e63AFblmut9JsQ2Y/QAg74gpnmWieWZQG3IzVMNkgrS6PqsLRqfHd5z8FSJ4+fVswWbIlCuui7DdXLp3+Crm0J1n788pYyqYjm1ghD+y7sXOkbd+ZA6Po/N58tVkoaj+q1QS+BySm9ofjaeCa16SlnM8zzOxOKQX+ODoet5HvvQN48EWco5xRpBHOyvJicVyFtcj1E5Js1WRSBNzyate9KjPf66oezUQH/X3H2rIsZzlzOVQAG1ixgyWmB+9iJ8sv2/qo9fk8RXYJu2xK34O3eBSxGW4QJ6xbASRz0qQdBNa0La5PS+edHfJbYmMU7q8yDNq0u606MSMaA==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=vP5hFIJdztqe4dteaml2rhz0MQ9qVdie8uIftd1AI2w=;\n b=qdlZRpf30xyYcvGMrjNtyd9IH72eFf5rDGL1c4r5t4ENbCh8oLGpsfeLOJtABHWYC0KXLjrL70lu/d12Y4iNpNi0xCNdO4hpaUvF96j/QJpGGCYtkIkIgLZsbt9bs2jjMIqC2ZTTxLKaxc3or0y26jk6RbljQo3u//PHjzYe5DwyzBcQRpRurQu6bFLp4/Xci6/IU1Fw0xxegMk0+w43Wy1wWBGzTuV8m3Ge4j5fZ/6qVX8q8Ie1VZSoc8Rk6KSOjoNABiVkjiSKQSvcXAF9ytPzY17965rTMOqscWAFzA9ShKkeu9OhFctEUdUxOju2VT3dztaba6zOHHx7RSaHIQ==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=genexis.eu; dmarc=pass action=none header.from=iopsys.eu;\n dkim=pass header.d=iopsys.eu; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=iopsys.eu;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=vP5hFIJdztqe4dteaml2rhz0MQ9qVdie8uIftd1AI2w=;\n b=uXN57Zfr0qiKoAJcZXYXBxnKQCBVenvDytFTlCdxoiuC50T61K3ehiX8xKLcAyCLYkwZDUymlxZGefKTBhDy8WkCkZnWBWBPQrmyy9ZK47QTyfEsgdJSu1xJCnYXiOHI27bVQzGT11f4YXi/8XekvOqJznku+aG1TMcVWYz/sYZDsxo2RK0EuSaumszgl1p0UkSbtKcEzVcOIYl0+qt7MwbWulcNVjmIKDD54/MhU9IMKsyZXFNDxa5B0q3ILK/FFhQn1b1GrjEL8GArJglu9jNkAnQ0pUYQC3ipSMalMYl9TPZvw6BR0xK+Des1xYy4URAYO/soAGHU0rY+wcwsLw==", "From": "Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>", "To": "Tom Rini <trini@konsulko.com>, Christian Marangi <ansuelsmth@gmail.com>,\n Joe Hershberger <joe.hershberger@ni.com>,\n Ramon Fried <rfried.dev@gmail.com>,\n Jerome Forissier <jerome.forissier@arm.com>,\n Ray Liu <ray.xy.liu@gmail.com>,\n Marek Vasut <marek.vasut+renesas@mailbox.org>,\n Paul Barker <paul.barker.ct@bp.renesas.com>,\n Robert Marko <robert.marko@sartura.hr>, Yao Zi <me@ziyao.cc>,\n Greg Malysa <malysagreg@gmail.com>,\n Oliver Gaskell <Oliver.Gaskell@analog.com>,\n Vasileios Bimpikas <vasileios.bimpikas@analog.com>, u-boot@lists.denx.de", "Cc": "Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>", "Subject": "[PATCH v2 14/16] net: airoha: fill in support for PCS/PHY in Airoha\n Ethernet driver", "Date": "Wed, 11 Feb 2026 21:22:28 +0300", "Message-ID": "<20260211182230.968921-15-mikhail.kshevetskiy@iopsys.eu>", "X-Mailer": "git-send-email 2.51.0", "In-Reply-To": "<20260211182230.968921-1-mikhail.kshevetskiy@iopsys.eu>", "References": "<20260211182230.968921-1-mikhail.kshevetskiy@iopsys.eu>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "MI1P293CA0012.ITAP293.PROD.OUTLOOK.COM\n (2603:10a6:290:2::10) To DU2PR08MB10037.eurprd08.prod.outlook.com\n (2603:10a6:10:49a::20)", "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "DU2PR08MB10037:EE_|PAWPR08MB11040:EE_", "X-MS-Office365-Filtering-Correlation-Id": "ec4e581a-1167-41c9-9011-08de699aac2b", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|1800799024|52116014|7416014|376014|366016|921020|38350700014;", "X-Microsoft-Antispam-Message-Info": "\n hK2Cl419PiNWmI/2OfeLgCOA4ARZHU/e2/oLEMCRmRZxE30V4hWZObHIs6MvJqYZupfTcFnkQpAZJk78zmO2fAmZcrasmLh/e1QsBu4FGPgZGVD6tvBsGr1TMJoP2YAFoka4tVQFRoJAk0liqPbmVOE/ZMdvBf6TQC17asDK9DpL/EhnpJOZI+uuCbNRT9mrjnbEvFABa3dSu41dYxSYO2KnWNZWruZUQZKDhzXSuiYg0dUxurHjeztdpJjB5q+NRXM2P0fxAqf8nKrAbrytdhllVNMKhUqQ5WmZQwWzPIi1Pq391tkBKn+eue/Bh5GUc4FqjmX92Ulgm2ZY+QHpbD6DPxtg4aMvo80NDc+rVRLvbR4RlKiH4qFdco98V5MUAFocNklvZO4UwKUqmPdpDJJtXvzR1rbSiGYOioVxhvdvWE5J6DLo196POIFCDAhi5G0ymxjk3ctz3/NbzvFA0gTY/pMiplk1tYbfbl2aOUWJkpSjMZWJYMwceRkmZ7wjewOjOawszG0R3wC/jmdA2kmSOzf/BQIcVzXX5Qz7HKI6J/mFsaqMWENVztRB61MVPJ5w+qxWLQFj641LlpGJKx1DOBjoSf4mgsVN1y2zo008NcHgoEnmeTi/dwltSQOqMsYMqfW5GebHcVPEYyn+S5BTmoQ4jtdnTQAM9zHrdIZNpJlN49sqTsn+LQtrBwFd/c8gdC7PoigOOnZgXV01DwFDyldF9S35t021ugn3ClEVmkbRtwEhJ5fVcjByPY3XS/JfeE31cSmycoinswG7DTlnvom0P4H+astQO7TQDkxt7ie+dzwkMf5UQpn7iCckWwh5WeVnXEnK/JTz4kIesbv2Djs8ERd5UN5OTYiWlmR2T1wgDbdYCIO0s3pqh4e5zfxgKU/wyLIpv77wZqFwUjvDNdsGCJL8KHPG8MT9qiRYAKw5z973Fu702LDDAizbM7M8pnjFX6f7MJJnXj4mP6Er2omq3s4Lx1MkDxd6pw1vnedzqC59fUNG8ZZWkritJn86gTznhunoh9fZDXG6QtYE6Wv8l6EnNHoOYtJkwTdqDJR2tBGGcZFW96g1gkO4ZSXsW33p18Vivxn32ftUQ82Cz1yAncFGJZdX7NTmCGgnXh6+K5A95/rnLG67QMoYRNZg3Q7qN8OvFBX7CopaUFQOkOvPpbCzx9ifVV78Kfp1ghpQbr1pr6b0n6Cox7fpkgdxg/pC7hHdUQC20M/jSd4CH5IqdlwqHmgozdlIuoialWzZhah1q/KfnVPTc7Wz0JggdvWtTWDLZBSsrCAEQ7yBeF+HFBxSh2W4W6C5dYW5rcA2iaee+xLSYlP1/2XwiQ9hQ2sb1ju80ETZPsDdsbkA5SWXYrzTKQmn+Vwu7dQyP642wX2cR3e3eeEhvz7k30bN6tI1CTVCQZq25gb4nE0hV72hmEVoDSVCM2eSo7oyFBb/D2Yml7UWMte0BcIjFwrFD+/iDSUUMPp+KluHqcMq2s8mFggK9k2lHFL/ZsMcX/TmhCihNwLO9y1l+uBwG4rsgRScgPKpfYnLEBZbuYE98vAPGRj9Rz3Fz3aVJ3zVCqwLnho64mwf5/yqneeaHDAmxqocUzkoRyuaBYxIDwi8uP4RhSVrAK0JPBzYq7TYh2Zgp/xF65+XsJC24Kdz", "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:DU2PR08MB10037.eurprd08.prod.outlook.com; PTR:;\n CAT:NONE;\n SFS:(13230040)(1800799024)(52116014)(7416014)(376014)(366016)(921020)(38350700014);\n DIR:OUT; SFP:1102;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n ua/zpWMWgn/V/DxtftCuov5tM1qKTjvhCA7ByWNBEXWtaBJINzyqAen7Ld4nDFvZ5QK1n2hPx9roMOAu/6o1b3kp5/sWbrrRMfbz5GPfsmtQgQganJn2Bm0z9+HlFIUskSnYpx/mde2WrzeCV7IYlb1pBuULcfk6Th53kXluMaaoclozoAo0XTv6RJnWq7vLmuYapg6x3vd/2Ck0bPvsQOXwl8Yugd0vQw+NZpefMfCZm2h1bYm+KiliDU9p1+CNRqgHiF30Xkjog3LNCPLe4gkOB2u5thsbukPaCNoeh7/IQlRXyXsuZR+aTBCJvKsUbJhfn3F+s/CKGsgayXyXmH3iRj8ozJ2hvfVDt3kQqb/IP/RU4drdsyqEvSoBO5zE2sjAuZm47VtyltfyWRuQjCMzhT2V1fbMXA5K/lLluvUnob4L+lYmtSQoZ6iypJbynwXoTujDlqg4jvkqVDfYixRO36En/SjYOPoRX5zx0ibRhPYsS02AhnSeAXwFe7zEXLMOG2cPyoqfNXl04/SkoUfDCtQhOnFnancrHtFsGDTDUG1SeF/mTD3aw6gD3Z6ettX1A5ZSeeiArKi1uoaAZIlyN8JKvGivvzs9PP66jy/NdGmJ+W6KGzMlp7ZyF26ThldwZOyb5mj20s7QoTkVR67YyjK6Rgu1NJNus8+f4zn1AJy9NiG3j/hegcRrDk3CaQEInF/F5x9vYlXQmbQVTYjvtN+1k00y9RlKeH5ghiHi3HFwKNxcfetydFPr+aDPkJ4SY9hahPQBnlOqDbiLbOiLpsJoKh3LAnSZXPI3JUeaqT8ZYnXIO9Vd55GsISBxWWJf6uD7r+44YoToD4Z/UDsKjmb7vaK2pd7GkKH2Lx/He6ozyVVTaqZH9OrVGpdphHqvlMaQaB5HkZLWpL+3Knt5pJrdk1I0e5+OI2fjHHeTAtpsAYtypYV52a/Pe+H6G8Z/6vrxn035AUgtsWfPHFMeSvZCY7QjclFTl/q7ScWRKdzbe22yT+QS2o2pcfP58Ce1+v0d1zWBBSJMxYmtY8aJ8xe4tNbcbBYnS3s1i4Q+zv2/OYfs0QCdSVv+2yTEdGnkQlXezKhTaiD1Wt1vm4S1XHROXE92k6TWfjxM/LcGJxXAB2bzJDH5TJsJp+gr1vjW1ikGyjih0Sa5cmMfGfVhMRsfDOy6PwsPdsxEO4uGkSELnR18/C7TyclUhHz7fOsAhZ9o6wvvOCQy85qKskHpeCV1aqvbHxVttWEY3wwlNLN/0UJdJSxWzdw5S5Cz9qTkhMje0J44dyPtwqqI+HKgq0BUM9CN1Ls0eSoBjeh2Pdt5w5TfHIgmZTLbhlxzuR5y6360qBRr8/VD8oZ0Z6jJkL/8UAklY0WU2YgZpkx1ca9FBq5xgGS+9CHaGdX2xjsf/O676TkUtQsWfs7I6WsP/TZgCh1DK1W7rh2Se66mNMyzfrXGVJP6tqoc3tk2D2uv/jZFxH2LgfMZIr4arJ5f+bDjxwZyfaAl380l5LCcxpTSP816Kc3GaeVl7OvZUgzgcbcxjkzb4QMQXADkXbOfgTO3IsM5AvFxuRCk4gLtNAF6GMGfp9DaJ+l7YaDzilGWCwLY7I2dj88b+fRJD/PHIRR9VDSmZ5tlRMzku+NSIxV1M35WLjCOVgg01geFfZHGgEctlppIuRaK4Ge5KyaSexsldaF+HB6q5Ygx80UXYGpdflDqYam9FPvhKOpFsO0uM4cEiQmwLM7nrklMNyNnuPE/IUaTm0KoB2ZarQw=", "X-OriginatorOrg": "iopsys.eu", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n ec4e581a-1167-41c9-9011-08de699aac2b", "X-MS-Exchange-CrossTenant-AuthSource": "DU2PR08MB10037.eurprd08.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "11 Feb 2026 18:23:36.9915 (UTC)", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-CrossTenant-Id": "8d891be1-7bce-4216-9a99-bee9de02ba58", "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED", "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n 8KVZKOsPA6zOjerJJfMpcKiE4nhlFD66spocHekp6qswmxca3BR9CGrvq+1qChrbb5KOHzgyZPCS9bzsCbxYC39deh3Y2k22XcFAHsmRwUE=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PAWPR08MB11040", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.39", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>", "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de", "X-Virus-Status": "Clean" }, "content": "From: Christian Marangi <ansuelsmth@gmail.com>\n\nAdd required changes to call PCS function to configure the Serdes Port.\nThe Ethernet driver is adapted following Upstream Kernel node structure.\n\nFunction calling order is the same of Phylink upstream kernel.\n\nWith the PCS support, also add support for attaching PHY. With\n\"in-band-status\" set in DT for the managed property, a rudimental\nsupport for SFP module is present.\n\nSigned-off-by: Christian Marangi <ansuelsmth@gmail.com>\n---\n drivers/net/Kconfig | 1 +\n drivers/net/airoha_eth.c | 99 ++++++++++++++++++++++++++++++++++++++++\n 2 files changed, 100 insertions(+)", "diff": "diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig\nindex 8ed6ff2fe3d..27c6a61de39 100644\n--- a/drivers/net/Kconfig\n+++ b/drivers/net/Kconfig\n@@ -128,6 +128,7 @@ config AIROHA_ETH\n \tdepends on ARCH_AIROHA\n \tselect PHYLIB\n \tselect DEVRES\n+\tselect DM_ETH_PHY\n \tselect DM_RESET\n \tselect MDIO_MT7531_MMIO\n \thelp\ndiff --git a/drivers/net/airoha_eth.c b/drivers/net/airoha_eth.c\nindex fef803ca167..d5b9da6bc18 100644\n--- a/drivers/net/airoha_eth.c\n+++ b/drivers/net/airoha_eth.c\n@@ -13,6 +13,7 @@\n #include <dm/devres.h>\n #include <dm/lists.h>\n #include <mapmem.h>\n+#include <miiphy.h>\n #include <net.h>\n #include <regmap.h>\n #include <reset.h>\n@@ -20,11 +21,14 @@\n #include <linux/bitfield.h>\n #include <linux/delay.h>\n #include <linux/dma-mapping.h>\n+#include <linux/ethtool.h>\n #include <linux/io.h>\n #include <linux/iopoll.h>\n #include <linux/time.h>\n #include <asm/arch/scu-regmap.h>\n \n+#include \"airoha/pcs-airoha.h\"\n+\n #define AIROHA_MAX_NUM_GDM_PORTS\t4\n #define AIROHA_MAX_NUM_QDMA\t\t1\n #define AIROHA_MAX_NUM_RSTS\t\t3\n@@ -319,6 +323,12 @@ struct airoha_qdma {\n struct airoha_gdm_port {\n \tstruct airoha_qdma *qdma;\n \tint id;\n+\n+\tstruct udevice *pcs_dev;\n+\tphy_interface_t mode;\n+\tbool neg_mode;\n+\n+\tstruct phy_device *phydev;\n };\n \n struct airoha_eth {\n@@ -694,6 +704,34 @@ static int airoha_qdma_init(struct udevice *dev,\n \treturn airoha_qdma_hw_init(qdma);\n }\n \n+static int airoha_pcs_init(struct udevice *dev)\n+{\n+\tstruct airoha_gdm_port *port = dev_get_priv(dev);\n+\tstruct udevice *pcs_dev;\n+\tconst char *managed;\n+\tint ret;\n+\n+\tret = uclass_get_device_by_phandle(UCLASS_MISC, dev, \"pcs\",\n+\t\t\t\t\t &pcs_dev);\n+\tif (ret || !pcs_dev)\n+\t\treturn ret;\n+\n+\tport->pcs_dev = pcs_dev;\n+\tport->mode = dev_read_phy_mode(dev);\n+\tmanaged = dev_read_string(dev, \"managed\");\n+\tport->neg_mode = !strncmp(managed, \"in-band-status\",\n+\t\t\t\t sizeof(\"in-band-status\"));\n+\n+\tairoha_pcs_pre_config(pcs_dev, port->mode);\n+\n+\tret = airoha_pcs_post_config(pcs_dev, port->mode);\n+\tif (ret)\n+\t\treturn ret;\n+\n+\treturn airoha_pcs_config(pcs_dev, port->neg_mode,\n+\t\t\t\t port->mode, NULL, true);\n+}\n+\n static int airoha_hw_init(struct udevice *dev,\n \t\t\t struct airoha_eth *eth)\n {\n@@ -714,6 +752,10 @@ static int airoha_hw_init(struct udevice *dev,\n \tif (ret)\n \t\treturn ret;\n \n+\tret = reset_deassert_bulk(ð->xsi_rsts);\n+\tif (ret)\n+\t\treturn ret;\n+\n \tmdelay(20);\n \n \tfor (i = 0; i < ARRAY_SIZE(eth->qdma); i++) {\n@@ -884,6 +926,7 @@ static int airoha_eth_port_probe(struct udevice *dev)\n {\n \tstruct airoha_eth *eth = (void *)dev_get_driver_data(dev);\n \tstruct airoha_gdm_port *port = dev_get_priv(dev);\n+\tint ret;\n \n \tport->qdma = ð->qdma[0];\n \n@@ -891,6 +934,14 @@ static int airoha_eth_port_probe(struct udevice *dev)\n \tif (ret)\n \t\treturn ret;\n \n+\tif (port->id > 1) {\n+\t\tret = airoha_pcs_init(dev);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\n+\t\tport->phydev = dm_eth_phy_connect(dev);\n+\t}\n+\n \treturn 0;\n }\n \n@@ -910,6 +961,47 @@ static int airoha_eth_init(struct udevice *dev)\n \t\t\tGLOBAL_CFG_TX_DMA_EN_MASK |\n \t\t\tGLOBAL_CFG_RX_DMA_EN_MASK);\n \n+\tif (port->id > 1) {\n+\t\tstruct phy_device *phydev = port->phydev;\n+\t\tint speed, duplex;\n+\t\tint ret;\n+\n+\t\tif (phydev) {\n+\t\t\tret = phy_config(phydev);\n+\t\t\tif (ret)\n+\t\t\t\treturn ret;\n+\n+\t\t\tret = phy_startup(phydev);\n+\t\t\tif (ret)\n+\t\t\t\treturn ret;\n+\n+\t\t\tspeed = phydev->speed;\n+\t\t\tduplex = phydev->duplex;\n+\t\t} else {\n+\t\t\tduplex = DUPLEX_FULL;\n+\n+\t\t\t/* Hardcode speed for linkup */\n+\t\t\tswitch (port->mode) {\n+\t\t\tcase PHY_INTERFACE_MODE_USXGMII:\n+\t\t\tcase PHY_INTERFACE_MODE_10GBASER:\n+\t\t\t\tspeed = SPEED_10000;\n+\t\t\t\tbreak;\n+\t\t\tcase PHY_INTERFACE_MODE_2500BASEX:\n+\t\t\t\tspeed = SPEED_2500;\n+\t\t\t\tbreak;\n+\t\t\tcase PHY_INTERFACE_MODE_SGMII:\n+\t\t\tcase PHY_INTERFACE_MODE_1000BASEX:\n+\t\t\t\tspeed = SPEED_1000;\n+\t\t\t\tbreak;\n+\t\t\tdefault:\n+\t\t\t\treturn -EINVAL;\n+\t\t\t}\n+\t\t}\n+\n+\t\tairoha_pcs_link_up(port->pcs_dev, port->neg_mode, port->mode,\n+\t\t\t\t speed, duplex);\n+\t}\n+\n \treturn 0;\n }\n \n@@ -918,6 +1010,13 @@ static void airoha_eth_stop(struct udevice *dev)\n \tstruct airoha_gdm_port *port = dev_get_priv(dev);\n \tstruct airoha_qdma *qdma = port->qdma;\n \n+\tif (port->id > 1) {\n+\t\tif (port->phydev)\n+\t\t\tphy_shutdown(port->phydev);\n+\n+\t\tairoha_pcs_link_down(port->pcs_dev);\n+\t}\n+\n \tairoha_qdma_clear(qdma, REG_QDMA_GLOBAL_CFG,\n \t\t\t GLOBAL_CFG_TX_DMA_EN_MASK |\n \t\t\t GLOBAL_CFG_RX_DMA_EN_MASK);\n", "prefixes": [ "v2", "14/16" ] }