From patchwork Thu Jan 16 09:14:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandru Ardelean X-Patchwork-Id: 1224092 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=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=analog.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=analog.onmicrosoft.com header.i=@analog.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-analog-onmicrosoft-com header.b=dUYVOyhd; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47yz4v4tb4z9sRR for ; Thu, 16 Jan 2020 20:13:19 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731461AbgAPJNP (ORCPT ); Thu, 16 Jan 2020 04:13:15 -0500 Received: from mx0a-00128a01.pphosted.com ([148.163.135.77]:30186 "EHLO mx0a-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731068AbgAPJNK (ORCPT ); Thu, 16 Jan 2020 04:13:10 -0500 Received: from pps.filterd (m0167089.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 00G9CfLC024975; Thu, 16 Jan 2020 04:13:06 -0500 Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2108.outbound.protection.outlook.com [104.47.55.108]) by mx0a-00128a01.pphosted.com with ESMTP id 2xfc59my6c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jan 2020 04:13:06 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WQxNQpfJCLsDHV6mc8ZCZBjxyYVHY110G7YT1A0i10hBRZi3fytRqhvKxcwXkke8uIhY41WOVr7T/QfU3/d7YvPo5moIdZb0Uqs+jt5dm0phkVDqLdtypHaSrHQgVT90mH5r7v1OBkzTdSm0zuXKuDoM/wIlChZP8t5xoUcuet5abM33DevLoQKETLrnkbOvmBMh3qR1tB+dxp/+q0+EZ0HT7Q8sKktfdRU85SWjoyhIUqUdrYwEVL5LeZ65UahJzUwDWZegXeSdnNMSugLloXj+IY/lxGjotC6qAcnrhERiXMSRkP6gXYzJqp4sMeVcDAKCy8sVWDU9UazRWP+P7Q== 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=WqRjMAqLhjMCq+raCq9B0z04Rf0sGZ6cjY4CFq2qVeA=; b=CJR4WFY18UOKTY+TrYEAnsYv2D5I3LvnY5tOSMtwz6T6fO1zjDVoeF0IBhFyGMnO6cbUk7kM55dAboyU4kKyyzgGWNGOmo9ahYXlZBJp7RHHrLbSBicVf3+eV+NcRPB6y3BXPiQjTIPzLNK7akNiU0Zc1QST0NzMn2xl/be+opE2MxJAJp95JkX1ZP56ahf1v7pHGGNFv3FdEStgkDe141FI02nb6pJfdJdnDNsBMl6psseFPgmBB4QiU+dgCpLb3PnzyMj06ZYOnjBUla44c8/4uq/4e4ND0eKy1PdbZ39Vx7MTMSj4jJYLkAxDkyiVJFuBet/noBW/yCRda/eJjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 137.71.25.55) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=analog.com; dmarc=bestguesspass action=none header.from=analog.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector2-analog-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WqRjMAqLhjMCq+raCq9B0z04Rf0sGZ6cjY4CFq2qVeA=; b=dUYVOyhdWFlx7qpGvx2KX5VqDT3wOfjpi1a3h3dXpJDj0fY/VvM8eJrOrbj5n54O1/PMj1KqiQQRoy+ALKayDRq8pD5fiEmWWLjOLW17st5WmpI3gU3fqUP4au/IVE+zcYW5PiJSMAD5RLF5XPXs3iEB9myMtlkMhiYUDpQADBI= Received: from BN6PR03CA0066.namprd03.prod.outlook.com (2603:10b6:404:4c::28) by CO2PR03MB2168.namprd03.prod.outlook.com (2603:10b6:100:1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.19; Thu, 16 Jan 2020 09:13:03 +0000 Received: from SN1NAM02FT003.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::209) by BN6PR03CA0066.outlook.office365.com (2603:10b6:404:4c::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.19 via Frontend Transport; Thu, 16 Jan 2020 09:13:03 +0000 Received-SPF: Pass (protection.outlook.com: domain of analog.com designates 137.71.25.55 as permitted sender) receiver=protection.outlook.com; client-ip=137.71.25.55; helo=nwd2mta1.analog.com; Received: from nwd2mta1.analog.com (137.71.25.55) by SN1NAM02FT003.mail.protection.outlook.com (10.152.73.29) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.2623.9 via Frontend Transport; Thu, 16 Jan 2020 09:13:02 +0000 Received: from SCSQMBX11.ad.analog.com (scsqmbx11.ad.analog.com [10.77.17.10]) by nwd2mta1.analog.com (8.13.8/8.13.8) with ESMTP id 00G9Cnww032341 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 16 Jan 2020 01:12:50 -0800 Received: from SCSQMBX10.ad.analog.com (10.77.17.5) by SCSQMBX11.ad.analog.com (10.77.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Thu, 16 Jan 2020 01:13:00 -0800 Received: from zeus.spd.analog.com (10.64.82.11) by SCSQMBX10.ad.analog.com (10.77.17.5) with Microsoft SMTP Server id 15.1.1779.2 via Frontend Transport; Thu, 16 Jan 2020 01:13:00 -0800 Received: from saturn.ad.analog.com ([10.48.65.124]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 00G9CkjW020088; Thu, 16 Jan 2020 04:12:50 -0500 From: Alexandru Ardelean To: , , CC: , , , , Alexandru Ardelean Subject: [PATCH 1/4] net: phy: adin: const-ify static data Date: Thu, 16 Jan 2020 11:14:51 +0200 Message-ID: <20200116091454.16032-2-alexandru.ardelean@analog.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200116091454.16032-1-alexandru.ardelean@analog.com> References: <20200116091454.16032-1-alexandru.ardelean@analog.com> MIME-Version: 1.0 X-ADIRoutedOnPrem: True X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:137.71.25.55; IPV:; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(376002)(346002)(136003)(396003)(39860400002)(199004)(189003)(86362001)(70586007)(426003)(336012)(246002)(2906002)(2616005)(186003)(478600001)(44832011)(26005)(1076003)(70206006)(4326008)(7696005)(107886003)(8936002)(316002)(356004)(54906003)(36756003)(5660300002)(110136005)(8676002)(7636002); DIR:OUT; SFP:1101; SCL:1; SRVR:CO2PR03MB2168; H:nwd2mta1.analog.com; FPR:; SPF:Pass; LANG:en; PTR:nwd2mail10.analog.com; A:1; MX:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ccbecbf9-1b44-445f-e36a-08d79a644a23 X-MS-TrafficTypeDiagnostic: CO2PR03MB2168: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1201; X-Forefront-PRVS: 02843AA9E0 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gBztuCJmsLJO8kvJ4YvEBRQTOiyeJZ0WeL0VsoMa6FyoX2BZ4qENoI4kTUf0e0IcnJ7X8TrOsSp+FO2py1/T2IosgSh3XD+ol5SZqprDzq0niB8AFTD1LrGBAt39nWaB7cwYBl85ebxNgZWeBo8thvxweQuU29rLySylyI6S05v29LKlfV4GlreWN9shzRAYmdwrJGnlPNfgetEaqHL3PU8jqw4UQwtZAQ0BKQfz0UxjuGd8kbhF+owwju6auByTljS05qONwZ7E+W4jZZAOmCZSdXj/jHdjLKYBvAw52L9dMwp7FpVxH6VFL9g5aXA3LGVmpRT1PeMH1LStTh/GFbjzBd05ocZz9+rLFDaFJLdEs2CaK6HiSd0U0jh6rg+EKQhPOj3PEwzGJvMhYHriNVuN0S6rXNDXJLxvrxaMYBTlkmzmeePmcPFmzPKhbJU4 X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2020 09:13:02.6306 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ccbecbf9-1b44-445f-e36a-08d79a644a23 X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=eaa689b4-8f87-40e0-9c6f-7228de4d754a; Ip=[137.71.25.55]; Helo=[nwd2mta1.analog.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR03MB2168 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.572 definitions=2020-01-16_02:2020-01-16,2020-01-15 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 suspectscore=0 bulkscore=0 clxscore=1015 mlxscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1910280000 definitions=main-2001160078 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Some bits of static data should have been made const from the start. This change adds the const qualifier where appropriate. Signed-off-by: Alexandru Ardelean Reviewed-by: Andrew Lunn --- drivers/net/phy/adin.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/phy/adin.c b/drivers/net/phy/adin.c index cf5a391c93e6..1dca3e883df4 100644 --- a/drivers/net/phy/adin.c +++ b/drivers/net/phy/adin.c @@ -145,7 +145,7 @@ struct adin_clause45_mmd_map { u16 adin_regnum; }; -static struct adin_clause45_mmd_map adin_clause45_mmd_map[] = { +static const struct adin_clause45_mmd_map adin_clause45_mmd_map[] = { { MDIO_MMD_PCS, MDIO_PCS_EEE_ABLE, ADIN1300_EEE_CAP_REG }, { MDIO_MMD_AN, MDIO_AN_EEE_LPABLE, ADIN1300_EEE_LPABLE_REG }, { MDIO_MMD_AN, MDIO_AN_EEE_ADV, ADIN1300_EEE_ADV_REG }, @@ -159,7 +159,7 @@ struct adin_hw_stat { u16 reg2; }; -static struct adin_hw_stat adin_hw_stats[] = { +static const struct adin_hw_stat adin_hw_stats[] = { { "total_frames_checked_count", 0x940A, 0x940B }, /* hi + lo */ { "length_error_frames_count", 0x940C }, { "alignment_error_frames_count", 0x940D }, @@ -456,7 +456,7 @@ static int adin_phy_config_intr(struct phy_device *phydev) static int adin_cl45_to_adin_reg(struct phy_device *phydev, int devad, u16 cl45_regnum) { - struct adin_clause45_mmd_map *m; + const struct adin_clause45_mmd_map *m; int i; if (devad == MDIO_MMD_VEND1) @@ -650,7 +650,7 @@ static void adin_get_strings(struct phy_device *phydev, u8 *data) } static int adin_read_mmd_stat_regs(struct phy_device *phydev, - struct adin_hw_stat *stat, + const struct adin_hw_stat *stat, u32 *val) { int ret; @@ -676,7 +676,7 @@ static int adin_read_mmd_stat_regs(struct phy_device *phydev, static u64 adin_get_stat(struct phy_device *phydev, int i) { - struct adin_hw_stat *stat = &adin_hw_stats[i]; + const struct adin_hw_stat *stat = &adin_hw_stats[i]; struct adin_priv *priv = phydev->priv; u32 val; int ret; From patchwork Thu Jan 16 09:14:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandru Ardelean X-Patchwork-Id: 1224095 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=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=analog.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=analog.onmicrosoft.com header.i=@analog.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-analog-onmicrosoft-com header.b=mLGgTD33; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47yz521cH2z9sRY for ; Thu, 16 Jan 2020 20:13:26 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730964AbgAPJNH (ORCPT ); Thu, 16 Jan 2020 04:13:07 -0500 Received: from mx0a-00128a01.pphosted.com ([148.163.135.77]:26782 "EHLO mx0a-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726956AbgAPJNG (ORCPT ); Thu, 16 Jan 2020 04:13:06 -0500 Received: from pps.filterd (m0167088.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 00G9AQJ1010655; Thu, 16 Jan 2020 04:13:01 -0500 Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by mx0a-00128a01.pphosted.com with ESMTP id 2xf93b59ch-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jan 2020 04:13:00 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G2Jk8hkuY9j3jvk5nhGvqCHNW3N7xz1xhDmFIXVDPXsjkrFxNpMON22/dZ+Ztea1euunx0rUNamoi288YjbbmHaUl6Tr1o5KKIkycxfW5jAx/dVqLCd0FgEdqk9/qYJVveTPCezWica3Qv+E7O86gqbHkA68DyJu0wL0EyJnYRX8lH+r4cSb3BRhTtAWSaNEM6yjLqJ/3kqHQiq4UEExZGwjI/qb7p0n4d8yr8rweQutD/+tOHxcDsvHHIQiCvb/tj9N37FObXThx0KVg/lRPCrYw+UORn1inglGJL4l6kygvKDaZeRCCZOnPpUXOTbf5n5x1qOKpqn8n4vtSkruhA== 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=FohmuAJX6VT66gp1J9VX7b0xOhw71H1YiiTqZMEKXhY=; b=JDkUzg6806w79eKBtcTegUfZ/zH4jcLhLZmuCNZfZOH2+XsLDIYh0QxGGbzQEe2/G8Zg3eaCVspBbRfQl/g342GmAdIl4hsi08LKzpNhIzsVZtABufQairh+XIysj0MqshAUoKQnJwZAkoMVuf/ZmgIzhSKNTHegyCqp+VJhcsni75+jC7nXAwLNaZtceJnolF0hZmVsXC+eJ1iWcOri1PAq+Br54yh7KWT58iij+dcJ40zYsZiolowxn7O8zcbgeT3HoREJ3iYTAGIc3telNPljLimO4E0XyvJtrcLSgGgvcqCkpXgES8l/vAJsBB8/qzhbjfhCdtBpDCXmPxD/MQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 137.71.25.55) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=analog.com; dmarc=bestguesspass action=none header.from=analog.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector2-analog-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FohmuAJX6VT66gp1J9VX7b0xOhw71H1YiiTqZMEKXhY=; b=mLGgTD339KrpHvmQw1OJc46CxTLvCwxDwHXtacsiANdFNsRp6Tmxa1dWxYTw5VIPbMk0vrlDc2gV19cbmtlOW2C6nrCDsJNzSqwoSyXHB0ajMf+uL6mKMirtQjiqhL7nFvQXFWG3J6hrqKk0gOtZf0Lh8bh3JvUSEnmzOmHaUjM= Received: from MWHPR03CA0010.namprd03.prod.outlook.com (2603:10b6:300:117::20) by MN2PR03MB5133.namprd03.prod.outlook.com (2603:10b6:208:1a5::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.20; Thu, 16 Jan 2020 09:12:58 +0000 Received: from SN1NAM02FT008.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::206) by MWHPR03CA0010.outlook.office365.com (2603:10b6:300:117::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.19 via Frontend Transport; Thu, 16 Jan 2020 09:12:58 +0000 Received-SPF: Pass (protection.outlook.com: domain of analog.com designates 137.71.25.55 as permitted sender) receiver=protection.outlook.com; client-ip=137.71.25.55; helo=nwd2mta1.analog.com; Received: from nwd2mta1.analog.com (137.71.25.55) by SN1NAM02FT008.mail.protection.outlook.com (10.152.72.119) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.2623.9 via Frontend Transport; Thu, 16 Jan 2020 09:12:57 +0000 Received: from ASHBMBX9.ad.analog.com (ashbmbx9.ad.analog.com [10.64.17.10]) by nwd2mta1.analog.com (8.13.8/8.13.8) with ESMTP id 00G9CiSw032330 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 16 Jan 2020 01:12:44 -0800 Received: from ASHBMBX9.ad.analog.com (10.64.17.10) by ASHBMBX9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Thu, 16 Jan 2020 04:12:55 -0500 Received: from zeus.spd.analog.com (10.64.82.11) by ASHBMBX9.ad.analog.com (10.64.17.10) with Microsoft SMTP Server id 15.1.1779.2 via Frontend Transport; Thu, 16 Jan 2020 04:12:55 -0500 Received: from saturn.ad.analog.com ([10.48.65.124]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 00G9CkjX020088; Thu, 16 Jan 2020 04:12:52 -0500 From: Alexandru Ardelean To: , , CC: , , , , Alexandru Ardelean Subject: [PATCH 2/4] net: phy: adin: rename struct adin_hw_stat -> adin_map Date: Thu, 16 Jan 2020 11:14:52 +0200 Message-ID: <20200116091454.16032-3-alexandru.ardelean@analog.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200116091454.16032-1-alexandru.ardelean@analog.com> References: <20200116091454.16032-1-alexandru.ardelean@analog.com> MIME-Version: 1.0 X-ADIRoutedOnPrem: True X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:137.71.25.55; IPV:; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(396003)(376002)(39860400002)(346002)(136003)(189003)(199004)(86362001)(1076003)(26005)(7696005)(186003)(70206006)(70586007)(7636002)(110136005)(54906003)(36756003)(316002)(44832011)(107886003)(8676002)(8936002)(5660300002)(336012)(426003)(478600001)(356004)(2616005)(246002)(2906002)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR03MB5133; H:nwd2mta1.analog.com; FPR:; SPF:Pass; LANG:en; PTR:nwd2mail10.analog.com; MX:1; A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 35d3749f-1a22-423a-1ce0-08d79a64474e X-MS-TrafficTypeDiagnostic: MN2PR03MB5133: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1443; X-Forefront-PRVS: 02843AA9E0 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Rx2XI0nwItxkIuNSjRo0Ukc+DsjASQNezRWb6fh25WS5N0Z3/rr4wyDbW+Tc7PG3CxV0qvCPZNp2Nt/zj5Oi0RtPNkCJizO2sZupefyA1amifLV51+6KNVc1Uv8M1gTGJX7fQmzqbMXhM4UuTJtg6gS1UHjJBvTjm8jiSa2yBGjHA87BCJfMmONDAQJzr3f6QLLv/vL3OaS0V5FOkCgaHnRpFo0cFSd8bzRLLm1IyNG3bWKKAx29jCdX1KK/3vhfPdEZDYFrQ7iYmI91lt+WJYMrT3usUNIA9uKgZNtjaHSnLB5hGI8zZSSNZle1OKOBLlJQJZYvUFtTg0ohq8bQr5Bi2jHUCfSKYOQ2DpSt3mGzgFZpX44zQtpm1aHT6R/a0S1sFt44U+L7JIewhohBJwmSx0bYLi9mqokCkUWCliauXEoHIMp3iAMhz+aVAzw5 X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2020 09:12:57.8732 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 35d3749f-1a22-423a-1ce0-08d79a64474e X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=eaa689b4-8f87-40e0-9c6f-7228de4d754a; Ip=[137.71.25.55]; Helo=[nwd2mta1.analog.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR03MB5133 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.572 definitions=2020-01-16_02:2020-01-16,2020-01-15 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 adultscore=0 mlxlogscore=999 bulkscore=0 clxscore=1011 mlxscore=0 malwarescore=0 phishscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1910280000 definitions=main-2001160078 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The structure format will be re-used in an upcoming change. This change renames to have a more generic name. Signed-off-by: Alexandru Ardelean --- drivers/net/phy/adin.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/net/phy/adin.c b/drivers/net/phy/adin.c index 1dca3e883df4..11ffeaa665a1 100644 --- a/drivers/net/phy/adin.c +++ b/drivers/net/phy/adin.c @@ -153,13 +153,13 @@ static const struct adin_clause45_mmd_map adin_clause45_mmd_map[] = { { MDIO_MMD_PCS, MDIO_PCS_EEE_WK_ERR, ADIN1300_LPI_WAKE_ERR_CNT_REG }, }; -struct adin_hw_stat { +struct adin_map { const char *string; - u16 reg1; - u16 reg2; + u16 val1; + u16 val2; }; -static const struct adin_hw_stat adin_hw_stats[] = { +static const struct adin_map adin_hw_stats[] = { { "total_frames_checked_count", 0x940A, 0x940B }, /* hi + lo */ { "length_error_frames_count", 0x940C }, { "alignment_error_frames_count", 0x940D }, @@ -650,21 +650,21 @@ static void adin_get_strings(struct phy_device *phydev, u8 *data) } static int adin_read_mmd_stat_regs(struct phy_device *phydev, - const struct adin_hw_stat *stat, + const struct adin_map *stat, u32 *val) { int ret; - ret = phy_read_mmd(phydev, MDIO_MMD_VEND1, stat->reg1); + ret = phy_read_mmd(phydev, MDIO_MMD_VEND1, stat->val1); if (ret < 0) return ret; *val = (ret & 0xffff); - if (stat->reg2 == 0) + if (stat->val2 == 0) return 0; - ret = phy_read_mmd(phydev, MDIO_MMD_VEND1, stat->reg2); + ret = phy_read_mmd(phydev, MDIO_MMD_VEND1, stat->val2); if (ret < 0) return ret; @@ -676,17 +676,17 @@ static int adin_read_mmd_stat_regs(struct phy_device *phydev, static u64 adin_get_stat(struct phy_device *phydev, int i) { - const struct adin_hw_stat *stat = &adin_hw_stats[i]; + const struct adin_map *stat = &adin_hw_stats[i]; struct adin_priv *priv = phydev->priv; u32 val; int ret; - if (stat->reg1 > 0x1f) { + if (stat->val1 > 0x1f) { ret = adin_read_mmd_stat_regs(phydev, stat, &val); if (ret < 0) return (u64)(~0); } else { - ret = phy_read(phydev, stat->reg1); + ret = phy_read(phydev, stat->val1); if (ret < 0) return (u64)(~0); val = (ret & 0xffff); From patchwork Thu Jan 16 09:14:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandru Ardelean X-Patchwork-Id: 1224093 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=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=analog.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=analog.onmicrosoft.com header.i=@analog.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-analog-onmicrosoft-com header.b=cCvy15ur; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47yz4y2B6xz9sRR for ; Thu, 16 Jan 2020 20:13:22 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731185AbgAPJNJ (ORCPT ); Thu, 16 Jan 2020 04:13:09 -0500 Received: from mx0a-00128a01.pphosted.com ([148.163.135.77]:28296 "EHLO mx0a-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730741AbgAPJNI (ORCPT ); Thu, 16 Jan 2020 04:13:08 -0500 Received: from pps.filterd (m0167088.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 00G99wnA010395; Thu, 16 Jan 2020 04:13:04 -0500 Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2176.outbound.protection.outlook.com [104.47.57.176]) by mx0a-00128a01.pphosted.com with ESMTP id 2xf93b59cp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jan 2020 04:13:03 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kavSkD2aY0TfnNkIlDR+6BMiWrmRMY5drZO+ESX/7piEQQQRt00j3MG61HZpVyl9VyOMW6UNWC4hQ+W2oNOYzVxYO7g0GdbbDxmbLCDLYuMZYsk9J/U/w56ryF989iYCtCROUk0BSgr1Iua3aAhCTTnz04I0BQi6UKWPBqYhFNIT9bsZ7Cn6oQCItpd5CSACrwK+DTDG4TOYwf1/xcGwaCltiQOOE7EdqfNF56Fkjw91k/3yrQQBabOefbJs2JGrehmO14z7nLViBYTsVuQBr7wnpQ3eSJvIPMFJeeS9Jb2DIQN5A14kG1ZGziI58Bum1sYdVW/nLFU4aHzr45gkBw== 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=Gr1bMg/WQ3g9sQw4N8NqWj4BHtLBykiELSSvg5N0y38=; b=SS/iH03bsLQ/1xQC/I7lMSzuHLiudqTOUGT2xBp7S6HCuxPOJ5b7OKivxre3Ywv8tax49tHdeMLkscfuMpeZDQrvV/diGy9WUhUpEJf04gZ0XTcu8ixuv/i9kttNvnRSG0hJhIWTYP488hM+Quptc98Azf7aGVQ7A8LMTJMh6Tro4RhOwcziUr+Gy+W67uRLyUrjlgPlzAcdX8IoA2bDBxX6q0v48mqvdPmn8oBwdlZpmHGpROojH58UpMmBQ3qClbFue13E47pRV405fPrLFSLnqsV0PAHuzGUNqWjCbvFRSeURfVP6BFmpK2rEji4tqpXqc+cHG/gii6TEVWTB6A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 137.71.25.55) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=analog.com; dmarc=bestguesspass action=none header.from=analog.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector2-analog-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Gr1bMg/WQ3g9sQw4N8NqWj4BHtLBykiELSSvg5N0y38=; b=cCvy15urbv2ZT+oM+rPqt8Vh6INiLjlkYGEm2DhQVVjcAzvIDdYBTCR7jUOX1AkKa8dVmRt62qqw9dni1JXENCncBoSkBgKqAR8R2A5DjlpQZQL7UF4tlcUaUdJJocm0iICydMlGsPbrIhh/bGv53a1ZhG3WZ/y60kMptnCsDvs= Received: from BN6PR03CA0018.namprd03.prod.outlook.com (2603:10b6:404:23::28) by BYAPR03MB4406.namprd03.prod.outlook.com (2603:10b6:a03:d0::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.18; Thu, 16 Jan 2020 09:13:01 +0000 Received: from SN1NAM02FT038.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::208) by BN6PR03CA0018.outlook.office365.com (2603:10b6:404:23::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.19 via Frontend Transport; Thu, 16 Jan 2020 09:13:01 +0000 Received-SPF: Pass (protection.outlook.com: domain of analog.com designates 137.71.25.55 as permitted sender) receiver=protection.outlook.com; client-ip=137.71.25.55; helo=nwd2mta1.analog.com; Received: from nwd2mta1.analog.com (137.71.25.55) by SN1NAM02FT038.mail.protection.outlook.com (10.152.72.69) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.2644.19 via Frontend Transport; Thu, 16 Jan 2020 09:13:00 +0000 Received: from SCSQMBX10.ad.analog.com (scsqmbx10.ad.analog.com [10.77.17.5]) by nwd2mta1.analog.com (8.13.8/8.13.8) with ESMTP id 00G9Clgv032333 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 16 Jan 2020 01:12:48 -0800 Received: from SCSQMBX11.ad.analog.com (10.77.17.10) by SCSQMBX10.ad.analog.com (10.77.17.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Thu, 16 Jan 2020 01:12:57 -0800 Received: from zeus.spd.analog.com (10.64.82.11) by SCSQMBX11.ad.analog.com (10.77.17.10) with Microsoft SMTP Server id 15.1.1779.2 via Frontend Transport; Thu, 16 Jan 2020 01:12:57 -0800 Received: from saturn.ad.analog.com ([10.48.65.124]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 00G9CkjY020088; Thu, 16 Jan 2020 04:12:54 -0500 From: Alexandru Ardelean To: , , CC: , , , , Alexandru Ardelean Subject: [PATCH 3/4] net: phy: adin: implement support for 1588 start-of-packet indication Date: Thu, 16 Jan 2020 11:14:53 +0200 Message-ID: <20200116091454.16032-4-alexandru.ardelean@analog.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200116091454.16032-1-alexandru.ardelean@analog.com> References: <20200116091454.16032-1-alexandru.ardelean@analog.com> MIME-Version: 1.0 X-ADIRoutedOnPrem: True X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:137.71.25.55; IPV:; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(396003)(136003)(39860400002)(376002)(346002)(189003)(199004)(426003)(478600001)(26005)(2616005)(86362001)(336012)(8676002)(5660300002)(356004)(186003)(44832011)(246002)(4326008)(70586007)(316002)(8936002)(1076003)(110136005)(54906003)(36756003)(7696005)(70206006)(2906002)(107886003)(7636002); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR03MB4406; H:nwd2mta1.analog.com; FPR:; SPF:Pass; LANG:en; PTR:nwd2mail10.analog.com; MX:1; A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: edb58788-8a05-4ae2-efba-08d79a6448ed X-MS-TrafficTypeDiagnostic: BYAPR03MB4406: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:800; X-Forefront-PRVS: 02843AA9E0 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lEYOmJJB7k8ZpWWm7plf4vJlDbMg0xnl14Su+MrLPmk0Ij9nT2pPlmyZ3Q0heMo/zk01qnczhyzAueCVziTxK7ukGBcExNgBeBTzZQUMtP/WROUmbPsgiiYgpq6VG8hfPL0TaFbBDV7G+UWR/EwbCh96PMZbzMEf8WbHi5udoS4X9IxOw99LjQFUP3QiQpOJijj9khYj7cz3gmK3FoTo0KFwSIwY0nqScP5y7rv8knFI6zzdIVydXfksrvCgfrQnqYPCX07pfJJM8KHViOtdglGRSWil/nAURtgQMrujZh+gX/7yL0Xcxg/3D8RReOKNz/ZGwvtT4MkE2Hj6Z7MnQZ7AEzkHT+gTr3DjnSGGyiEfhXjyZ5GEFMEgs6OaJRrnV3cFfvIqPBz3ySDHziK6YRoWZ2N7WoGIDu0btpoo79OaljQIAvq8JrSSeOCXQgOK X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2020 09:13:00.5993 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: edb58788-8a05-4ae2-efba-08d79a6448ed X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=eaa689b4-8f87-40e0-9c6f-7228de4d754a; Ip=[137.71.25.55]; Helo=[nwd2mta1.analog.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB4406 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.572 definitions=2020-01-16_02:2020-01-16,2020-01-15 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 adultscore=0 mlxlogscore=999 bulkscore=0 clxscore=1015 mlxscore=0 malwarescore=0 phishscore=0 priorityscore=1501 impostorscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1910280000 definitions=main-2001160078 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The ADIN1300 & ADIN1200 PHYs support detection of IEEE 1588 time stamp packets. This mechanism can be used to signal the MAC via a pulse-signal when the PHY detects such a packet. This reduces the time when the MAC can check these packets and can improve the accuracy of the PTP algorithm. The PHYs support configurable delays for when the signaling happens to the MAC. These delays would typically get adjusted using a userspace phytool to identify the best value for the setup. That values can then be added in the system configuration via device-tree or ACPI and read as an array of 3 elements. For the RX delays, the units are in MII clock cycles, while for TX delays the units are in 8 nano-second intervals. The indication of either RX or TX must use one of 4 pins from the device: LED_0, LINK_ST, GP_CLK and INT_N. The driver will make sure that TX SOP & RX SOP will not use the same pin. Signed-off-by: Alexandru Ardelean --- drivers/net/phy/adin.c | 201 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) diff --git a/drivers/net/phy/adin.c b/drivers/net/phy/adin.c index 11ffeaa665a1..4247fe5d813a 100644 --- a/drivers/net/phy/adin.c +++ b/drivers/net/phy/adin.c @@ -69,6 +69,42 @@ #define ADIN1300_CLOCK_STOP_REG 0x9400 #define ADIN1300_LPI_WAKE_ERR_CNT_REG 0xa000 +#define ADIN1300_SOP_CTRL 0x9428 +#define ADIN1300_SOP_N_8_CYCM_1 GENMASK(6, 4) +#define ADIN1300_SOP_NCYC_EN BIT(3) +#define ADIN1300_SOP_SFD_EN BIT(2) +#define ADIN1300_SOP_RX_EN BIT(1) +#define ADIN1300_SOP_TX_EN BIT(0) + +enum { + SOP_DELAY_10, + SOP_DELAY_100, + SOP_DELAY_1000, + __SOP_DELAY_MAX, +}; + +#define ADIN1300_SOP_RX_DELAY 0x9429 +#define ADIN1300_SOP_RX_10_DEL_NCYC_MSK GENMASK(15, 11) +#define ADIN1300_SOP_RX_10_DEL_NCYC_SEL(x) \ + FIELD_PREP(ADIN1300_SOP_RX_10_DEL_NCYC_MSK, x) +#define ADIN1300_SOP_RX_100_DEL_NCYC_MSK GENMASK(10, 6) +#define ADIN1300_SOP_RX_100_DEL_NCYC_SEL(x) \ + FIELD_PREP(ADIN1300_SOP_RX_100_DEL_NCYC_MSK, x) +#define ADIN1300_SOP_RX_1000_DEL_NCYC_MSK GENMASK(5, 0) +#define ADIN1300_SOP_RX_1000_DEL_NCYC_SEL(x) \ + FIELD_PREP(ADIN1300_SOP_RX_1000_DEL_NCYC_MSK, x) + +#define ADIN1300_SOP_TX_DELAY 0x942a +#define ADIN1300_SOP_TX_10_DEL_N_8_NS_MSK GENMASK(12, 8) +#define ADIN1300_SOP_TX_10_DEL_N_8_NS_SEL(x) \ + FIELD_PREP(ADIN1300_SOP_TX_10_DEL_N_8_NS_MSK, x) +#define ADIN1300_SOP_TX_100_DEL_N_8_NS_MSK GENMASK(7, 4) +#define ADIN1300_SOP_TX_100_DEL_N_8_NS_SEL(x) \ + FIELD_PREP(ADIN1300_SOP_TX_100_DEL_N_8_NS_MSK, x) +#define ADIN1300_SOP_TX_1000_DEL_N_8_NS_MSK GENMASK(3, 0) +#define ADIN1300_SOP_TX_1000_DEL_N_8_NS_SEL(x)\ + FIELD_PREP(ADIN1300_SOP_TX_1000_DEL_N_8_NS_MSK, x) + #define ADIN1300_GE_SOFT_RESET_REG 0xff0c #define ADIN1300_GE_SOFT_RESET BIT(0) @@ -104,6 +140,21 @@ #define ADIN1300_RMII_20_BITS 0x0004 #define ADIN1300_RMII_24_BITS 0x0005 +#define ADIN1300_GE_IO_GP_CLK_OR_CNTRL 0xff3d +#define ADIN1300_GE_IO_GP_OUT_OR_CNTRL 0xff3e +#define ADIN1300_GE_IO_INT_N_OR_CNTRL 0xff3f +#define ADIN1300_GE_IO_LED_A_OR_CNTRL 0xff41 + +/* Common definitions for ADIN1300_GE_IO_* regs */ +enum ge_io_fn { + GE_IO_FN_DFLT, + GE_IO_FN_LINK_STATUS, + GE_IO_FN_TX_SOP_IND, + GE_IO_FN_RX_SOP_IND, + GE_IO_FN_CRS, + GE_IO_FN_COL, +}; + /** * struct adin_cfg_reg_map - map a config value to aregister value * @cfg value in device configuration @@ -172,6 +223,13 @@ static const struct adin_map adin_hw_stats[] = { { "false_carrier_events_count", 0x9414 }, }; +static const struct adin_map adin_ge_io_pins[] = { + { "gp_clk", ADIN1300_GE_IO_GP_CLK_OR_CNTRL, GENMASK(2, 0) }, + { "link_st", ADIN1300_GE_IO_GP_OUT_OR_CNTRL, GENMASK(2, 0) }, + { "int_n", ADIN1300_GE_IO_INT_N_OR_CNTRL, GENMASK(2, 0) }, + { "led_0", ADIN1300_GE_IO_LED_A_OR_CNTRL, GENMASK(3, 0) }, +}; + /** * struct adin_priv - ADIN PHY driver private data * stats statistic counters for the PHY @@ -381,6 +439,145 @@ static int adin_set_edpd(struct phy_device *phydev, u16 tx_interval) val); } +static int adin_set_pin_function(struct phy_device *phydev, + const char *prop_name, + enum ge_io_fn ge_io_fn, + int *selected_pin) +{ + struct device *dev = &phydev->mdio.dev; + const struct adin_map *p; + const char *pin_name; + int i, rc; + + rc = device_property_read_string(dev, prop_name, &pin_name); + if (rc) { + phydev_err(phydev, "Could not get property '%s', error: %d\n", + prop_name, rc); + return rc; + } + + p = NULL; + for (i = 0; i < ARRAY_SIZE(adin_ge_io_pins); i++) { + if (strcmp(adin_ge_io_pins[i].string, pin_name) == 0) { + if (selected_pin) + *selected_pin = i; + p = &adin_ge_io_pins[i]; + break; + } + } + + if (!p) { + phydev_err(phydev, "Invalid pin name %s\n", pin_name); + return -EINVAL; + } + + return phy_modify_mmd(phydev, MDIO_MMD_VEND1, p->val1, p->val2, + ge_io_fn); +} + +static int adin_config_1588_sop_rx(struct phy_device *phydev, int *rx_sop_pin) +{ + struct device *dev = &phydev->mdio.dev; + u8 values[__SOP_DELAY_MAX]; + u16 val; + int rc; + + rc = device_property_read_u8_array(dev, + "adi,1588-rx-sop-delays-cycles", + values, ARRAY_SIZE(values)); + if (rc) + return 0; + + rc = adin_set_pin_function(phydev, "adi,1588-rx-sop-pin-name", + GE_IO_FN_RX_SOP_IND, rx_sop_pin); + if (rc) + return rc; + + val = ADIN1300_SOP_RX_10_DEL_NCYC_SEL(values[SOP_DELAY_10]) | + ADIN1300_SOP_RX_100_DEL_NCYC_SEL(values[SOP_DELAY_100]) | + ADIN1300_SOP_RX_1000_DEL_NCYC_SEL(values[SOP_DELAY_1000]); + + rc = phy_write_mmd(phydev, MDIO_MMD_VEND1, ADIN1300_SOP_RX_DELAY, val); + if (rc < 0) { + adin_set_pin_function(phydev, "adi,1588-rx-sop-pin-name", + GE_IO_FN_DFLT, NULL); + return rc; + } + + return 1; +} + +static int adin_config_1588_sop_tx(struct phy_device *phydev, int rx_sop_pin) +{ + struct device *dev = &phydev->mdio.dev; + u8 values[__SOP_DELAY_MAX]; + int tx_sop_pin = -1; + u16 val; + int i, rc; + + rc = device_property_read_u8_array(dev, + "adi,1588-tx-sop-delays-ns", + values, ARRAY_SIZE(values)); + if (rc) + return 0; + + for (i = 0; i < __SOP_DELAY_MAX; i++) { + if (values[i] % 8 != 0) { + phydev_err(phydev, + "SOP TX delays must be multiples of 8\n"); + return -EINVAL; + } + } + + val = ADIN1300_SOP_TX_10_DEL_N_8_NS_SEL(values[SOP_DELAY_10] / 8) | + ADIN1300_SOP_TX_100_DEL_N_8_NS_SEL(values[SOP_DELAY_100] / 8) | + ADIN1300_SOP_TX_1000_DEL_N_8_NS_SEL(values[SOP_DELAY_1000] / 8); + + rc = adin_set_pin_function(phydev, "adi,1588-tx-sop-pin-name", + GE_IO_FN_TX_SOP_IND, &tx_sop_pin); + if (rc) + return rc; + + if (rx_sop_pin == tx_sop_pin) { + phydev_err(phydev, + "TX SOP can't use the same pin as RX SOP\n"); + return -EFAULT; + } + + rc = phy_write_mmd(phydev, MDIO_MMD_VEND1, ADIN1300_SOP_TX_DELAY, val); + if (rc < 0) { + adin_set_pin_function(phydev, "adi,1588-tx-sop-pin-name", + GE_IO_FN_DFLT, NULL); + return rc; + } + + return 1; +} + +static int adin_config_1588_sop(struct phy_device *phydev) +{ + int rx_sop_pin = -1; + u16 val = 0; + int rc; + + rc = adin_config_1588_sop_rx(phydev, &rx_sop_pin); + if (rc < 0) + return rc; + if (rc == 1) + val |= ADIN1300_SOP_RX_EN; + + rc = adin_config_1588_sop_tx(phydev, rx_sop_pin); + if (rc < 0) + return rc; + if (rc == 1) + val |= ADIN1300_SOP_TX_EN; + + if (val) + val |= ADIN1300_SOP_SFD_EN; + + return phy_write_mmd(phydev, MDIO_MMD_VEND1, ADIN1300_SOP_CTRL, val); +} + static int adin_get_tunable(struct phy_device *phydev, struct ethtool_tunable *tuna, void *data) { @@ -429,6 +626,10 @@ static int adin_config_init(struct phy_device *phydev) if (rc < 0) return rc; + rc = adin_config_1588_sop(phydev); + if (rc < 0) + return rc; + phydev_dbg(phydev, "PHY is using mode '%s'\n", phy_modes(phydev->interface)); From patchwork Thu Jan 16 09:14:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandru Ardelean X-Patchwork-Id: 1224091 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=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=analog.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=analog.onmicrosoft.com header.i=@analog.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-analog-onmicrosoft-com header.b=PnLFtZKb; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47yz4n6tz9z9sR4 for ; Thu, 16 Jan 2020 20:13:13 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731273AbgAPJNK (ORCPT ); Thu, 16 Jan 2020 04:13:10 -0500 Received: from mx0a-00128a01.pphosted.com ([148.163.135.77]:28912 "EHLO mx0a-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726956AbgAPJNI (ORCPT ); Thu, 16 Jan 2020 04:13:08 -0500 Received: from pps.filterd (m0167089.ppops.net [127.0.0.1]) by mx0a-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 00G9D4qc025656; Thu, 16 Jan 2020 04:13:04 -0500 Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2172.outbound.protection.outlook.com [104.47.57.172]) by mx0a-00128a01.pphosted.com with ESMTP id 2xfc59my67-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jan 2020 04:13:04 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kQCUgSAaVOkvHSJ+KWHg3V5v02tgvZ/ar/uz2FmuOABvE6eWm8OGyU+gBiOPUtM3RE6FC5Tea5zQYnjkR6tW4wJQMMSyH+nKk3JsluJjj4v0fPb/YOX77SUOICKhki5gs9yZPU2hdj0oC4STyfCxGTTVFpqprJQ1OnvUxMog69uqj6Q7EzlDIg6bUHg8Nl266A2/v3MrNJgArm5cF6p/maH1XnWIos2avdL888pl0omE3wfgbHFUhEgAFp6/ZhGZaS59Iav179K09FFZevzez1FmQI9/XHMTx1CbcpfSlzf6hT7KPBAlCEpufryAM+bQBdvZqLEgD5tTzkSXEHoQng== 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=bMxzeGEbuGM/YmErLjwbYXG8v481k0JRWmopiSbo/Zc=; b=I3/j1xixMXXpjDVcvZ5jpV+3xTq0vk0WY7lt0u98daY/2+BKjuvwjMWuzlkEP0lGsDfbZLoZrZg0dbT4hVWSgLn7D4I6/t9Bb3Ycrmxw2DBlr8Ij/iWzeeUl7eFOH3ogDIlo8ec0GYBfSTHtERWZDASgFrmdUQt/ccjxAX8ga8mT8ug/nk3pLdzV9Wzwp/9Z8e2SzGvlTPRhD7wQwcw7iCitoO+6s3gW+1PYutA5bjLCwgL8WaugjoTh5mIZo7B2p5lZKXLxhsU6DZO5QGOQt2sFa6rp3CVwOEsj3wKuOkJgLXrhGR5L7kQxkaZGiQfU5CUhMqDOcDNCe/zyUgo9OA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 137.71.25.55) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=analog.com; dmarc=bestguesspass action=none header.from=analog.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector2-analog-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bMxzeGEbuGM/YmErLjwbYXG8v481k0JRWmopiSbo/Zc=; b=PnLFtZKbO7DPTPfCYgqGwo359Iwn/W8fNQWmVVruodgQaWCjPwGDHKp63mO7/IYxIzCDsWhE5Q2p4ljOazWQciv69gSVSl8XjAghMcZOnBIL/fL7+DiXHGtVANTnu4YpgSG436EV1aMb8r1VQl/Z4sbNKEvLzeE++IhS13sTZRk= Received: from CH2PR03CA0005.namprd03.prod.outlook.com (2603:10b6:610:59::15) by DM5PR03MB2490.namprd03.prod.outlook.com (2603:10b6:3:72::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.20; Thu, 16 Jan 2020 09:13:02 +0000 Received: from SN1NAM02FT046.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::200) by CH2PR03CA0005.outlook.office365.com (2603:10b6:610:59::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.18 via Frontend Transport; Thu, 16 Jan 2020 09:13:02 +0000 Received-SPF: Pass (protection.outlook.com: domain of analog.com designates 137.71.25.55 as permitted sender) receiver=protection.outlook.com; client-ip=137.71.25.55; helo=nwd2mta1.analog.com; Received: from nwd2mta1.analog.com (137.71.25.55) by SN1NAM02FT046.mail.protection.outlook.com (10.152.72.191) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.2644.19 via Frontend Transport; Thu, 16 Jan 2020 09:13:01 +0000 Received: from SCSQMBX11.ad.analog.com (scsqmbx11.ad.analog.com [10.77.17.10]) by nwd2mta1.analog.com (8.13.8/8.13.8) with ESMTP id 00G9CmnM032334 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 16 Jan 2020 01:12:48 -0800 Received: from SCSQMBX10.ad.analog.com (10.77.17.5) by SCSQMBX11.ad.analog.com (10.77.17.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1779.2; Thu, 16 Jan 2020 01:12:59 -0800 Received: from zeus.spd.analog.com (10.64.82.11) by SCSQMBX10.ad.analog.com (10.77.17.5) with Microsoft SMTP Server id 15.1.1779.2 via Frontend Transport; Thu, 16 Jan 2020 01:12:59 -0800 Received: from saturn.ad.analog.com ([10.48.65.124]) by zeus.spd.analog.com (8.15.1/8.15.1) with ESMTP id 00G9CkjZ020088; Thu, 16 Jan 2020 04:12:55 -0500 From: Alexandru Ardelean To: , , CC: , , , , Alexandru Ardelean Subject: [PATCH 4/4] dt-bindings: net: adin: document 1588 TX/RX SOP bindings Date: Thu, 16 Jan 2020 11:14:54 +0200 Message-ID: <20200116091454.16032-5-alexandru.ardelean@analog.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200116091454.16032-1-alexandru.ardelean@analog.com> References: <20200116091454.16032-1-alexandru.ardelean@analog.com> MIME-Version: 1.0 X-ADIRoutedOnPrem: True X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:137.71.25.55; IPV:; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(39860400002)(396003)(136003)(346002)(376002)(199004)(189003)(2906002)(8936002)(7696005)(1076003)(5660300002)(44832011)(4326008)(7636002)(8676002)(426003)(478600001)(186003)(336012)(316002)(356004)(36756003)(107886003)(54906003)(110136005)(70206006)(86362001)(26005)(2616005)(70586007)(246002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB2490; H:nwd2mta1.analog.com; FPR:; SPF:Pass; LANG:en; PTR:nwd2mail10.analog.com; A:1; MX:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d2eab73c-fad3-4e37-a269-08d79a64496d X-MS-TrafficTypeDiagnostic: DM5PR03MB2490: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-Forefront-PRVS: 02843AA9E0 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eyMqucs46SMlfBNqTJskMe7t8WB0XrIr4V4QbHJ4wDXJB9uDTPT8nv1VhP9z1mQ8RnkMbcKAC957cxNto2/mVsR4bu8Vv/X32XSfjQGZhXYCNtlJqQLdiQfqvRX3vkBjOjI3o1ZyQSDf/GIlXP/tXxQUcGmYcKQjML1W+aGsGQFXgLseT7zDqJagdyrcbt9NowYcIzbZ/ttxTGxS7RYwrNS88A2tqVTeWbIVg/HrW43VNEx2kaEuMCpkdCd49Kvi/AKibjkDr5Ly4nTHhG5vkzq8aF1g/uL53TduEQK3DXbcB6uMGtwtBgPrBuQFlZsnvUXNo29D1bybYFd4Ljoi5qmISmvFcoidIsmQ8/HCTpswTh27pvXVbAIdj5yeOEps3VmIjybr3XHi9abByAue7WXGVwx3iALRC5pmIwLKDXq5jN7ta6q//3xQ2nFRVFpw X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2020 09:13:01.4352 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d2eab73c-fad3-4e37-a269-08d79a64496d X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=eaa689b4-8f87-40e0-9c6f-7228de4d754a; Ip=[137.71.25.55]; Helo=[nwd2mta1.analog.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2490 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.572 definitions=2020-01-16_02:2020-01-16,2020-01-15 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 mlxlogscore=941 malwarescore=0 suspectscore=0 bulkscore=0 clxscore=1015 mlxscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1910280000 definitions=main-2001160078 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This change documents the device-tree bindings for the TX/RX indication of IEEE 1588 packets. Signed-off-by: Alexandru Ardelean --- .../devicetree/bindings/net/adi,adin.yaml | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/Documentation/devicetree/bindings/net/adi,adin.yaml b/Documentation/devicetree/bindings/net/adi,adin.yaml index d95cc691a65f..eb56f35309e0 100644 --- a/Documentation/devicetree/bindings/net/adi,adin.yaml +++ b/Documentation/devicetree/bindings/net/adi,adin.yaml @@ -36,6 +36,60 @@ properties: enum: [ 4, 8, 12, 16, 20, 24 ] default: 8 + adi,1588-rx-sop-delays-cycles: + allOf: + - $ref: /schemas/types.yaml#definitions/uint8-array + - items: + - minItems: 3 + maxItems: 3 + description: | + Enables Start Packet detection (SOP) for received IEEE 1588 time stamp + controls, and configures the number of cycles (of the MII RX_CLK clock) + to delay the indication of RX SOP frames for 10/100/1000 BASE-T links. + The first element (in the array) configures the delay for 10BASE-T, + the second for 100BASE-T, and the third for 1000BASE-T. + + adi,1588-rx-sop-pin-name: + description: | + This option must be used in together with 'adi,1588-rx-sop-delays-cycles' + to specify which physical pin should be used to signal the MAC that + the PHY is currently processing an IEEE 1588 timestamp control packet. + The driver will report an error if the value of this property is the + same as 'adi,1588-tx-sop-pin-name' + enum: + - gp_clk + - link_st + - int_n + - led_0 + + adi,1588-tx-sop-delays-ns: + allOf: + - $ref: /schemas/types.yaml#definitions/uint8-array + - items: + - minItems: 3 + maxItems: 3 + description: | + Enables Start Packet detection (SOP) for IEEE 1588 time stamp controls, + and configures the number of nano-seconds to delay the indication of + TX frames for 10/100/1000 BASE-T links. + The first element (in the array) configures the delay for 10BASE-T, + the second for 100BASE-T, and the third for 1000BASE-T. + The delays must be multiples of 8 ns (i.e. 8, 16, 24, etc). + + adi,1588-tx-sop-pin-name: + description: | + This option must be used in together with 'adi,1588-tx-sop-delays-ns' + to specify which physical pin should be used to signal the MAC that + the PHY is currently processing an IEEE 1588 timestamp control packet + on the TX path. + The driver will report an error if the value of this property is the + same as 'adi,1588-rx-sop-pin-name' + enum: + - gp_clk + - link_st + - int_n + - led_0 + examples: - | ethernet { @@ -62,5 +116,11 @@ examples: reg = <1>; adi,fifo-depth-bits = <16>; + + adi,1588-rx-sop-delays-cycles = [ 00 00 00 ]; + adi,1588-rx-sop-pin-name = "int_n"; + + adi,1588-tx-sop-delays-ns = [ 00 08 10 ]; + adi,1588-tx-sop-pin-name = "led_0"; }; };