From nobody Fri Dec 19 16:08:39 2025 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 951BBC77B73 for ; Thu, 27 Apr 2023 06:03:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242941AbjD0GDH (ORCPT ); Thu, 27 Apr 2023 02:03:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58842 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242672AbjD0GDC (ORCPT ); Thu, 27 Apr 2023 02:03:02 -0400 Received: from mo4-p02-ob.smtp.rzone.de (mo4-p02-ob.smtp.rzone.de [85.215.255.82]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 20E163585 for ; Wed, 26 Apr 2023 23:03:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682574660; cv=none; d=strato.com; s=strato-dkim-0002; b=UhuubxIkc5Dsp4k3P3b/n/AcpMUnJ9rbdnQ0mV6XSwlEOHFnnx2b+P4mflk4E7x8gc AOehoYTmqTkMzw6DjVStMPBtGbBtHqAf4KoCbYMpFiV3Sf2KQZQwzaTzikK9vDEfYmyH /A278JUWmyxthJ2EJAWJbbbsOLG8iFEUUVZLfUGDUWtWvYe8zonGz4cc2AIl9yQM1JGz roj/S+EiNA08ET7Nw+/6xHsDK2RcUJfAsdYfcVTAE3QyZmnYu4eQPaxCoFZ2ih/JOl3J MlTffVUQxQrRFroLbgs8PJPCPyCzu4Sc8v6gOduFji1q636IyRWwC0bnczKmczU60E7v uR2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1682574660; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=/89t7kagvmVUH2PkZ3RsurDh1iH7jgvxPKVl7Tj7Ex8=; b=Z3tTuhadfiFgFGGc+YEAGgHMYc4kzu6T97vOI+a5XQBo+Borf96e6+Wam4AsRp25xJ 3tZHEpEnGaVBNwuIfj0GTyK8eEGB+ttghRvFj6OpoaijK2lAf6E53/yeR5FlmlQPKHH4 e3w+mH2Umen/cBt2euUNZpHY3sKqIf7aNP4NOH9hIxTGqPZptt0RRR5eb4ATagaINrZ1 xD44pmH7ANynoMUb/bCzFOQdTFWL+U9gcOrd8lMkP/Gh28s0t8s2tZ42FfA8cdj/jPty Z6HmhUAGAxqEuUOqRdDzWkcnVjJ8mVkR3tMnG1zH+QoLM3JLgc3TDBupxy+IGfryHsmd ckhg== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo02 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1682574660; s=strato-dkim-0002; d=ibv-augsburg.de; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=/89t7kagvmVUH2PkZ3RsurDh1iH7jgvxPKVl7Tj7Ex8=; b=HqukGcd64cDnoBPVC4+dLIA3AEpSTQcDsG6aEsWspO3tAq9tqo31zfGApwucz3Waxm O34iM2JZeYpE1kWzUolPABs9LfYKER4dLmN2NUYjwduBxlRd1+5ie1Sa/D5X3mI05kBg j8tkOGCBL6ef4C8msmoAxfD2ZDILVlN2uoWqTBLGenZ4fn/dT3/j8pdwQBae48WUmnmH b+gNdnEDVcqlVTxZ6icr32tcFXvvcXnZUZqChOYwVuOFOCaKHqtsa4GmrTfr2rixVvgD LMygaFQ6o+OSOhmK5XmuaG7kjVQmsy4OQS8GSJOIH2JSVe1wOBDq+eYEKMccBe8WL7/1 rGEA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1682574660; s=strato-dkim-0003; d=ibv-augsburg.de; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=/89t7kagvmVUH2PkZ3RsurDh1iH7jgvxPKVl7Tj7Ex8=; b=jD0YsMM0J5MLq9VDYVcJpnql7ape2cXTqxrySp4I2Mhg+Al4ua2paXfQU1JfpdWRUB nhGZxgPpptJR1OB/pGCA== X-RZG-AUTH: ":KGMJfE6heLGk8b3w7Oa1fDtXwBjeDczIOHPRx8yNRKhFG/cxcP9dNdI9SxioDT8RvZMqtMfbyXFLOT+2odkF/80=" Received: from localhost.localdomain by smtp.strato.de (RZmta 49.4.0 DYNA|AUTH) with ESMTPSA id d6376fz3R5p0NqM (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Thu, 27 Apr 2023 07:51:00 +0200 (CEST) From: Dominic Rath To: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, tjoseph@cadence.com Cc: bhelgaas@google.com, lpieralisi@kernel.org, nm@ti.com, vigneshr@ti.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, christian.gmeiner@gmail.com, bahle@ibv-augsburg.de, Dominic Rath Subject: [PATCH v2 1/3] dt-bindings: phy: cadence-torrent: Add latency properties Date: Thu, 27 Apr 2023 07:50:30 +0200 Message-Id: <20230427055032.85015-2-rath@ibv-augsburg.de> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20230427055032.85015-1-rath@ibv-augsburg.de> References: <20230427055032.85015-1-rath@ibv-augsburg.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Alexander Bahle Add "tx-phy-latency-ps" and "rx-phy-latency-ps" DT bindings for setting the PCIe PHY latencies. The properties expect a list of uint32 PHY latencies in picoseconds for every supported speed starting at PCIe Gen1, e.g.: tx-phy-latency-ps =3D <100000 200000>; /* Gen1: 100ns, Gen2: 200ns */ rx-phy-latency-ps =3D <150000 250000>; /* Gen1: 150ns, Gen2: 250ns */ Signed-off-by: Alexander Bahle Signed-off-by: Dominic Rath Reviewed-by: Christian Gmeiner --- .../bindings/phy/phy-cadence-torrent.yaml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml= b/Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml index 2ad1faadda2a..93228a304395 100644 --- a/Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml +++ b/Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml @@ -126,6 +126,24 @@ patternProperties: enum: [2160, 2430, 2700, 3240, 4320, 5400, 8100] default: 8100 =20 + tx-phy-latency-ps: + description: + The PHY latencies for the TX direction applied to PCIe PTM times= tamps. Most + PCIe PHYs have asynchronous latencies for their RX and TX paths.= To obtain + accurate PTM timestamps, the PCIe PTM specification requires tha= t the time + at which the first serial bit is present on the serial lines be = taken. + Should contain picosecond latency values for each supported spee= d, + starting with Gen1 latency. + + rx-phy-latency-ps: + description: + The PHY latencies for the RX direction applied to the PTM timest= amps. Most + PCIe PHYs have asynchronous latencies for their RX and TX paths.= To obtain + accurate PTM timestamps, the PCIe PTM specification requires tha= t the time + at which the first serial bit is present on the serial lines be = taken. + Should contain picosecond latency values for each supported spee= d, + starting with Gen1 latency. + required: - reg - resets @@ -203,6 +221,8 @@ examples: cdns,phy-type =3D ; cdns,num-lanes =3D <2>; cdns,ssc-mode =3D ; + tx-phy-latency-ps =3D <138800 69400>; + rx-phy-latency-ps =3D <185200 92600>; }; =20 phy@2 { --=20 2.36.0 From nobody Fri Dec 19 16:08:39 2025 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 9EC3CC77B73 for ; Thu, 27 Apr 2023 06:03:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242689AbjD0GDK (ORCPT ); Thu, 27 Apr 2023 02:03:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242855AbjD0GDE (ORCPT ); Thu, 27 Apr 2023 02:03:04 -0400 Received: from mo4-p02-ob.smtp.rzone.de (mo4-p02-ob.smtp.rzone.de [81.169.146.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 787C82718 for ; Wed, 26 Apr 2023 23:03:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682574662; cv=none; d=strato.com; s=strato-dkim-0002; b=r2Z3H8w5RN9iabgAS20IvBBEqV0z3Fryt7OwrvD0t1HjgPacnxpFpV+mjDQ/GE7jKp m2l6PkvPY8uHHpOzSZF+WtgqwmDIncP64mRkD5XzZbUqYVGOaAkWbxpBFwpcachSKmAp /HD2tj1XSS7gYO8TgKhpEaKFGQX020O53BLD/dQDyNs9i32Trm7Vtc/6eMFztHBV151/ 4DDbHzGHrjjLREAa76e3BR7rEvhc92Btc2DGzoareB1JEyrJdRuwfN8s+Yjjcl4mDMwm eFbvCEtHqp+OIHHaksfz0lgbEfE10WcuyhAsq50cGk5HBFeLuSvhtlDzR0ASWWz1s38T Qjrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1682574662; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=Ekspz/z9C11R1RgSuCJYQ6EmXeArkizPjSMN4em5BWI=; b=hzyxSD06rb+CcOo2KBQP42LfEMOknq2m81l4OFGabG4izAWXlklEBnagqTSDLzLQod naHYbBjMMCe/axjBehPuMqZ1lyDb5ZRoKNttTu1NE4ZBgJOSgRtdfPjSvyuZhqPTVRwd QgrxkVmhjJhqVEJFNAKxyLum+P3sul6wv/uHbWace3XcRA7e84jxKHBHqE5nMoZk6BlA jPim/z5p6gv82EZXbKs+0n9YYDEzkzFU8OQ5E9xZplfYM7X+4XVFxHUQOwqAYLXcdZES 8OiLgbQeo+Hq+ydtStx9D0JxXMDHLbDwCRKg0ihtoCPi3p+V4znGhOkC/CZ+EufySKU+ edeQ== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo02 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1682574662; s=strato-dkim-0002; d=ibv-augsburg.de; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=Ekspz/z9C11R1RgSuCJYQ6EmXeArkizPjSMN4em5BWI=; b=YGqtHuIfhx98NtuFDlgR3XckLtXLdKSweb/Rj7HpaoXVDuRr38vWF7e5MxRi22+6ON IFFUyhfsBynhXs3tesoCkwz6nNqLxJAFJ2/mkUYwUfApF5pXJ/CkdfT0r+XE7+61Zz9A 9naWl8Bky/9akbmGUMAsywU/Nb6GjPOIkBgxO6+wzu8iTqQ0VPo1/bfshDXj2YQxGFhX nr+iwSiH9ev6gI4ctO9hDFZyOpy7/0E+yvVueJ4QlQUtdq5IITsnMcdcxNr9Aw05FMVz N+eC0GldFjP9DnziUrLPyAM2bk8aMlk7OL7/P/Xkr/GVda0BHIl21ZR1LDUxgTYuPbcy yUhA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1682574662; s=strato-dkim-0003; d=ibv-augsburg.de; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=Ekspz/z9C11R1RgSuCJYQ6EmXeArkizPjSMN4em5BWI=; b=tmNqajGPwKIUyrR+a7TCU5US1S8cBMJ+p4YY7E7jZ6vTaweHjFUgg0DNQAWJarS8AQ vmVYQ9rwCEgwKgUT6BAg== X-RZG-AUTH: ":KGMJfE6heLGk8b3w7Oa1fDtXwBjeDczIOHPRx8yNRKhFG/cxcP9dNdI9SxioDT8RvZMqtMfbyXFLOT+2odkF/80=" Received: from localhost.localdomain by smtp.strato.de (RZmta 49.4.0 DYNA|AUTH) with ESMTPSA id d6376fz3R5p1NqO (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Thu, 27 Apr 2023 07:51:01 +0200 (CEST) From: Dominic Rath To: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, tjoseph@cadence.com Cc: bhelgaas@google.com, lpieralisi@kernel.org, nm@ti.com, vigneshr@ti.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, christian.gmeiner@gmail.com, bahle@ibv-augsburg.de, Dominic Rath Subject: [PATCH v2 2/3] PCI: cadence: Use DT bindings to set PHY latencies Date: Thu, 27 Apr 2023 07:50:31 +0200 Message-Id: <20230427055032.85015-3-rath@ibv-augsburg.de> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20230427055032.85015-1-rath@ibv-augsburg.de> References: <20230427055032.85015-1-rath@ibv-augsburg.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Alexander Bahle Use optional "tx-phy-latency-ps" and "rx-phy-latency-ps" DeviceTree bindings to set the CDNS_PCIE_LM_PTM_LAT_PARAM(_IDX) register(s) during PCIe host and endpoint setup. The properties are lists of uint32 PHY latencies in picoseconds for every supported speed starting at PCIe Gen1, e.g.: tx-phy-latency-ps =3D <100000 200000>; /* Gen1: 100ns, Gen2: 200ns */ rx-phy-latency-ps =3D <150000 250000>; /* Gen1: 150ns, Gen2: 250ns */ There should be a value for every supported speed, otherwise a info message is emitted to let users know that the PTM timestamps from this PCIe device may not be precise enough for some applications. Signed-off-by: Alexander Bahle Signed-off-by: Dominic Rath Acked-by: Achal Verma Reviewed-by: Christian Gmeiner --- .../pci/controller/cadence/pcie-cadence-ep.c | 2 + .../controller/cadence/pcie-cadence-host.c | 1 + drivers/pci/controller/cadence/pcie-cadence.c | 92 +++++++++++++++++++ drivers/pci/controller/cadence/pcie-cadence.h | 23 +++++ 4 files changed, 118 insertions(+) diff --git a/drivers/pci/controller/cadence/pcie-cadence-ep.c b/drivers/pci= /controller/cadence/pcie-cadence-ep.c index b8b655d4047e..6e39126922d1 100644 --- a/drivers/pci/controller/cadence/pcie-cadence-ep.c +++ b/drivers/pci/controller/cadence/pcie-cadence-ep.c @@ -664,6 +664,8 @@ int cdns_pcie_ep_setup(struct cdns_pcie_ep *ep) } pcie->mem_res =3D res; =20 + cdns_pcie_init_ptm_phy_latency(dev, pcie); + ep->max_regions =3D CDNS_PCIE_MAX_OB; of_property_read_u32(np, "cdns,max-outbound-regions", &ep->max_regions); =20 diff --git a/drivers/pci/controller/cadence/pcie-cadence-host.c b/drivers/p= ci/controller/cadence/pcie-cadence-host.c index 940c7dd701d6..8933002f828e 100644 --- a/drivers/pci/controller/cadence/pcie-cadence-host.c +++ b/drivers/pci/controller/cadence/pcie-cadence-host.c @@ -510,6 +510,7 @@ int cdns_pcie_host_setup(struct cdns_pcie_rc *rc) cdns_pcie_detect_quiet_min_delay_set(&rc->pcie); =20 cdns_pcie_host_enable_ptm_response(pcie); + cdns_pcie_init_ptm_phy_latency(dev, pcie); =20 ret =3D cdns_pcie_start_link(pcie); if (ret) { diff --git a/drivers/pci/controller/cadence/pcie-cadence.c b/drivers/pci/co= ntroller/cadence/pcie-cadence.c index 13c4032ca379..1a282ed9b888 100644 --- a/drivers/pci/controller/cadence/pcie-cadence.c +++ b/drivers/pci/controller/cadence/pcie-cadence.c @@ -5,8 +5,100 @@ =20 #include =20 +#include "../../pci.h" #include "pcie-cadence.h" =20 +void cdns_pcie_set_ptm_phy_latency_param(struct cdns_pcie *pcie, bool rx, + u32 speed_index, u32 latency) +{ + u32 val; + + /* Set the speed index */ + val =3D cdns_pcie_readl(pcie, CDNS_PCIE_LM_PTM_LAT_PARAM_IDX); + val =3D ((val & ~CDNS_PCIE_LM_PTM_LAT_PARAM_IDX_PTMLATIN_MASK) | + CDNS_PCIE_LM_PTM_LAT_PARAM_IDX_PTMLATIN(speed_index)); + cdns_pcie_writel(pcie, CDNS_PCIE_LM_PTM_LAT_PARAM_IDX, val); + + val =3D cdns_pcie_readl(pcie, CDNS_PCIE_LM_PTM_LAT_PARAM); + if (rx) { + /* Set the RX direction latency */ + val =3D ((val & ~CDNS_PCIE_LM_PTM_LAT_PARAM_PTMRXLAT_MASK) | + CDNS_PCIE_LM_PTM_LAT_PARAM_PTMRXLAT(latency)); + } else { + /* Set TX direction latency */ + val =3D ((val & ~CDNS_PCIE_LM_PTM_LAT_PARAM_PTMTXLAT_MASK) | + CDNS_PCIE_LM_PTM_LAT_PARAM_PTMTXLAT(latency)); + } + cdns_pcie_writel(pcie, CDNS_PCIE_LM_PTM_LAT_PARAM, val); +} + +static int cdns_pcie_set_ptm_phy_latency(struct device *dev, struct cdns_p= cie *pcie, + bool rx, const char *key) +{ + struct device_node *np; + int max_link_speed; + int param_count; + u32 latency; + int ret; + int i; + + /* Do nothing if there is no phy */ + if (pcie->phy_count < 1) + return 0; + + np =3D dev->of_node; + max_link_speed =3D of_pci_get_max_link_speed(np); + if (max_link_speed < 1) + return -EINVAL; + + /* Only check and use params of the first phy */ + np =3D pcie->phy[0]->dev.of_node; + param_count =3D of_property_count_u32_elems(np, key); + if (param_count < 0 || param_count < max_link_speed) { + dev_info(dev, + "PTM: no %s set for one or more speeds: %d\n", + key, param_count); + } + + /* Don't set param for unsupported speed */ + if (param_count > max_link_speed) + param_count =3D max_link_speed; + + for (i =3D 0; i < param_count; i++) { + ret =3D of_property_read_u32_index(np, key, i, &latency); + if (ret !=3D 0) { + dev_err(dev, "failed to read PTM latency for speed %d from %s\n", + i, key); + return ret; + } + + /* convert ps to ns */ + latency /=3D 1000; + + cdns_pcie_set_ptm_phy_latency_param(pcie, rx, + i, latency); + + dev_dbg(dev, "PTM: %s phy latency Gen.%d: %uns\n", + rx ? "rx" : "tx", i+1, latency); + } + + return 0; +} + +int cdns_pcie_init_ptm_phy_latency(struct device *dev, struct cdns_pcie *p= cie) +{ + int ret; + + ret =3D cdns_pcie_set_ptm_phy_latency(dev, pcie, false, + "tx-phy-latency-ps"); + if (ret) + return ret; + + ret =3D cdns_pcie_set_ptm_phy_latency(dev, pcie, true, + "rx-phy-latency-ps"); + return ret; +} + void cdns_pcie_detect_quiet_min_delay_set(struct cdns_pcie *pcie) { u32 delay =3D 0x3; diff --git a/drivers/pci/controller/cadence/pcie-cadence.h b/drivers/pci/co= ntroller/cadence/pcie-cadence.h index 190786e47df9..483b957a8212 100644 --- a/drivers/pci/controller/cadence/pcie-cadence.h +++ b/drivers/pci/controller/cadence/pcie-cadence.h @@ -120,6 +120,26 @@ #define CDNS_PCIE_LM_PTM_CTRL (CDNS_PCIE_LM_BASE + 0x0da8) #define CDNS_PCIE_LM_TPM_CTRL_PTMRSEN BIT(17) =20 +/* PTM Latency Parameters Index Register */ +#define CDNS_PCIE_LM_PTM_LAT_PARAM_IDX \ + (CDNS_PCIE_LM_BASE + 0x0db0) +#define CDNS_PCIE_LM_PTM_LAT_PARAM_IDX_PTMLATIN_MASK \ + GENMASK(3, 0) +#define CDNS_PCIE_LM_PTM_LAT_PARAM_IDX_PTMLATIN(a) \ + (((a) << 0) & CDNS_PCIE_LM_PTM_LAT_PARAM_IDX_PTMLATIN_MASK) + +/* PTM Latency Parameters Register */ +#define CDNS_PCIE_LM_PTM_LAT_PARAM \ + (CDNS_PCIE_LM_BASE + 0x0db4) +#define CDNS_PCIE_LM_PTM_LAT_PARAM_PTMTXLAT_MASK \ + GENMASK(9, 0) +#define CDNS_PCIE_LM_PTM_LAT_PARAM_PTMTXLAT(a) \ + (((a) << 0) & CDNS_PCIE_LM_PTM_LAT_PARAM_PTMTXLAT_MASK) +#define CDNS_PCIE_LM_PTM_LAT_PARAM_PTMRXLAT_MASK \ + GENMASK(19, 10) +#define CDNS_PCIE_LM_PTM_LAT_PARAM_PTMRXLAT(b) \ + (((b) << 10) & CDNS_PCIE_LM_PTM_LAT_PARAM_PTMRXLAT_MASK) + /* * Endpoint Function Registers (PCI configuration space for endpoint funct= ions) */ @@ -541,6 +561,9 @@ static inline int cdns_pcie_ep_setup(struct cdns_pcie_e= p *ep) #endif =20 void cdns_pcie_detect_quiet_min_delay_set(struct cdns_pcie *pcie); +void cdns_pcie_set_ptm_phy_latency_param(struct cdns_pcie *pcie, bool rx, + u32 speed_index, u32 latency); +int cdns_pcie_init_ptm_phy_latency(struct device *dev, struct cdns_pcie *p= cie); =20 void cdns_pcie_set_outbound_region(struct cdns_pcie *pcie, u8 busnr, u8 fn, u32 r, bool is_io, --=20 2.36.0 From nobody Fri Dec 19 16:08:39 2025 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 93E54C7EE22 for ; Thu, 27 Apr 2023 05:57:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242881AbjD0F5O (ORCPT ); Thu, 27 Apr 2023 01:57:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55522 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242844AbjD0F5L (ORCPT ); Thu, 27 Apr 2023 01:57:11 -0400 X-Greylist: delayed 179 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Wed, 26 Apr 2023 22:57:02 PDT Received: from mo4-p02-ob.smtp.rzone.de (mo4-p02-ob.smtp.rzone.de [85.215.255.80]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7070F3585; Wed, 26 Apr 2023 22:57:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682574663; cv=none; d=strato.com; s=strato-dkim-0002; b=rXCIm1HH1Mu6VPt6Qv0gxr+OAcmA3KtIFU5+zFZQm5QXpAMX8X5jSmabW1ot37jMVz PkhZAl/bRRgnoIFL1DAMLpbJQqcgArxf9PUwwR+KWrJpOm4jJhyptuocvzNX3oC03d5b WTp9v9W6IUBGoXt+cY3gz/V2PVkynfAvJvBShrFO2JBG8ZNbVDGI9HPOvnHvATagdlJi HV0Xb8gri22Ja0UweQgNVDbwQBV5eINmqHPUhK/Ha1Vv4on1lKEPHlXWJOjKqZa/16vB 353CMriwk1OxyecnDHKZjKpUkROTXmh+y/6cWsu5KGjbMZ8sKF4D8Mp65B6VIzAxO5lP cYAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1682574663; s=strato-dkim-0002; d=strato.com; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=EIvpU9hMKyUkMspZXTVgHxY3jbtOy+UwqyUBxKeGoKA=; b=rL7ioc53ajQtOq30Um0PSYZpe6MCFp6DpmQKPtfW9nbHi1h37AOXa4kue/bFr/9vQk f64GPSz2UqXcSXluvAhTLCgUpISjpReN0Q7z0UrBQqRQs59CdLpTj4VfUXkzEkcQzAny 8hp7KXw4ZI4Gplst2apaXo4+gtZ/z0P/SeJ8lt4k/In9zT+cdSMtP6qT4hY8WmqmfGrV M6+S+MN8xLOg/XDZvd+csHcUjjzWVq2bPp7nsAuQ9SwHr4MiZz0PozJdfW6ZUHRFD+lR LKAZenlMyflc0UDFllBQHcWrLWXwBn4sWH9n9EjfssmPcY0Rv3q0JjtQmV2WBS5euAK5 XJnQ== ARC-Authentication-Results: i=1; strato.com; arc=none; dkim=none X-RZG-CLASS-ID: mo02 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1682574663; s=strato-dkim-0002; d=ibv-augsburg.de; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=EIvpU9hMKyUkMspZXTVgHxY3jbtOy+UwqyUBxKeGoKA=; b=ZXHw6i7tCzGQShm8p9IuMSPplGdr2tNrwZDJu6AOaON6OpYvqU+QnjkgeCjzix14Wj wQwbWmBvui4leRUHerARtGRxidD9slnwdgNkb6W7BCBS6b1VnAbFNjtrXVU8ETrgChvk h4cvISKTQDp1QRpO0ofzc5ftFNVwNJckUGOmukSi9Vp4simdERNcw6NpXxzJXbKDHTLV zFDkp4CwyQAgvoGpn+YiiTXWlOSgOENv1aK2H/ZtGgxexjegFj8g6KiYGe9/oHgXWZ7n iotjfEr1Zi8s9l/vjRLcnl1x8+Ifa+W86pHWmLTjIZPNTM8e1SF7Kr0Bar7VqhBYt6xx j7xA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1682574663; s=strato-dkim-0003; d=ibv-augsburg.de; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=EIvpU9hMKyUkMspZXTVgHxY3jbtOy+UwqyUBxKeGoKA=; b=uWMWSr9jSD3sBRBzBTw/+K/VBwv0Gl4s6FE1pca8jPVTO/5j+ijy7DjfQ7ZVejYdNL 6LfzcE1E/tV0TGJHduAw== X-RZG-AUTH: ":KGMJfE6heLGk8b3w7Oa1fDtXwBjeDczIOHPRx8yNRKhFG/cxcP9dNdI9SxioDT8RvZMqtMfbyXFLOT+2odkF/80=" Received: from localhost.localdomain by smtp.strato.de (RZmta 49.4.0 DYNA|AUTH) with ESMTPSA id d6376fz3R5p3NqQ (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Thu, 27 Apr 2023 07:51:03 +0200 (CEST) From: Dominic Rath To: robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, tjoseph@cadence.com Cc: bhelgaas@google.com, lpieralisi@kernel.org, nm@ti.com, vigneshr@ti.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, christian.gmeiner@gmail.com, bahle@ibv-augsburg.de, Dominic Rath Subject: [PATCH v2 3/3] arm64: dts: ti: k3-am64: Add PCIe PHY latency DT binding Date: Thu, 27 Apr 2023 07:50:32 +0200 Message-Id: <20230427055032.85015-4-rath@ibv-augsburg.de> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20230427055032.85015-1-rath@ibv-augsburg.de> References: <20230427055032.85015-1-rath@ibv-augsburg.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Alexander Bahle Add DT bindings for the PCIe PHY latencies. Applies to PCIe in host and endpoint mode. Setting these improves the PTM timestamp accuracy. The values are taken from the Link below. Signed-off-by: Alexander Bahle Signed-off-by: Dominic Rath Link: https://e2e.ti.com/support/processors-group/processors/f/processors-f= orum/998749/am6442-details-regarding-ptm-implementation --- arch/arm64/boot/dts/ti/k3-am642-evm.dts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/= ti/k3-am642-evm.dts index 39feea78a084..f448c98f1aa1 100644 --- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts +++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts @@ -552,6 +552,8 @@ serdes0_pcie_link: phy@0 { #phy-cells =3D <0>; cdns,phy-type =3D ; resets =3D <&serdes_wiz0 1>; + tx-phy-latency-ps =3D <138800 69400>; + rx-phy-latency-ps =3D <185200 92600>; }; }; =20 --=20 2.36.0