Hi Peter, On Tue, 12 Mar 2024 at 15:13, Peter Robinson <pbrobin...@gmail.com> wrote: > > Hi Sumit, > > > pcie_imx doesn't seem to share any useful code for iMX8MP SoC and it is > > rather tied to quite old port of pcie_designware driver from Linux which > > suffices only iMX6 specific needs. > > > > But currently we have the common DWC specific bits which alligns pretty > > well with DW PCIe controller on iMX8MP SoC. So lets reuse those common > > bits instead as a new driver for iMX8 SoCs. It should be fairly easy to > > add support for other iMX8 variants to this driver. > > The upstream Linux driver is moving towards a single driver [1] for > imx6 -> imx9, would it be possible to add support for all generations > to this driver and then remove the old driver?
Sorry but that's not in scope of this patch-set and neither do I possess boards with all the imx* SoC variants. > That would allow this > single modern driver and removing the old imx6 specific driver. Folks interested in this can build up on this patch-set and port other imx* variants and then we could have a single modern driver. -Sumit > > Peter > > [1] https://www.spinics.net/lists/linux-pci/msg150359.html > > > iMX8MP SoC also comes up with standalone PCIe PHY support, so hence we > > can reuse the generic PHY infrastructure to power on PCIe PHY. > > > > Testing with this patch-set included: > > > > Verdin iMX8MP # pci enum > > PCIE-0: Link up (Gen1-x1, Bus0) > > Verdin iMX8MP # > > Verdin iMX8MP # nvme scan > > Verdin iMX8MP # > > Verdin iMX8MP # nvme info > > Device 0: Vendor: 0x126f Rev: T0828A0 Prod: AA000000000000000720 > > Type: Hard Disk > > Capacity: 122104.3 MB = 119.2 GB (250069680 x 512) > > Verdin iMX8MP # > > Verdin iMX8MP # load nvme 0 $loadaddr <file-name> > > > > Changes in v3: > > - Rebased on top of U-Boot next. > > - Incorporated misc. updates to commit messages. > > - New patch#2 to refactor reset driver function names. > > - Patch#3: Refactored further for better code reuse. > > - New patch#4 to fix refcount issue with power domain bus. > > - Patch#5: Refactored further for better code reuse. > > - Patch#7 & #8: Added dependency on REGMAP and SYSCON. Also, added > > support for vpcie-supply regulator. > > - Patch#7 & #8: Added error paths and .remove callback. > > - New patch#10 to enable PCIe/NVMe for imx8mp_venice*. > > > > Changes in v2: > > - Renamed PCIe IMX driver pcie_dw_imx8.c -> pcie_dw_imx.c. > > - Added myself as maintainer for PCIe DWC IMX driver support. > > - Incorporated various code and commit message improvement suggestions > > from Marek, thanks. > > - Patch#3: Gate PCIe and USB clocks behind corresponding power domain > > IDs. > > - Patch#4: Expose HSIO PLL clocks as a regular clock driver instead > > similar to what Linux kernel does. > > - Patch#7: Picked up tags. > > > > Sumit Garg (10): > > clk: imx8mp: Add support for PCIe clocks > > reset: imx: Refactor driver to simplify function names > > reset: imx: Add support for i.MX8MP reset controller > > imx8mp: power-domain: Don't power off pd_bus > > imx8mp: power-domain: Add PCIe support > > imx8mp: power-domain: Expose high performance PLL clock > > phy: phy-imx8m-pcie: Add support for i.MX8M{M/P} PCIe PHY > > pci: Add DW PCIe controller support for iMX8MP SoC > > verdin-imx8mp_defconfig: Enable PCIe/NVMe support > > MAINTAINERS: Add entry for PCIe DWC IMX driver > > > > Tim Harvey (1): > > imx8mp_venice_defconfig: Enable PCIe/NVMe support > > > > MAINTAINERS | 6 + > > configs/imx8mp_venice_defconfig | 8 + > > configs/verdin-imx8mp_defconfig | 6 + > > drivers/clk/imx/clk-imx8mp.c | 6 + > > drivers/pci/Kconfig | 11 + > > drivers/pci/Makefile | 1 + > > drivers/pci/pcie_dw_imx.c | 338 ++++++++++++++++++++++++++ > > drivers/phy/Kconfig | 11 + > > drivers/phy/Makefile | 1 + > > drivers/phy/phy-imx8m-pcie.c | 283 +++++++++++++++++++++ > > drivers/power/domain/imx8mp-hsiomix.c | 191 ++++++++++++--- > > drivers/reset/reset-imx7.c | 125 +++++++++- > > 12 files changed, 937 insertions(+), 50 deletions(-) > > create mode 100644 drivers/pci/pcie_dw_imx.c > > create mode 100644 drivers/phy/phy-imx8m-pcie.c > > > > -- > > 2.34.1 > >