linux/drivers/pci/controller
Mauro Carvalho Chehab b22dbbb245 PCI: kirin: Support PERST# GPIOs for HiKey970 external PEX 8606 bridge
On HiKey970, there's a PEX 8606 PCI bridge on its PHY with 6 lanes. Only 4
lanes are connected:

  lane 0 - connected to Kirin 970 (upstream)
  lane 4 - M.2 slot
  lane 5 - mini PCIe slot
  lane 6 - on-board Ethernet controller

Each lane has its own PERST# GPIO pin and needs a clock request.

Add support to parse a DT schema containing the above data.

HiKey 970 requires a little more waiting time for the PCI bridge - which is
outside the SoC - to finish the PERST# reset, and then initialize the eye
diagram.

Increase the waiting time for the PERST# signals accordingly.

[bhelgaas: squash refcount fix from Wan Jiabing <wanjiabing@vivo.com>:
https://lore.kernel.org/r/20211103062518.25695-1-wanjiabing@vivo.com
and drop "parent" refcount per
https://lore.kernel.org/all/20211103143059.GA683503@bhelgaas/]
Link: https://lore.kernel.org/r/bb391a0e0f0863b66e645048315fab1a4f63f277.1634812676.git.mchehab+huawei@kernel.org
Link: https://lore.kernel.org/all/9a365cffe5af9ec5a1f79638968c3a2efa979b65.1634622716.git.mchehab+huawei@kernel.org/
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Xiaowei Song <songxiaowei@hisilicon.com>
Cc: Kishon Vijay Abraham I <kishon@ti.com>
2021-11-04 14:32:21 -05:00
..
cadence Merge branch 'remotes/lorenzo/pci/endpoint' 2021-09-02 14:56:51 -05:00
dwc PCI: kirin: Support PERST# GPIOs for HiKey970 external PEX 8606 bridge 2021-11-04 14:32:21 -05:00
mobiveil PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
Kconfig PCI: controller: PCI_IXP4XX should depend on ARCH_IXP4XX 2021-07-23 16:10:05 +01:00
Makefile PCI: ixp4xx: Add a new driver for IXP4xx 2021-06-17 11:42:48 +02:00
pci-aardvark.c Merge branch 'remotes/lorenzo/pci/aardvark' 2021-09-02 14:56:46 -05:00
pci-ftpci100.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pci-host-common.c PCI/MSI: Make pci_host_common_probe() declare its reliance on MSI domains 2021-04-20 14:11:22 +01:00
pci-host-generic.c PCI: Unify ECAM constants in native PCI Express drivers 2020-12-10 14:55:49 -06:00
pci-hyperv-intf.c
pci-hyperv.c Merge branch 'remotes/lorenzo/pci/hyper-v' 2021-09-02 14:56:47 -05:00
pci-ixp4xx.c ARM: ixp4xx: fix building both pci drivers 2021-08-12 23:10:09 +02:00
pci-loongson.c PCI: loongson: Simplify loongson_pci_probe() return expression 2020-10-02 12:56:31 +01:00
pci-mvebu.c PCI: mvebu: Fix duplicate resource requests 2020-11-04 13:55:30 -06:00
pci-rcar-gen2.c PCI: rcar-gen2: Use fallthrough pseudo-keyword 2020-09-07 15:17:20 +01:00
pci-tegra.c Merge branch 'remotes/lorenzo/pci/tegra' 2021-09-02 14:56:50 -05:00
pci-thunder-ecam.c PCI: thunder: Fix compile testing 2021-03-11 15:07:46 -06:00
pci-thunder-pem.c PCI: thunder: Fix compile testing 2021-03-11 15:07:46 -06:00
pci-v3-semi.c PCI: v3-semi: Remove unneeded break 2020-10-20 10:59:55 -05:00
pci-versatile.c
pci-xgene-msi.c Merge branch 'remotes/lorenzo/pci/xgene' 2021-09-02 14:56:51 -05:00
pci-xgene.c Merge branch 'pci/kernel-doc' 2021-07-06 10:56:29 -05:00
pcie-altera-msi.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pcie-altera.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pcie-brcmstb.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pcie-hisi-error.c PCI: hip: Add handling of HiSilicon HIP PCIe controller errors 2020-09-16 10:30:42 +01:00
pcie-iproc-bcma.c PCI: iproc: Fix BCMA probe resource handling 2021-08-04 12:20:00 +01:00
pcie-iproc-msi.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pcie-iproc-platform.c PCI: iproc: Fix using plain integer as NULL pointer in iproc_pcie_pltfm_probe 2020-10-09 13:37:57 +01:00
pcie-iproc.c PCI: Fix kernel-doc formatting 2021-07-06 10:37:46 -05:00
pcie-iproc.h PCI: Fix kernel-doc formatting 2021-07-06 10:37:46 -05:00
pcie-mediatek-gen3.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pcie-mediatek.c Merge branch 'remotes/lorenzo/pci/mediatek' 2021-09-02 14:56:49 -05:00
pcie-microchip-host.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pcie-rcar-ep.c Merge branch 'remotes/lorenzo/pci/endpoint' 2021-09-02 14:56:51 -05:00
pcie-rcar-host.c Merge branch 'remotes/lorenzo/pci/rcar' 2021-09-02 14:56:49 -05:00
pcie-rcar.c
pcie-rcar.h PCI: rcar: Add L1 link state fix into data abort hook 2021-08-16 14:51:30 +01:00
pcie-rockchip-ep.c PCI: endpoint: Add virtual function number in pci_epc ops 2021-08-19 14:13:28 +01:00
pcie-rockchip-host.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pcie-rockchip.c PCI: rockchip: Make 'ep-gpios' DT property optional 2021-02-23 14:23:50 -06:00
pcie-rockchip.h PCI: Unify ECAM constants in native PCI Express drivers 2020-12-10 14:55:49 -06:00
pcie-xilinx-cpm.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
pcie-xilinx-nwl.c Merge branch 'remotes/lorenzo/pci/xilinx-nwl' 2021-09-02 14:56:51 -05:00
pcie-xilinx.c PCI: Bulk conversion to generic_handle_domain_irq() 2021-08-02 11:53:05 -05:00
vmd.c PCI: VMD: ACPI: Make ACPI companion lookup work for VMD bus 2021-09-02 17:59:58 +02:00