From nobody Fri Jun 19 07:17:52 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5A59DC352A7 for ; Thu, 7 Apr 2022 01:31:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240945AbiDGBaa (ORCPT ); Wed, 6 Apr 2022 21:30:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60868 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240533AbiDGBUE (ORCPT ); Wed, 6 Apr 2022 21:20:04 -0400 Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on2120.outbound.protection.outlook.com [40.107.215.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 30480186D8; Wed, 6 Apr 2022 18:18:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ehZteNDXk23z9bdsVUGzvsGfFR9jLLHUuXNFL/KFI9WV1vuzVT3TREzxpAaKALaOKsnaCJ/BMBo7T31qdK+o3HB/IS5g7h8GXwrGMUvgzlw4XLcNpTcDudoFF3vBg+spUp3MzhxsUDmvRspmbgFL479RZpvCUoSOiHnsELjK6x0/fJGP0+dWywBoGu4asQoUyToncnqi0Hy2X3mZ/pc3DJSkBWM/JPG5sOSayLuKkppdCmaX/JUOR8Tqh9Jm5DT6sOIDJ+BifjJqIEFs5OOs5Sfhjrb2BDDt4nQBfVPS+49sKRVEE1GQIxbccMb4AQjavwYhu4KnJL4fLLL72HLnSQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Anl4BOgxOJcNkkwR9UNxcA7AJ3mvnQvkslP7Ixl0VUk=; b=gxHprgkA36CaRyHzG1ew7C16ktN91/f0mwuQZGUE9ayMIO8uKK8l1gbvTBCunGAed6j1RLNLR6sVowTshqqr7QnekxujZZGAaogquKknvJXLZlkZBbKa+2NgDXujogunPfOCpXJMD7HBAFmGDwP80O/6uDWyOhbOsNwpTwWq/VRrbduRlK9kq/P4XPdUkXTIpch0/wIg89j1d8SHtj0OR+z4KSz+xxJLa6w/Yv21eS4TZwqsA3eILoDpXVGsCsf13Wd15Pq/rzOEdpqo4WfDCt3DauYVyVkdC+ySj1pOQpOrhr42MhtxAxrcdUog1MNXkEu9RGJMB9TKyq7wRQgxQQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=quantatw.com; dmarc=pass action=none header.from=quantatw.com; dkim=pass header.d=quantatw.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantacorp.onmicrosoft.com; s=selector2-quantacorp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Anl4BOgxOJcNkkwR9UNxcA7AJ3mvnQvkslP7Ixl0VUk=; b=GgKsuL2hccf4u8o8URCp0x9hRyqywFtOKiIPhW4tgDaFLQ4jtRJ0/4ykMw9C0oe0rY7AVAU5z85DiS+N9Y6qpDgrhcj2ika8SynOJwTBWgO8dFOLEqLOVgDZoB0ChtlLPU90/+FF0hc9Pozp1+ZRgJbzsFCWQ8qoN18f7Rz4nIY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quantatw.com; Received: from SG2PR04MB3285.apcprd04.prod.outlook.com (2603:1096:4:6d::18) by TY2PR04MB3167.apcprd04.prod.outlook.com (2603:1096:404:a0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.22; Thu, 7 Apr 2022 01:18:01 +0000 Received: from SG2PR04MB3285.apcprd04.prod.outlook.com ([fe80::e94c:1300:a35a:4a1c]) by SG2PR04MB3285.apcprd04.prod.outlook.com ([fe80::e94c:1300:a35a:4a1c%2]) with mapi id 15.20.5102.035; Thu, 7 Apr 2022 01:18:01 +0000 From: Potin Lai To: Andrew Lunn , Heiner Kallweit , Russell King , davem@davemloft.net, Jakub Kicinski , Joel Stanley , Andrew Jeffery Cc: netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org, Patrick Williams , Potin Lai Subject: [PATCH net-next v3 1/3] net: mdio: aspeed: move reg accessing part into separate functions Date: Thu, 7 Apr 2022 09:17:36 +0800 Message-Id: <20220407011738.7189-2-potin.lai@quantatw.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220407011738.7189-1-potin.lai@quantatw.com> References: <20220407011738.7189-1-potin.lai@quantatw.com> X-ClientProxiedBy: HK2PR02CA0143.apcprd02.prod.outlook.com (2603:1096:202:16::27) To SG2PR04MB3285.apcprd04.prod.outlook.com (2603:1096:4:6d::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9828f007-1f02-4232-e26c-08da1834754b X-MS-TrafficTypeDiagnostic: TY2PR04MB3167:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: V13B3FpWga5bz3OE3CMgoHD/4NURKc+R1Qv7ieliJfVO6vtcTHfgY6GGnkHGgaFTKTTID8F9i6Uhkk63h1M3xQQDc+yW4SS6QTyyBqmojZclXmcL6/HWGcuzN+Nvuc9Ftl4wneb9x6Y6keZszb3S0SB7XQDNAuwv5EuSkTX5M4Kke0wbtSCBHliHDDM/UstbH/Cq0DadiLcLC7T39gVY/DN0EGPyQfxhMxuZXxLAV4MUuy7X26gJzrkV9FeRelpXINYIevSZw9UvK4dbcefJ7y/T3RipP54To7DgT/B48G49N0830+6i2BbJYzx3SF+q2NKNWb5XhQ7sxZM1335wO6Y4dR1vXhnLCOUAFmlzTa8FPbmikIpMmCc/sUbxEnXmFsj4IKcOp5t619qYvyNORb1pcvid5ZtkTnDgcqqV/Fk8c3qO/Hxhcb22BZp3oSisLvigJpx+wRJQThlIiIqxIpg5josgeEbMn4By0h4zyQ5XoE6cG0SuDrxT3QgUBNg+JKDDZH6DZcLimmuFPAPY9j0Ef6pwMUA+z602IVocvPrWniw7911qVZQrLdB6Wc1tqtUpAPiLUCcJI9CJnvE0arrG6ywaDJ3JmccmLP350Ej7od+WhoR/99OHhHrhXHWcJR661+tEkJ5gLh75cTqrHD9xCjaVYto80zZi0sasc8LxW3mQNmF+32pffB//iZsexHKC97hwk67DIIiruxGyfQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SG2PR04MB3285.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(6506007)(7416002)(36756003)(316002)(110136005)(52116002)(2906002)(54906003)(6666004)(107886003)(8936002)(44832011)(2616005)(5660300002)(6512007)(38350700002)(38100700002)(4326008)(66556008)(86362001)(186003)(26005)(6486002)(66946007)(508600001)(83380400001)(1076003)(8676002)(66476007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wqfAqd/O8NLPaTy0Un6F9+BqgLpH6F8K/lAIe1thum4ihFQduS2RPo45oB11?= =?us-ascii?Q?j7BM8gWbHEz4lS7/g7UuOe/nDpxB3pqAFo2gWS2Jaqa1rbde+/KqLHrsQAXE?= =?us-ascii?Q?1Eas/NfYI8gw88TPSv2kCR4j5at+jHtYCGQGYUghYxH/hX2TcKAbYVEoc9y5?= =?us-ascii?Q?IT6EDktG+EK8x9ncc8wCKf5dqGnFlOCFyLY428KdTTKPh+z7iDF3vgEQxtXr?= =?us-ascii?Q?SBsFDMWFC3mZcAz5ZONYUu2iJdKVyQvvSDJIO+4eOmeRTh/9l0DClDuf11g5?= =?us-ascii?Q?1kRoJb4gS6KBojaAn7y2n2UFAaEspKMOjzXPNxI7j5Oc5XMINu8vAhPLxo+a?= =?us-ascii?Q?UFDjxn3GQMuaIwGzIbJTa7S036H/45pyRSs7AnWt3yZU607QIKxFyW8XAlZT?= =?us-ascii?Q?cba7CUIuR4p7rXbWwSnvAnr2VU4l1fCRUIg22/WBBMINtb5aUJrn5HZst1yk?= =?us-ascii?Q?aZzahfLwPZ926kNib+koGnubdxoDUGX0oIfMuHGBJGiadIWE5lU3d9avQ6HI?= =?us-ascii?Q?sLA97qEZ2wOwY98/uuVSm0rLVnCgvQJfrKdS2rSA9CmSKr1HF4hxwbfMy4F3?= =?us-ascii?Q?X+rQtb7QlO1Q4jd7Jb6hJng5ok3Elu+Uo8tXP5/uU0w+hrNVZ/WyitF13LIa?= =?us-ascii?Q?798vzI6GnrjbZYUSyNNXQBOfr+5O/RQAwcekLDaxx0fq7Y4RP9YUVZorD3p7?= =?us-ascii?Q?GhI/Lq56xmTxuPl2LR8uvS0DXR6IL0lHVVd7nfE0130G7pRW5r2xm7PQVI/9?= =?us-ascii?Q?+9/S1R3RchsTq8VXg9UWZQ24upWo1YereVvn44VQ420NQtzDyNkt0Msmohxr?= =?us-ascii?Q?GJCh6BytPqvHO5eMj31AinFwMb1VHCUeAyytxmUW4THx+t93p+Z+xNFSGSDn?= =?us-ascii?Q?qeO0HaOkupcnplg7WT33LR+d3jltFOvNhf7b7J67khD3awsOi/2iPBox/y42?= =?us-ascii?Q?8t1O7t7dRg1b0b/j88rtglFvPT2/yPc9OskIoYdM2A7y20OGwWbBV+ppUoLq?= =?us-ascii?Q?mxLz6lpm+sC1Ca4bp6Vap7UPGpI/cufvnx20l0zWa1vBYizRUdQaLguTmGjM?= =?us-ascii?Q?74WM0z9t4wb4fPM9a/p6H6aWIqJnzEklsQKx8aYI2wxdvSmq7jcFBAbLYsyc?= =?us-ascii?Q?m4l9t51rLEqjwCXFReGvROA/a4tqM1eK1sD3433OVTMBhxAzXTuGynnCVndz?= =?us-ascii?Q?r3ChY8U6ne7sIPlULj8ANMTylU5JhV3iD/wpUpyNhn/QZCOHSwWFlrr2EyaL?= =?us-ascii?Q?BC5gyg+KVxg30q+iEqUsvyGrAmDi16WtKKt0Qf+WqbO2HtQoId0g/wVDBfCX?= =?us-ascii?Q?la6GSwggdTd+pg02UyVxMXhiQvEBruPDxucfD2Jn94OKhFEosxdnoRzgAlNZ?= =?us-ascii?Q?6fvKCmT+3O8JYs6ewP6L9mFwmE34te69HnlFpaGx6PUfIk+bwDtQQ/0ca+qC?= =?us-ascii?Q?DaFLsDXlu11TaIUWHvM4rYYd3O0sGx7xrvUjyzIIIEOBt7I2NgmtwhGjRGlq?= =?us-ascii?Q?QE3w1OvZIJPk1voxJf0sSSFhjqFfdd1NkUQwZ0PUhtPGip5dZenCkR3reqKY?= =?us-ascii?Q?zOGbrlkJbtfuQCch/sH1cH4BI/SUhcN3f31+trK4A7nJ4355SqN7xlJ/v+kG?= =?us-ascii?Q?Ofi61LWUSNED9zIKyqO2TPMLxctCjCi/9vaVXsge09KBjhfLIllRDn6qe78s?= =?us-ascii?Q?4XiJkCUHHe+EFAmknwgYgMNvJcazPFfoRo1/rDgaxahVEKY85NSoS3+KGUDm?= =?us-ascii?Q?0aHiLkkRYiHJxkZH2GwqLz0xCMEps3M=3D?= X-OriginatorOrg: quantatw.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9828f007-1f02-4232-e26c-08da1834754b X-MS-Exchange-CrossTenant-AuthSource: SG2PR04MB3285.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2022 01:18:01.3963 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 179b0327-07fc-4973-ac73-8de7313561b2 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /ijN2kYSJlh4kd0jz2iN625nwOqjIcGSFH4jH5dhav04fZVA89nyTYlSUSQU4xu6/No8mRKcSv++gilNC8k/Rg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PR04MB3167 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add aspeed_mdio_op() and aseed_mdio_get_data() for register accessing. aspeed_mdio_op() handles operations, write command to control register, then check and wait operations is finished (bit 31 is cleared). aseed_mdio_get_data() fetchs the result value of operation from data register. Signed-off-by: Potin Lai Reviewed-by: Andrew Lunn --- drivers/net/mdio/mdio-aspeed.c | 70 ++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/drivers/net/mdio/mdio-aspeed.c b/drivers/net/mdio/mdio-aspeed.c index e2273588c75b..f22be2f069e9 100644 --- a/drivers/net/mdio/mdio-aspeed.c +++ b/drivers/net/mdio/mdio-aspeed.c @@ -39,34 +39,35 @@ struct aspeed_mdio { void __iomem *base; }; =20 -static int aspeed_mdio_read(struct mii_bus *bus, int addr, int regnum) +static int aspeed_mdio_op(struct mii_bus *bus, u8 st, u8 op, u8 phyad, u8 = regad, + u16 data) { struct aspeed_mdio *ctx =3D bus->priv; u32 ctrl; - u32 data; - int rc; =20 - dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d\n", __func__, addr, - regnum); - - /* Just clause 22 for the moment */ - if (regnum & MII_ADDR_C45) - return -EOPNOTSUPP; + dev_dbg(&bus->dev, "%s: st: %u op: %u, phyad: %u, regad: %u, data: %u\n", + __func__, st, op, phyad, regad, data); =20 ctrl =3D ASPEED_MDIO_CTRL_FIRE - | FIELD_PREP(ASPEED_MDIO_CTRL_ST, ASPEED_MDIO_CTRL_ST_C22) - | FIELD_PREP(ASPEED_MDIO_CTRL_OP, MDIO_C22_OP_READ) - | FIELD_PREP(ASPEED_MDIO_CTRL_PHYAD, addr) - | FIELD_PREP(ASPEED_MDIO_CTRL_REGAD, regnum); + | FIELD_PREP(ASPEED_MDIO_CTRL_ST, st) + | FIELD_PREP(ASPEED_MDIO_CTRL_OP, op) + | FIELD_PREP(ASPEED_MDIO_CTRL_PHYAD, phyad) + | FIELD_PREP(ASPEED_MDIO_CTRL_REGAD, regad) + | FIELD_PREP(ASPEED_MDIO_DATA_MIIRDATA, data); =20 iowrite32(ctrl, ctx->base + ASPEED_MDIO_CTRL); =20 - rc =3D readl_poll_timeout(ctx->base + ASPEED_MDIO_CTRL, ctrl, + return readl_poll_timeout(ctx->base + ASPEED_MDIO_CTRL, ctrl, !(ctrl & ASPEED_MDIO_CTRL_FIRE), ASPEED_MDIO_INTERVAL_US, ASPEED_MDIO_TIMEOUT_US); - if (rc < 0) - return rc; +} + +static int aspeed_mdio_get_data(struct mii_bus *bus) +{ + struct aspeed_mdio *ctx =3D bus->priv; + int rc; + u32 data; =20 rc =3D readl_poll_timeout(ctx->base + ASPEED_MDIO_DATA, data, data & ASPEED_MDIO_DATA_IDLE, @@ -78,31 +79,36 @@ static int aspeed_mdio_read(struct mii_bus *bus, int ad= dr, int regnum) return FIELD_GET(ASPEED_MDIO_DATA_MIIRDATA, data); } =20 -static int aspeed_mdio_write(struct mii_bus *bus, int addr, int regnum, u1= 6 val) +static int aspeed_mdio_read(struct mii_bus *bus, int addr, int regnum) { - struct aspeed_mdio *ctx =3D bus->priv; - u32 ctrl; + int rc; =20 - dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d, val: 0x%x\n", - __func__, addr, regnum, val); + dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d\n", __func__, addr, + regnum); =20 /* Just clause 22 for the moment */ if (regnum & MII_ADDR_C45) return -EOPNOTSUPP; =20 - ctrl =3D ASPEED_MDIO_CTRL_FIRE - | FIELD_PREP(ASPEED_MDIO_CTRL_ST, ASPEED_MDIO_CTRL_ST_C22) - | FIELD_PREP(ASPEED_MDIO_CTRL_OP, MDIO_C22_OP_WRITE) - | FIELD_PREP(ASPEED_MDIO_CTRL_PHYAD, addr) - | FIELD_PREP(ASPEED_MDIO_CTRL_REGAD, regnum) - | FIELD_PREP(ASPEED_MDIO_CTRL_MIIWDATA, val); + rc =3D aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C22, MDIO_C22_OP_READ, + addr, regnum, 0); + if (rc < 0) + return rc; =20 - iowrite32(ctrl, ctx->base + ASPEED_MDIO_CTRL); + return aspeed_mdio_get_data(bus); +} =20 - return readl_poll_timeout(ctx->base + ASPEED_MDIO_CTRL, ctrl, - !(ctrl & ASPEED_MDIO_CTRL_FIRE), - ASPEED_MDIO_INTERVAL_US, - ASPEED_MDIO_TIMEOUT_US); +static int aspeed_mdio_write(struct mii_bus *bus, int addr, int regnum, u1= 6 val) +{ + dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d, val: 0x%x\n", + __func__, addr, regnum, val); + + /* Just clause 22 for the moment */ + if (regnum & MII_ADDR_C45) + return -EOPNOTSUPP; + + return aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C22, MDIO_C22_OP_WRITE, + addr, regnum, val); } =20 static int aspeed_mdio_probe(struct platform_device *pdev) --=20 2.17.1 From nobody Fri Jun 19 07:17:52 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3683DC41535 for ; Thu, 7 Apr 2022 01:31:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241388AbiDGBbC (ORCPT ); Wed, 6 Apr 2022 21:31:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32822 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240540AbiDGBUF (ORCPT ); Wed, 6 Apr 2022 21:20:05 -0400 Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on2120.outbound.protection.outlook.com [40.107.215.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F272EA743; Wed, 6 Apr 2022 18:18:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Cjw9f8bocjLIaZMCQmiQt3a7LEysVZ9lx7/HGOuhpYkrorrZv3ml/YjGbiB8O43yy138lZpfkLlwpFv1ai6EpO0A7iTjs0hTCbrJFodEIl+bF1qiTnH4GLvVZLYdcmJ+J5W9YsrXuywPbNfBH30SJj1uzgdg0yM5Up5nSJq8TMXMN2ZPdyAGod83sE2wAoBZ+93ITozlyV0Y6xN0JsTgeLUnjSylzfmg+CF4YIbEmuQgK0r1Lz5OerlznYPzgQ3X/CNZVQD7wwdzW7RhHjlm2sjxZlH0jj1ynY+nqYNhFbaryzddwz4afFBG9P9fVmWhYUh8GqHqR2QCj8Zlp/z7ng== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ejm9oWzAFjLDKF8GvYIn45mp7teq4YWcl7bpMskJVIk=; b=VZRzFAFp2YnhVElsbpBS5chtSDkALJouin7tW+Aqi6srS1RQy9qnUr/baDNP5yeW4F9DKAS7fbsgcuO5HF1B7ceZhQbtt0CDGMoZOsfA9a/hYfzFhyzKKLT72x8xODAtMkHpzl/Ee7A55q9V7tuw/iuV2rDzK/NfYbPAaCXzst7X5mgc+sq5DXBXLC9HTs6WyEF6vbdugI55qbfq7YFiiYnHOH/SE2Bf07hooSHZ/fBSS0C+I3wa3g5r/qBI91qo1ImDXlu5J49qSiZ3pqGVTFWT4tn9/eG4+pZSSIydr1dgmVY8RpbntL1g5ozsC5wrjrZRaJoymuwAgKTpsaqyBw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=quantatw.com; dmarc=pass action=none header.from=quantatw.com; dkim=pass header.d=quantatw.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantacorp.onmicrosoft.com; s=selector2-quantacorp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ejm9oWzAFjLDKF8GvYIn45mp7teq4YWcl7bpMskJVIk=; b=BJKcOq3Ox09ij2TQJEn6LeMhSGt9GqJLYDIpRyOLH2a0iwCMn/BrHA69NUhvZ6Nnb21nmx6wa3+2hAfThFiAAdKvKalliLY0TsGfgk/gQCyujNlwYyhlh79HFOMSFLowFS54gnnzha1odn+X0bd6qeQgUV8CxR4GmN7XjZiUDUY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quantatw.com; Received: from SG2PR04MB3285.apcprd04.prod.outlook.com (2603:1096:4:6d::18) by TY2PR04MB3167.apcprd04.prod.outlook.com (2603:1096:404:a0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.22; Thu, 7 Apr 2022 01:18:02 +0000 Received: from SG2PR04MB3285.apcprd04.prod.outlook.com ([fe80::e94c:1300:a35a:4a1c]) by SG2PR04MB3285.apcprd04.prod.outlook.com ([fe80::e94c:1300:a35a:4a1c%2]) with mapi id 15.20.5102.035; Thu, 7 Apr 2022 01:18:02 +0000 From: Potin Lai To: Andrew Lunn , Heiner Kallweit , Russell King , davem@davemloft.net, Jakub Kicinski , Joel Stanley , Andrew Jeffery Cc: netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org, Patrick Williams , Potin Lai Subject: [PATCH net-next v3 2/3] net: mdio: aspeed: Introduce read write function for c22 and c45 Date: Thu, 7 Apr 2022 09:17:37 +0800 Message-Id: <20220407011738.7189-3-potin.lai@quantatw.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220407011738.7189-1-potin.lai@quantatw.com> References: <20220407011738.7189-1-potin.lai@quantatw.com> X-ClientProxiedBy: HK2PR02CA0143.apcprd02.prod.outlook.com (2603:1096:202:16::27) To SG2PR04MB3285.apcprd04.prod.outlook.com (2603:1096:4:6d::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2c1c7699-d177-48fb-740a-08da18347603 X-MS-TrafficTypeDiagnostic: TY2PR04MB3167:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JbrXxPHg58fhKcwiiTj2lnu1wkQR5WwjxXrn4CGMaaHSdcSGDRvgwb739lfKHGaitJ8IwGcl1sotaeW22szN5BYreS59dy2MIeK23oZ7kgtX9kHBD6iOzqM2lIINWEIsRvjFbQGfvgurpZjA+qRRtBTZ35sl2omV+YZ1XVAgQvYeUKAJZ/pVlFFf8V8dBNVUfRaDg/nlfjdggoBffenbuvpHZ7c73+K//HcDidhTvAFMvY/3DlLdVpl4nmI8PufFCq7IqXV5TlHqE+5bgIx4wy7PrVdBudGh6Z3enB8N3xcgl+0R6iyWKWb0V2zpyDSkZrTvyUflmGBSqk0ohTlhDgQEzxFm25mfSiQ0wffTwChWYzNzpwBnsJPe3ZjW7DyNqsdutA0pcS4b5W9pqbDMaf1IWpf8IzYtbo1L37T4J6JUf7slriPfTED5+ELYskx3GHL8WQw2O5GG1KlKlYGK/DPSxr16Y/LB9HqP26AxtwPT5OObwwKI1wu3MSY/KCbeFvkdOrXR+zxNM43Y8uzjP4wbfUm2ZroARhBrGnCiYVQO5CUZAJN9Bds8TQdZXUAjurali06/dT5nslvbQh0JJ6cLV5jas0XqDrRA6erw9xT/zs1HMD8Gipc9IT4A0bITz/3ivE4h6AGqVSjUI+AHraGhjVWHhvzwPlhgjqUIcrrvnjHrooF125AfDqOM2ZKoM+LoEg5xlt7eMLepG1DBtQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SG2PR04MB3285.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(6506007)(7416002)(36756003)(316002)(110136005)(52116002)(2906002)(54906003)(6666004)(107886003)(8936002)(44832011)(2616005)(5660300002)(6512007)(38350700002)(38100700002)(4326008)(66556008)(86362001)(186003)(26005)(6486002)(66946007)(508600001)(83380400001)(1076003)(8676002)(66476007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HSoULehcdldro8ScDoqHmGlzzMOOTfdH+tLGtAbZC5h5/8vhWpDj5Mk9vNgx?= =?us-ascii?Q?FNj9yBzQ2jp/mgxM7zkjTRwAnlpbdSOS06LOGZqeVJwJfORgJ5s6+hQ9ECme?= =?us-ascii?Q?K9CtZeEXNnVxQCybImvh6+EPEce+kUdl/5EWq9LqmGTMNHsqM8pSwN2d+S2J?= =?us-ascii?Q?bT/OZPnMd5ej0Y3mZT3OLYPX+madt5lVbGtsUBu3gGKI9pwnQnwImSPGTUkh?= =?us-ascii?Q?vumdRtl2n6vxR8BKoL36jPawa2XFrdlhjOBr1AjfygbAKRo7/K7eJFmONMbr?= =?us-ascii?Q?vf76M4g0NEGqPTKuOjBUo1ecIY6FwNuvjvt3Y2YZdAlN4zOjN4EhhpQ5RvBx?= =?us-ascii?Q?bWzEaSY0vMI1Sl6aJiQS8p3oM0+ZHsTiw0+vh/Louvv8a2Nmfupt2iGe4zNG?= =?us-ascii?Q?iHHvD/yS24TRpxgsNppvYhQICBH4GBDPuhSmbJn8CVYHlfF1X/A9inaL++cr?= =?us-ascii?Q?+u1XJDZZbODNEBEAm/b+q+N8MoGyPtKTmPF2w7hMJA3jsijqqZhvlMtluv0/?= =?us-ascii?Q?OnL5SStWheBDNHjJnLwjoH3eX86kKZHV7G2iWEc4fGbaof7f6L/uATaTY44L?= =?us-ascii?Q?+2Tp0C5kF3DnC1leGAVXbH7cLiTW6eztgS2Xyj/LfaX20JZM2k0FVHuE1Chc?= =?us-ascii?Q?DSvV8Sqdoon/os85FGAIaCOCGEe/HwRxLMp1Y5sos9zkTzoEXJpSmcWWpV/v?= =?us-ascii?Q?Kg5HAVUYi2+bxExS4B7ER22oB/9mPLIxuYW8eWLkXu9pSS/Xb7JVA6Lbi8rU?= =?us-ascii?Q?Q7SQfihU4ONadW9hWBY3Yjqu3TYXT9EL6iWLa4Yc4QKQhzYF/NKe/+NJrCiV?= =?us-ascii?Q?0d9jFUNfgmDMPx1SZkgvTT+7DUufUfTU+6DmuzT3xSxfPHC1Bb6CqJH8SRQI?= =?us-ascii?Q?o6o0QbZNH3NYMDLQqruOIDgGhXdudH836gKc6aVMac00DjWdNWnwlv1r07KM?= =?us-ascii?Q?jMU6MjRDxXInQtWm4yJXbuzT8aqLkxlICbApyF0k2UwTARONeQWKxMj70WQU?= =?us-ascii?Q?BK+Jc6nSi35PPjdBOdu6Ylz5M1Wbv74vc9Sg5fYyI9oPzDUXHE9FJ8kD7cge?= =?us-ascii?Q?KHb4iQT+MvxB1XtpCVVLrEyiWntn+TFDTs24fgNncbmrB2DKOBUxODDagU/3?= =?us-ascii?Q?I85BVRwcJ9nlvRGE6DAVQLwNrhXq61tCUZm7loC3lOk/SDu2h6iOP1sAfMFU?= =?us-ascii?Q?PxfQCmtMjeaF3RNTKXSQdlxXp5Mxx7GBearG6/W8Swxo0xF47VVBDM5jcMnp?= =?us-ascii?Q?4R/Yi1nGzPeSD1nhaNOYNHIy+R2RE7XbPv64oUIVcg6xq0TaxL+YXOZ3P8M1?= =?us-ascii?Q?wNVN7dlLpii8q4NL712/yPwupYWLcqRmxdpJClOVjxzeoP5KtB4E9sfL6LDG?= =?us-ascii?Q?1UEgCmKWeve+D138y7iCeBOehLv6CzJwlmXAKibFWjR0+ElE673jocro3mbF?= =?us-ascii?Q?liBbujsdeGIDxa9HK2ctLLxjHs3PXHC2VBJSgVJq8+4BsjKw/yULxjs8Wq/6?= =?us-ascii?Q?Ibe8c4zXO4OpiGwvWW3WXbED2lARGKWSMOtci55fAfkdnIQO8HzwPkxcy7Ou?= =?us-ascii?Q?9fFs2AsfDTZJfdrLukZD9zZKxtQvm/ys20DePdN/AL2/1gDU6i3dU4dVkdn0?= =?us-ascii?Q?wi0FzAYuSN/27XxqzvxO9IK8Up1R9KRy5Tj1/nmPaKg079BPlFhLdiYjwWi7?= =?us-ascii?Q?NHlg4CDJAf0S4a6lzICNEr6aNtCFGBANyqT08rUoU1wdAG2ogL2AdDDpztpy?= =?us-ascii?Q?6hIBcwMGDrNomZRCdSCFkeKHVF3bajM=3D?= X-OriginatorOrg: quantatw.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c1c7699-d177-48fb-740a-08da18347603 X-MS-Exchange-CrossTenant-AuthSource: SG2PR04MB3285.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2022 01:18:02.5993 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 179b0327-07fc-4973-ac73-8de7313561b2 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EeWKwsI0o/psscR/0adoWqztjYiV0MHl4f7MjooX09kdWE3WCePZUt4osZnnNd9O+Vev0004fsxABnj2egOedQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PR04MB3167 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add following additional functions to move out the implementation from aspeed_mdio_read() and aspeed_mdio_write(). c22: - aspeed_mdio_read_c22() - aspeed_mdio_write_c22() c45: - aspeed_mdio_read_c45() - aspeed_mdio_write_c45() Signed-off-by: Potin Lai Reviewed-by: Andrew Lunn --- drivers/net/mdio/mdio-aspeed.c | 46 +++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/drivers/net/mdio/mdio-aspeed.c b/drivers/net/mdio/mdio-aspeed.c index f22be2f069e9..5becddb56117 100644 --- a/drivers/net/mdio/mdio-aspeed.c +++ b/drivers/net/mdio/mdio-aspeed.c @@ -79,17 +79,10 @@ static int aspeed_mdio_get_data(struct mii_bus *bus) return FIELD_GET(ASPEED_MDIO_DATA_MIIRDATA, data); } =20 -static int aspeed_mdio_read(struct mii_bus *bus, int addr, int regnum) +static int aspeed_mdio_read_c22(struct mii_bus *bus, int addr, int regnum) { int rc; =20 - dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d\n", __func__, addr, - regnum); - - /* Just clause 22 for the moment */ - if (regnum & MII_ADDR_C45) - return -EOPNOTSUPP; - rc =3D aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C22, MDIO_C22_OP_READ, addr, regnum, 0); if (rc < 0) @@ -98,17 +91,46 @@ static int aspeed_mdio_read(struct mii_bus *bus, int ad= dr, int regnum) return aspeed_mdio_get_data(bus); } =20 +static int aspeed_mdio_write_c22(struct mii_bus *bus, int addr, int regnum, + u16 val) +{ + return aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C22, MDIO_C22_OP_WRITE, + addr, regnum, val); +} + +static int aspeed_mdio_read_c45(struct mii_bus *bus, int addr, int regnum) +{ + /* TODO: add c45 support */ + return -EOPNOTSUPP; +} + +static int aspeed_mdio_write_c45(struct mii_bus *bus, int addr, int regnum, + u16 val) +{ + /* TODO: add c45 support */ + return -EOPNOTSUPP; +} + +static int aspeed_mdio_read(struct mii_bus *bus, int addr, int regnum) +{ + dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d\n", __func__, addr, + regnum); + + if (regnum & MII_ADDR_C45) + return aspeed_mdio_read_c45(bus, addr, regnum); + + return aspeed_mdio_read_c22(bus, addr, regnum); +} + static int aspeed_mdio_write(struct mii_bus *bus, int addr, int regnum, u1= 6 val) { dev_dbg(&bus->dev, "%s: addr: %d, regnum: %d, val: 0x%x\n", __func__, addr, regnum, val); =20 - /* Just clause 22 for the moment */ if (regnum & MII_ADDR_C45) - return -EOPNOTSUPP; + return aspeed_mdio_write_c45(bus, addr, regnum, val); =20 - return aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C22, MDIO_C22_OP_WRITE, - addr, regnum, val); + return aspeed_mdio_write_c22(bus, addr, regnum, val); } =20 static int aspeed_mdio_probe(struct platform_device *pdev) --=20 2.17.1 From nobody Fri Jun 19 07:17:52 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E56F9C4167D for ; Thu, 7 Apr 2022 01:31:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241256AbiDGBaw (ORCPT ); Wed, 6 Apr 2022 21:30:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32912 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240543AbiDGBUG (ORCPT ); Wed, 6 Apr 2022 21:20:06 -0400 Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on2120.outbound.protection.outlook.com [40.107.215.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C73BD18007F; Wed, 6 Apr 2022 18:18:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QZpuSi7dCAIyypgiU2/eDfAer7M/tg98M+kxBHNqde2/OeOWNMi/h6YBRv379BSEdlXULGK0jr/UNPjW9CumGWVVwwx6sVxwEtLGKFLvU6tc3sZH3wMy51rpDksSYVd0rH6LtqMZWlyrJDoyzixaPHllsuu1axagOUVNIXCiYtZpcnsnylbQBScHjuTe2Q4RxneMah+GcjOrON0JNGpuHkRxTtbniNYiaV5binHzqwqnqCsYiajk5SIvNGIzGnvXjd12pt9d7t9nfI4buLoRtDa0qVnV6Vl/Z4RNV2vOpFUWh4nJf3DzuPvC3w6WhcCIU3yb4YnRYioCfzybbWssAA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qtbN/aF/twwFM8LcNvblrfy3Id/6HrA2AGjcJG4KYYc=; b=f+m/T1aG5XMUzH9H45j0y/1tJ17fh27IsBA8LhqGxt+g6cg+r3eTo9eXZ05DZ5oniQ1Af5exo/M1Yer8ZBBANM833NwYcECzjSAPWxXn4BkQw+J4hpG8wqUe+L0GASbHFGkXZ0e3Y0wPb5E7JFX3KKtM2i6H5RuPI2pUP/+bivCFst9NK0qWTz/BE7HPz7cKUeH3N0JZTa5wj8mozBg7LDlbdbmhJ+QcK4GTOEQuaXZo8dS+tN1PcmoKc/jnyYxa9FfHySzMpEu1xf8eljAmAhcxv3CI9zPMumYl9bYBp4TO8yKq1xdKZf7hMwpaYWFRNLHwLo3Z4HQFmDr89QT9QQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=quantatw.com; dmarc=pass action=none header.from=quantatw.com; dkim=pass header.d=quantatw.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantacorp.onmicrosoft.com; s=selector2-quantacorp-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qtbN/aF/twwFM8LcNvblrfy3Id/6HrA2AGjcJG4KYYc=; b=LYu6mYtMwJ9SP8aqAqblOsCM/bFWm1vQOOUCEi8sQX4D8ssSLF5UtzXuREonfDfoFkzXby7T1f7p8JWEOaOvZOKEJH5SI0YTu1+Fu0ySOH0KXGKFzBLFDvUllGNKr649sH1v5RMS9lI/LlT/zHNcAHeu62rW1IUV/wsmhUd5kSk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quantatw.com; Received: from SG2PR04MB3285.apcprd04.prod.outlook.com (2603:1096:4:6d::18) by TY2PR04MB3167.apcprd04.prod.outlook.com (2603:1096:404:a0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.22; Thu, 7 Apr 2022 01:18:04 +0000 Received: from SG2PR04MB3285.apcprd04.prod.outlook.com ([fe80::e94c:1300:a35a:4a1c]) by SG2PR04MB3285.apcprd04.prod.outlook.com ([fe80::e94c:1300:a35a:4a1c%2]) with mapi id 15.20.5102.035; Thu, 7 Apr 2022 01:18:04 +0000 From: Potin Lai To: Andrew Lunn , Heiner Kallweit , Russell King , davem@davemloft.net, Jakub Kicinski , Joel Stanley , Andrew Jeffery Cc: netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org, Patrick Williams , Potin Lai Subject: [PATCH net-next v3 3/3] net: mdio: aspeed: Add c45 support Date: Thu, 7 Apr 2022 09:17:38 +0800 Message-Id: <20220407011738.7189-4-potin.lai@quantatw.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220407011738.7189-1-potin.lai@quantatw.com> References: <20220407011738.7189-1-potin.lai@quantatw.com> X-ClientProxiedBy: HK2PR02CA0143.apcprd02.prod.outlook.com (2603:1096:202:16::27) To SG2PR04MB3285.apcprd04.prod.outlook.com (2603:1096:4:6d::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 148f32e5-9dc8-451d-67fb-08da183476bd X-MS-TrafficTypeDiagnostic: TY2PR04MB3167:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8YYqj4ghvVY267i7zPU9ZyMDdkweHC6Zw8zqoZTlmJ9nmJgGmQWUkgQuiE/hlPgok3J1T9JDkSq/zuRTezAqHf5hCTaz9EXjjKQtN6rbn1dZwQM+z0u6giClan4K6WVflCoKCjEQ13bqvwwrlE13Dth8DpVM8yFap+z9Bf7iAGoQRO4KtWsMHJdiw0f11Jb43dsb8YKPkX09Pr/SpBxSjY1UUJ/4V3n1KJBzi14BBbIaa0gvtwTUc5zD2cJ9h/gBnMoEFS7QADhtHjS+WX4HMQ3Iuj5WN+rcgktc4w4jnBlmWqvEOhxWO4elCHfhcPmGKUqp+6lZmwM91E/daXU1fC78Gv/jyRWwxjKbYEsUwJddQpyGevgjdClz+DoZvr9hG7sVrYf7Apx74Y6nunayYXdaFrgOs88tGGzbsxRqoBoA21T/ZCvsiZnhd3lqlcCsyxb7FKcJGvpXpWNwjvmCJo4vqlocZKXKJsfw4fgMqYQq0qGMKdCQeqYdI7l5zxWfKFjQNd0ialUD4B4yaZpDLmS+hLl+x/VvjkUF8vdp2TsIPNtjL4APBKmKTMrnK0BDfFbO8eSMFluuB8h0RqO+32r6DHYdE2h/ZLt70Opkb2RT++iSfYjrp/MBzJtQPRn+oMVly8x59/aP6mEmdqek7u+SvqSJ9H4SDVqIwvMSAoG80s4INAp2LqWsqVMDpLAjQS/ftahO9RhqbJVUOQroCw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SG2PR04MB3285.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(6506007)(7416002)(36756003)(316002)(110136005)(52116002)(2906002)(54906003)(6666004)(107886003)(8936002)(44832011)(2616005)(5660300002)(6512007)(38350700002)(38100700002)(4326008)(66556008)(86362001)(186003)(26005)(6486002)(66946007)(508600001)(83380400001)(1076003)(8676002)(66476007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kL7yhs7Vq8YON2C1j1MVjhMZ8177WhcilITifQN1ZoE6NzbHZza7OsBBPj8M?= =?us-ascii?Q?0DC/gvv6fJ73prNls3cUIeebLP176bz/bKGzGN2Pfi1nN+juInl/x5WdSQUZ?= =?us-ascii?Q?NX2QSNTUD3jmJAlZdxI8UKbT2XZkN2DFd5zjTB2/ZUsmLeZ9ClZpxO4+lGrv?= =?us-ascii?Q?EXj7sK/RiOSs3dBztBkH1hFMfxuaCJjLNRBmnaOHmNzaWBek3curGAy0QyFS?= =?us-ascii?Q?RWfhRrbgMQ894KC/if1PxQSCSGrINMXW0cWnDNSTZoZV5xmhMZ1MMAfgOsyd?= =?us-ascii?Q?xIpn/1/VAdgF4F0JkDP81YiU0c5NQzgCcI25XibTXqBeTpwOZiJG/BuwQ6sx?= =?us-ascii?Q?+lEHq7jqlkIYejEGjN7xBBX2ZIqYb1DWVZkdGfsHkzwVQPuPVpYu6V43UprR?= =?us-ascii?Q?+ESePNW2a+dMwRJVT7wS2CFpyTGvIctKgdvm57Bm6f4eEu6vmSG51Yik/00D?= =?us-ascii?Q?/yqbSARxUMk7JfdQ8U/ww3oUCbxG51HNHohjHdDozJTzTHgTNSd/HjelaGcx?= =?us-ascii?Q?j9MiomKMOPGPj/rxzdg7mJdIIlsyycJozTTxbrxumUytQGS+OwUK1aHzRUWk?= =?us-ascii?Q?7dnngIf9Pf8NtZkxMliLqn222Xrwo/gT9xf0jiJJQfql2VVVAI1Cpvn4rQV7?= =?us-ascii?Q?ymbHr4ef5GKxf3s72G61PxSEiaW00xnkQNJVIr3HjWKzQ/zYPp5aoPjYDReJ?= =?us-ascii?Q?BaWcxH3esg8Uoe3Gh3kHjKslXX/o8kX5yl7BiqPHkPYOXCEokR/V9t/8qDng?= =?us-ascii?Q?fhv5ztGs97BeeqviaLUyIejKNCPuCs5V6Lx7ytW9C65D2rm2Ha6yyOizypXS?= =?us-ascii?Q?fHwTvyOmAFJjkQOsSISsSUzCGwe6Gu3LoqmOI2PgHh4wt1w5hDh7yDHKy753?= =?us-ascii?Q?LVLtBqCm72t8Gbdb/aAWY3bGGjucDKcCRxyXL+8A97oM1i7Vbl8dygr1MWIH?= =?us-ascii?Q?k3eZ2KMffL5C3TuvcQtTp1WeoCmTm+i5o28WMS5fHxss5LitKyRCFgGxpW/5?= =?us-ascii?Q?5MkNeNIkt9OMNaqd5YcO2tVsdndvaPLgEYAgwpiWQsuTOGRHeswbYH93CSyh?= =?us-ascii?Q?qQd95s8TplRUK9S7jHg9L5tMISaexf8vDV3HOgEUqi5JY3DWT6e1yYtsp/oz?= =?us-ascii?Q?z15t6Ca0HuF1+sb9G81BF7eenkbrza41r6AP/wNNljjFW8SO/UBnumotRxvk?= =?us-ascii?Q?oQQk0uhwE9gtGUog5qiKc4RcV/bgn5mKpfY/UcotbRliqOnG86QQMDJppoql?= =?us-ascii?Q?brt84pfVstFoL1jYf//feN3rbUV3Jdp3hmNwFV2rC8r005XTfqarsRUPKLI5?= =?us-ascii?Q?ls9AsyLAGkGmPmcGUp1HTZl0fpfEMdFNJdcrf5ZZny/u0eUomI2BDH1SWuLG?= =?us-ascii?Q?ZnB39EvKR5WTR1KjTYFFaOPm0K4UvQleKmC1GtEoRpBXpra2SJTAs1AYMx3V?= =?us-ascii?Q?3+3jnzAr81d8/oDtdlox6Hvj2OLxhx0/juhoGxqZSt1hIzpPMbCHJcaPDEHM?= =?us-ascii?Q?ds6RyVFTe0r4fK7fv/FMpZEX0IoloLAD1NHAFGXxhwVyyr9tKREZkXY9Zscp?= =?us-ascii?Q?lTjFx8voiVZC3uN152HaOiHRH4xR/biblDvNz0mhcdtjf6dhllO8mNHIG7cT?= =?us-ascii?Q?x+T6gScHWjaUx2HlABTxd+rUe4YoN+5PT22eX748OgiUqvOchDpZNXUuVQsG?= =?us-ascii?Q?u36ht+AM5bU20Zrma61Q2hkyFqrf8rJoMH29hEA6OcQsVjQykO/sx3S33ERk?= =?us-ascii?Q?MSiXjXvkF62x0x9K/xNbered0PkMCE0=3D?= X-OriginatorOrg: quantatw.com X-MS-Exchange-CrossTenant-Network-Message-Id: 148f32e5-9dc8-451d-67fb-08da183476bd X-MS-Exchange-CrossTenant-AuthSource: SG2PR04MB3285.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2022 01:18:03.8024 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 179b0327-07fc-4973-ac73-8de7313561b2 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XT9efBGI7JWweR9zfH0RFJoBie+hME06jE1AObn7ew2dLLgkjfNDzxft/Wqa1X//dyo2XFY9LrLmkBoPq0fcJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY2PR04MB3167 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add Clause 45 support for Aspeed mdio driver. Signed-off-by: Potin Lai Reviewed-by: Andrew Lunn --- drivers/net/mdio/mdio-aspeed.c | 37 +++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/drivers/net/mdio/mdio-aspeed.c b/drivers/net/mdio/mdio-aspeed.c index 5becddb56117..7aa49827196f 100644 --- a/drivers/net/mdio/mdio-aspeed.c +++ b/drivers/net/mdio/mdio-aspeed.c @@ -21,6 +21,10 @@ #define ASPEED_MDIO_CTRL_OP GENMASK(27, 26) #define MDIO_C22_OP_WRITE 0b01 #define MDIO_C22_OP_READ 0b10 +#define MDIO_C45_OP_ADDR 0b00 +#define MDIO_C45_OP_WRITE 0b01 +#define MDIO_C45_OP_PREAD 0b10 +#define MDIO_C45_OP_READ 0b11 #define ASPEED_MDIO_CTRL_PHYAD GENMASK(25, 21) #define ASPEED_MDIO_CTRL_REGAD GENMASK(20, 16) #define ASPEED_MDIO_CTRL_MIIWDATA GENMASK(15, 0) @@ -66,8 +70,8 @@ static int aspeed_mdio_op(struct mii_bus *bus, u8 st, u8 = op, u8 phyad, u8 regad, static int aspeed_mdio_get_data(struct mii_bus *bus) { struct aspeed_mdio *ctx =3D bus->priv; - int rc; u32 data; + int rc; =20 rc =3D readl_poll_timeout(ctx->base + ASPEED_MDIO_DATA, data, data & ASPEED_MDIO_DATA_IDLE, @@ -100,15 +104,37 @@ static int aspeed_mdio_write_c22(struct mii_bus *bus,= int addr, int regnum, =20 static int aspeed_mdio_read_c45(struct mii_bus *bus, int addr, int regnum) { - /* TODO: add c45 support */ - return -EOPNOTSUPP; + u8 c45_dev =3D (regnum >> 16) & 0x1F; + u16 c45_addr =3D regnum & 0xFFFF; + int rc; + + rc =3D aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C45, MDIO_C45_OP_ADDR, + addr, c45_dev, c45_addr); + if (rc < 0) + return rc; + + rc =3D aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C45, MDIO_C45_OP_READ, + addr, c45_dev, 0); + if (rc < 0) + return rc; + + return aspeed_mdio_get_data(bus); } =20 static int aspeed_mdio_write_c45(struct mii_bus *bus, int addr, int regnum, u16 val) { - /* TODO: add c45 support */ - return -EOPNOTSUPP; + u8 c45_dev =3D (regnum >> 16) & 0x1F; + u16 c45_addr =3D regnum & 0xFFFF; + int rc; + + rc =3D aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C45, MDIO_C45_OP_ADDR, + addr, c45_dev, c45_addr); + if (rc < 0) + return rc; + + return aspeed_mdio_op(bus, ASPEED_MDIO_CTRL_ST_C45, MDIO_C45_OP_WRITE, + addr, c45_dev, val); } =20 static int aspeed_mdio_read(struct mii_bus *bus, int addr, int regnum) @@ -153,6 +179,7 @@ static int aspeed_mdio_probe(struct platform_device *pd= ev) bus->parent =3D &pdev->dev; bus->read =3D aspeed_mdio_read; bus->write =3D aspeed_mdio_write; + bus->probe_capabilities =3D MDIOBUS_C22_C45; =20 rc =3D of_mdiobus_register(bus, pdev->dev.of_node); if (rc) { --=20 2.17.1