linux_dsm_epyc7002/drivers/pci/host
Petr Štetiar 3ea8529acc PCI: imx6: Add reset-gpio-active-high boolean property to DT
Currently the reset-gpio DT property which controls the PCI bus device
reset signal defaults to active-low reset sequence (L=reset state,
H=operation state) plus the code in reset function isn't GPIO polarity
aware - it doesn't matter if the defined reset-gpio is active-low or
active-high, it will always result into active-low reset sequence.

I've tried to fix it properly and change the reset-gpio reset sequence to
be polarity-aware, but this patch has been accepted and then reverted as it
has introduced few backward incompatible issues:

1. Some DTBs, for example, imx6qdl-sabresd, don't define reset-gpio
polarity correctly:

  reset-gpio = <&gpio7 12 0>;

which means that it's defined as active-high, but in reality it's
active-low; thus it wouldn't work without a DTS fix.

2. The logic in the reset function is inverted:

	gpio_set_value_cansleep(imx6_pcie->reset_gpio, 0)
	msleep(100);
	gpio_set_value_cansleep(imx6_pcie->reset_gpio, 1);

so even if some of the i.MX6 boards had reset-gpio polarity defined
correctly in their DTSes, they would stop working.

As we can't break old DTBs, we can't fix them, so we need to introduce this
new DT reset-gpio-active-high boolean property so we can support boards
with active-high reset sequence.

This active-high reset sequence is for example needed on Apalis SoMs, where
GPIO1_IO28, used to PCIe reset is not connected directly to PERST# PCIe
signal, but it's ORed with RESETBMCU coming off the PMIC, and thus is
inverted, active-high.

Tested-by: Tim Harvey <tharvey@gateworks.com>	# Gateworks Ventana boards (which have active-low PERST#)
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Rob Herring <robh@kernel.org>
2016-04-19 19:42:07 -05:00
..
Kconfig Revert "PCI: dra7xx: Mark driver as broken" 2016-03-22 07:50:11 -05:00
Makefile Merge branch 'pci/host-hv' into next 2016-03-15 08:56:16 -05:00
pci-dra7xx.c PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pci-exynos.c PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pci-host-common.c PCI: generic: Expose pci_host_common_probe() for use by other drivers 2016-03-11 15:50:20 -06:00
pci-host-common.h PCI: generic: Expose pci_host_common_probe() for use by other drivers 2016-03-11 15:50:20 -06:00
pci-host-generic.c PCI: generic: Expose pci_host_common_probe() for use by other drivers 2016-03-11 15:50:20 -06:00
pci-hyperv.c PCI: hv: Add paravirtual PCI front-end for Microsoft Hyper-V VMs 2016-02-16 16:56:12 -06:00
pci-imx6.c PCI: imx6: Add reset-gpio-active-high boolean property to DT 2016-04-19 19:42:07 -05:00
pci-keystone-dw.c PCI: keystone: Fix MSI code that retrieves struct pcie_port pointer 2016-02-29 17:18:22 -06:00
pci-keystone.c Merge branch 'pci/host-designware' into next 2016-03-15 08:55:52 -05:00
pci-keystone.h
pci-layerscape.c PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
pci-mvebu.c PCI: mvebu: Remove code restricting accesses to slot 0 2015-10-09 11:23:37 -05:00
pci-rcar-gen2.c PCI: rcar: Add gen2 fallback compatibility string for pci-rcar-gen2 2015-12-09 12:28:21 -06:00
pci-tegra.c PCI: tegra: Remove misleading PHYS_OFFSET 2016-03-08 15:42:56 -06:00
pci-thunder-ecam.c PCI: thunder: Add driver for ThunderX-pass{1,2} on-chip devices 2016-03-11 16:10:48 -06:00
pci-thunder-pem.c PCI: thunder: Add PCIe host driver for ThunderX processors 2016-03-11 15:53:41 -06:00
pci-versatile.c PCI: generic,versatile: Remove unused pci_sys_data structures 2015-11-25 12:08:04 -06:00
pci-xgene-msi.c irqdomain/msi: Use fwnode instead of of_node 2015-10-13 19:01:25 +02:00
pci-xgene.c PCI/MSI: xgene: Remove msi_controller assignment 2015-09-25 18:24:28 -05:00
pcie-altera-msi.c PCI changes for the v4.4 merge window: 2015-11-06 11:29:53 -08:00
pcie-altera.c PCI: altera: Fix altera_pcie_link_is_up() 2016-03-11 12:14:39 -06:00
pcie-designware-plat.c PCI: designware: Add driver for prototyping kits based on ARC SDP 2016-03-15 08:50:45 -05:00
pcie-designware.c PCI: designware: Add default link up check if sub-driver doesn't override 2016-03-15 08:50:45 -05:00
pcie-designware.h PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pcie-hisi.c PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
pcie-iproc-bcma.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc-msi.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc-platform.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc.c PCI: iproc: Allow multiple devices except on PAXC 2016-01-27 16:52:24 -06:00
pcie-iproc.h PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-qcom.c PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pcie-rcar.c PCI: rcar: Remove PCI_PROBE_ONLY handling 2016-02-05 14:22:41 -06:00
pcie-spear13xx.c PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pcie-xilinx-nwl.c PCI: xilinx-nwl: Add support for Xilinx NWL PCIe Host Controller 2016-03-11 12:42:31 -06:00
pcie-xilinx.c PCI: xilinx: Don't call pci_fixup_irqs() on Microblaze 2016-03-08 14:06:17 -06:00