From: Vincent Guittot <vincent.guittot@linaro.org>
To: chester62515@gmail.com, mbrugger@suse.com,
ghennadi.procopciuc@oss.nxp.com, s32@nxp.com,
bhelgaas@google.com, jingoohan1@gmail.com, lpieralisi@kernel.org,
kwilczynski@kernel.org, mani@kernel.org, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org, Ionut.Vicovan@nxp.com,
larisa.grigore@nxp.com, Ghennadi.Procopciuc@nxp.com,
ciprianmarian.costea@nxp.com, bogdan.hamciuc@nxp.com,
Frank.li@nxp.com, linux-arm-kernel@lists.infradead.org,
linux-pci@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, imx@lists.linux.dev
Cc: cassel@kernel.org
Subject: [PATCH 0/4 v5] PCI: s32g: Add support for PCIe controller
Date: Tue, 18 Nov 2025 17:02:34 +0100 [thread overview]
Message-ID: <20251118160238.26265-1-vincent.guittot@linaro.org> (raw)
The S32G SoC family has 2 PCIe controllers based on Designware IP.
Add the support for Host mode.
Change since v4:
- Moved allof position and added interrupt-names' restriction in yaml file
- Removed PCIE_S32G_PE0_LINK_DBG_2 and instead use PCIE_PORT_DEBUG0|1
after receiving confirmation that they are the same.
Change since v3:
- Added Root Port node and reorder irq in binding
- Added Root Port management in driver
- Fix Kconfig PCIE_NXP_S32G position
- Use default pme_turn_off method
- Use ops->init() to simplify init and suspend/resume sequence
- Fix some typos.
- Removed MPS and ERROR config. Let core code configs them.
- Removed s32g_pcie_disable_equalization() from internal team request
- Removed dw_pcie_link_up() from suspend/resume functions with [1]
- I'm still waiting feedback from internal team before removing
.get_ltssm() and .link_up() functions.
[1] https://lore.kernel.org/all/20251107044319.8356-1-manivannan.sadhasivam@oss.qualcomm.com/
Change since v2:
- More cleanup on DT binding to comply with schemas/pci/snps,dw-pcie.yaml
- Added new reg and bit fields in pcie-designware.h
- Rename Kconfig PCIE_NXP_S32G and files to use pcie-nxp-s32g prefix
- Prefixed s32G registers with PCIE_S32G_ and use generic regs otherwise
- Use memblock_start_of_DRAM to set coherency boundary and add comments
- Fixed suspend/resume sequence by adding missing pme_turn_off function
- Added .probe_type = PROBE_PREFER_ASYNCHRONOUS to speedup probe
- Added pm_runtime_no_callbacks() as device doesn't have runtime ops
- Use writel/readl in ctrl function instead of dw_pcie_write/read
- Move Maintainer section in a dedicated entry
Change since v1:
- Cleanup DT binding
- Removed useless description and fixed typo, naming and indentation.
- Removed nxp,phy-mode binding until we agreed on a generic binding.
Default (crnss) mode is used for now. Generic binding wil be discussed
in a separate patch.
- Removed max-link-speed and num-lanes which are coming from
snps,dw-pcie-common.yaml. They are needed only if to restrict from the
the default hw config.
- Added unevaluatedProperties: false
- Keep Phys in host node until dw support Root Port node.
- Removed nxp-s32g-pcie-phy-submode.h until there is a generic clock and
spectrum binding.
- Rename files to start with pcie-s32g instead of pci-s32g
- Cleanup pcie-s32-reg.h and use dw_pcie_find_capability()
- cleanup and rename in s32g-pcie.c in addtion to remove useless check or
duplicate code.
- dw_pcie_suspend/resume_noirq() doesn't woork, need to set child device
to reach lowest state.
- Added L: imx@lists.linux.dev in MAINTAINERS
Vincent Guittot (4):
dt-bindings: PCI: s32g: Add NXP PCIe controller
PCI: dw: Add more registers and bitfield definition
PCI: s32g: Add initial PCIe support (RC)
MAINTAINERS: Add MAINTAINER for NXP S32G PCIe driver
.../bindings/pci/nxp,s32g-pcie.yaml | 130 ++++++
MAINTAINERS | 9 +
drivers/pci/controller/dwc/Kconfig | 10 +
drivers/pci/controller/dwc/Makefile | 1 +
drivers/pci/controller/dwc/pcie-designware.h | 8 +
.../pci/controller/dwc/pcie-nxp-s32g-regs.h | 21 +
drivers/pci/controller/dwc/pcie-nxp-s32g.c | 391 ++++++++++++++++++
7 files changed, 570 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pci/nxp,s32g-pcie.yaml
create mode 100644 drivers/pci/controller/dwc/pcie-nxp-s32g-regs.h
create mode 100644 drivers/pci/controller/dwc/pcie-nxp-s32g.c
--
2.43.0
next reply other threads:[~2025-11-18 16:02 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-18 16:02 Vincent Guittot [this message]
2025-11-18 16:02 ` [PATCH 1/4 v5] dt-bindings: PCI: s32g: Add NXP PCIe controller Vincent Guittot
2025-11-18 16:52 ` Frank Li
2025-11-20 11:27 ` Manivannan Sadhasivam
2025-11-20 15:23 ` Rob Herring (Arm)
2025-11-18 16:02 ` [PATCH 2/4 v5] PCI: dw: Add more registers and bitfield definition Vincent Guittot
2025-11-18 16:54 ` Frank Li
2025-11-18 16:02 ` [PATCH 3/4 v5] PCI: s32g: Add initial PCIe support (RC) Vincent Guittot
2025-11-18 17:01 ` Frank Li
2025-11-20 7:25 ` Vincent Guittot
2025-11-20 8:22 ` Manivannan Sadhasivam
2025-11-20 9:06 ` Vincent Guittot
2025-11-20 10:25 ` Manivannan Sadhasivam
2025-11-20 17:57 ` Vincent Guittot
2025-11-18 16:02 ` [PATCH 4/4 v5] MAINTAINERS: Add MAINTAINER for NXP S32G PCIe driver Vincent Guittot
2025-11-26 19:42 ` Ghennadi Procopciuc
2025-11-26 20:17 ` Ciprian Marian Costea
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251118160238.26265-1-vincent.guittot@linaro.org \
--to=vincent.guittot@linaro.org \
--cc=Frank.li@nxp.com \
--cc=Ghennadi.Procopciuc@nxp.com \
--cc=Ionut.Vicovan@nxp.com \
--cc=bhelgaas@google.com \
--cc=bogdan.hamciuc@nxp.com \
--cc=cassel@kernel.org \
--cc=chester62515@gmail.com \
--cc=ciprianmarian.costea@nxp.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=ghennadi.procopciuc@oss.nxp.com \
--cc=imx@lists.linux.dev \
--cc=jingoohan1@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=kwilczynski@kernel.org \
--cc=larisa.grigore@nxp.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mani@kernel.org \
--cc=mbrugger@suse.com \
--cc=robh@kernel.org \
--cc=s32@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).