diff options
| -rw-r--r-- | drivers/pci/controller/Kconfig | 10 | ||||
| -rw-r--r-- | drivers/pci/controller/Makefile | 1 | ||||
| -rw-r--r-- | drivers/pci/controller/pcie-mobiveil.c | 4 |
3 files changed, 14 insertions, 1 deletions
diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig index 0f7ce5eaeac8..028b287466fb 100644 --- a/drivers/pci/controller/Kconfig +++ b/drivers/pci/controller/Kconfig | |||
| @@ -239,6 +239,16 @@ config PCIE_MEDIATEK | |||
| 239 | Say Y here if you want to enable PCIe controller support on | 239 | Say Y here if you want to enable PCIe controller support on |
| 240 | MediaTek SoCs. | 240 | MediaTek SoCs. |
| 241 | 241 | ||
| 242 | config PCIE_MOBIVEIL | ||
| 243 | bool "Mobiveil AXI PCIe controller" | ||
| 244 | depends on ARCH_ZYNQMP || COMPILE_TEST | ||
| 245 | depends on OF | ||
| 246 | depends on PCI_MSI_IRQ_DOMAIN | ||
| 247 | help | ||
| 248 | Say Y here if you want to enable support for the Mobiveil AXI PCIe | ||
| 249 | Soft IP. It has up to 8 outbound and inbound windows | ||
| 250 | for address translation and it is a PCIe Gen4 IP. | ||
| 251 | |||
| 242 | config PCIE_TANGO_SMP8759 | 252 | config PCIE_TANGO_SMP8759 |
| 243 | bool "Tango SMP8759 PCIe controller (DANGEROUS)" | 253 | bool "Tango SMP8759 PCIe controller (DANGEROUS)" |
| 244 | depends on ARCH_TANGO && PCI_MSI && OF | 254 | depends on ARCH_TANGO && PCI_MSI && OF |
diff --git a/drivers/pci/controller/Makefile b/drivers/pci/controller/Makefile index 24322b92f200..d56a507495c5 100644 --- a/drivers/pci/controller/Makefile +++ b/drivers/pci/controller/Makefile | |||
| @@ -26,6 +26,7 @@ obj-$(CONFIG_PCIE_ROCKCHIP) += pcie-rockchip.o | |||
| 26 | obj-$(CONFIG_PCIE_ROCKCHIP_EP) += pcie-rockchip-ep.o | 26 | obj-$(CONFIG_PCIE_ROCKCHIP_EP) += pcie-rockchip-ep.o |
| 27 | obj-$(CONFIG_PCIE_ROCKCHIP_HOST) += pcie-rockchip-host.o | 27 | obj-$(CONFIG_PCIE_ROCKCHIP_HOST) += pcie-rockchip-host.o |
| 28 | obj-$(CONFIG_PCIE_MEDIATEK) += pcie-mediatek.o | 28 | obj-$(CONFIG_PCIE_MEDIATEK) += pcie-mediatek.o |
| 29 | obj-$(CONFIG_PCIE_MOBIVEIL) += pcie-mobiveil.o | ||
| 29 | obj-$(CONFIG_PCIE_TANGO_SMP8759) += pcie-tango.o | 30 | obj-$(CONFIG_PCIE_TANGO_SMP8759) += pcie-tango.o |
| 30 | obj-$(CONFIG_VMD) += vmd.o | 31 | obj-$(CONFIG_VMD) += vmd.o |
| 31 | # pcie-hisi.o quirks are needed even without CONFIG_PCIE_DW | 32 | # pcie-hisi.o quirks are needed even without CONFIG_PCIE_DW |
diff --git a/drivers/pci/controller/pcie-mobiveil.c b/drivers/pci/controller/pcie-mobiveil.c index cf0aa7cee5b0..a939e8d31735 100644 --- a/drivers/pci/controller/pcie-mobiveil.c +++ b/drivers/pci/controller/pcie-mobiveil.c | |||
| @@ -23,6 +23,8 @@ | |||
| 23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
| 24 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
| 25 | 25 | ||
| 26 | #include "../pci.h" | ||
| 27 | |||
| 26 | /* register offsets and bit positions */ | 28 | /* register offsets and bit positions */ |
| 27 | 29 | ||
| 28 | /* | 30 | /* |
| @@ -130,7 +132,7 @@ struct mobiveil_pcie { | |||
| 130 | void __iomem *config_axi_slave_base; /* endpoint config base */ | 132 | void __iomem *config_axi_slave_base; /* endpoint config base */ |
| 131 | void __iomem *csr_axi_slave_base; /* root port config base */ | 133 | void __iomem *csr_axi_slave_base; /* root port config base */ |
| 132 | void __iomem *apb_csr_base; /* MSI register base */ | 134 | void __iomem *apb_csr_base; /* MSI register base */ |
| 133 | void __iomem *pcie_reg_base; /* Physical PCIe Controller Base */ | 135 | phys_addr_t pcie_reg_base; /* Physical PCIe Controller Base */ |
| 134 | struct irq_domain *intx_domain; | 136 | struct irq_domain *intx_domain; |
| 135 | raw_spinlock_t intx_mask_lock; | 137 | raw_spinlock_t intx_mask_lock; |
| 136 | int irq; | 138 | int irq; |
