From patchwork Wed May 18 22:39:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Lemon X-Patchwork-Id: 12854199 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 5496BC433EF for ; Wed, 18 May 2022 22:39:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230119AbiERWjl (ORCPT ); Wed, 18 May 2022 18:39:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42148 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229873AbiERWjj (ORCPT ); Wed, 18 May 2022 18:39:39 -0400 Received: from smtp7.emailarray.com (smtp7.emailarray.com [65.39.216.66]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB35A87209 for ; Wed, 18 May 2022 15:39:38 -0700 (PDT) Received: (qmail 89506 invoked by uid 89); 18 May 2022 22:39:36 -0000 Received: from unknown (HELO localhost) (amxlbW9uQGZsdWdzdmFtcC5jb21AMTc0LjIxLjE0NC4yOQ==) (POLARISLOCAL) by smtp7.emailarray.com with SMTP; 18 May 2022 22:39:36 -0000 From: Jonathan Lemon To: netdev@vger.kernel.org Cc: f.fainelli@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, bcm-kernel-feedback-list@broadcom.com, kernel-team@fb.com, davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, edumazet@google.com Subject: [PATCH net-next v5 0/2] Broadcom PTP PHY support Date: Wed, 18 May 2022 15:39:33 -0700 Message-Id: <20220518223935.2312426-1-jonathan.lemon@gmail.com> X-Mailer: git-send-email 2.34.3 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org This adds PTP support for the Broadcom PHY BCM54210E (and the specific variant BCM54213PE that the rpi-5.15 branch uses). This has only been tested on the RPI CM4, which has one port. There are other Broadcom chips which may benefit from using the same framework here, although with different register sets. v4->v5: Reorder so bcm-phy-lib.h shows up first, fixing dependency issues. Use set_normalized_timespec for adjusting ns in adjtime Return upscaled config setting from hwtstamp v3->v4: Squash bcm-phy-lib.h and broadcom.c changes into one patch Reorder so the main patch shows up first. v2->v3: Rearrange patches so they apply in order Use ERR_CAST v1->v2: Squash Kconfig into main patch Move config checks into bcm-phy-lib.h Fix delta_ns calculations in adjtime Uppercase mode selector macros Only use NSE_INIT when necessary Remove the inserted Broadcom RX timestamp from the PTP packet Add perout (chip generated) and fsync out (timer generated) Remove PHY_ID_BCM54213PE special casing (needed for rpi tree) Thanks to Lasse Johnsen for pointing out that the chip's periodic output generation isn't sync'd to any time base. Jonathan Lemon (2): net: phy: broadcom: Add Broadcom PTP hooks to bcm-phy-lib net: phy: broadcom: Add PTP support for some Broadcom PHYs. drivers/net/phy/Kconfig | 10 + drivers/net/phy/Makefile | 1 + drivers/net/phy/bcm-phy-lib.h | 14 + drivers/net/phy/bcm-phy-ptp.c | 868 ++++++++++++++++++++++++++++++++++ drivers/net/phy/broadcom.c | 23 +- 5 files changed, 912 insertions(+), 4 deletions(-) create mode 100644 drivers/net/phy/bcm-phy-ptp.c