|
|
Log in / Subscribe / Register

PCI: tegra: Add Tegra264 support

From:  Thierry Reding <thierry.reding-AT-kernel.org>
To:  Thierry Reding <thierry.reding-AT-kernel.org>, Bjorn Helgaas <bhelgaas-AT-google.com>, Lorenzo Pieralisi <lpieralisi-AT-kernel.org>, Krzysztof WilczyƄski <kwilczynski-AT-kernel.org>, Manivannan Sadhasivam <mani-AT-kernel.org>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Conor Dooley <conor+dt-AT-kernel.org>
Subject:  [PATCH v3 0/6] PCI: tegra: Add Tegra264 support
Date:  Thu, 26 Mar 2026 14:58:47 +0100
Message-ID:  <20260326135855.2795149-1-thierry.reding@kernel.org>
Cc:  Jon Hunter <jonathanh-AT-nvidia.com>, Mikko Perttunen <mperttunen-AT-nvidia.com>, linux-pci-AT-vger.kernel.org, devicetree-AT-vger.kernel.org, linux-tegra-AT-vger.kernel.org
Archive-link:  Article

From: Thierry Reding <treding@nvidia.com>

Hi,

this series adds support for the PCIe controllers found on the Tegra264
SoC. There are six instances, one of which is for internal purposes only
and the other five are general purpose.

The first two patches in the series add the BPMP support needed to power
up/down the PCI link. Patch 3 contains the device tree bindings for the
PCIe controller. Before adding the driver in patch 5, patch 4 introduces
some new common wait times for PCIe and unifies the way that drivers use
them. Finally, patch 6 adds DT nodes for the controllers found on the
Tegra264 SoC.

Regarding merging these patches, I think ideally I'd pick up the PCI
driver patch into the Tegra tree because there is a build dependency on
patches 1 and 2. Furthermore, patch 1 depends on another patch that's
already in the Tegra tree, and there will be conflicts if it is merged
in another tree. Alternatively I can provide a stable branch with
patches 1 and 2 for the PCI maintainers to pull in.

Let me know how you'd like to handle this.

Changes in v3:
- integrate PCI standard wait times patch into the series to maintain
  bisectability
- fix review comments from Mikko

Changes in v2:
- fix an issue with sanity-checking disabled BARs
- address review comments

Thanks,
Thierry

Thierry Reding (6):
  soc/tegra: Update BPMP ABI header
  firmware: tegra: bpmp: Add tegra_bpmp_get_with_id() function
  dt-bindings: pci: Document the NVIDIA Tegra264 PCIe controller
  PCI: Use standard wait times for PCIe link monitoring
  PCI: tegra: Add Tegra264 support
  arm64: tegra: Add PCI controllers on Tegra264

 .../bindings/pci/nvidia,tegra264-pcie.yaml    |  149 +
 arch/arm64/boot/dts/nvidia/tegra264.dtsi      |  248 +-
 drivers/firmware/tegra/bpmp.c                 |   34 +
 drivers/pci/controller/Kconfig                |   10 +-
 drivers/pci/controller/Makefile               |    1 +
 .../cadence/pcie-cadence-host-common.c        |    6 +-
 .../cadence/pcie-cadence-lga-regs.h           |    5 -
 .../pci/controller/mobiveil/pcie-mobiveil.c   |    4 +-
 .../pci/controller/mobiveil/pcie-mobiveil.h   |    5 -
 drivers/pci/controller/pci-aardvark.c         |    7 +-
 drivers/pci/controller/pcie-tegra264.c        |  522 ++
 drivers/pci/controller/pcie-xilinx-nwl.c      |    9 +-
 drivers/pci/controller/plda/pcie-starfive.c   |    9 +-
 drivers/pci/pci.h                             |    2 +
 include/soc/tegra/bpmp-abi.h                  | 4565 +++++++++++++----
 include/soc/tegra/bpmp.h                      |    8 +
 16 files changed, 4629 insertions(+), 955 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/pci/nvidia,tegra264-pcie.yaml
 create mode 100644 drivers/pci/controller/pcie-tegra264.c

-- 
2.52.0




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds