aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2018-08-15 15:59:14 -0400
committerBjorn Helgaas <bhelgaas@google.com>2018-08-15 15:59:14 -0400
commit732c47019de9033a68ba50175b469c9cd105df73 (patch)
treeea3536e07c3e5194fbb7a0e7a4df7273ad024f67
parent0ea77d2b209ac50cb15388cf0824c95e6763ed31 (diff)
parent6f2c73c124b14808d210722fd1c0c8938f9db3ba (diff)
Merge branch 'remotes/lorenzo/pci/mobiveil'
- Fix mobiveil iomem/phys_addr_t type usage (Lorenzo Pieralisi) - Fix mobiveil missing include file (Lorenzo Pieralisi) - Add mobiveil Kconfig/Makefile support (Lorenzo Pieralisi) * remotes/lorenzo/pci/mobiveil: PCI: mobiveil: Add Kconfig/Makefile entries PCI: mobiveil: Add missing ../pci.h include PCI: mobiveil: Fix struct mobiveil_pcie.pcie_reg_base address type PCI: mobiveil: Integer overflow in IB_WIN_SIZE
-rw-r--r--drivers/pci/controller/Kconfig10
-rw-r--r--drivers/pci/controller/Makefile1
-rw-r--r--drivers/pci/controller/pcie-mobiveil.c4
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
242config 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
242config PCIE_TANGO_SMP8759 252config 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
26obj-$(CONFIG_PCIE_ROCKCHIP_EP) += pcie-rockchip-ep.o 26obj-$(CONFIG_PCIE_ROCKCHIP_EP) += pcie-rockchip-ep.o
27obj-$(CONFIG_PCIE_ROCKCHIP_HOST) += pcie-rockchip-host.o 27obj-$(CONFIG_PCIE_ROCKCHIP_HOST) += pcie-rockchip-host.o
28obj-$(CONFIG_PCIE_MEDIATEK) += pcie-mediatek.o 28obj-$(CONFIG_PCIE_MEDIATEK) += pcie-mediatek.o
29obj-$(CONFIG_PCIE_MOBIVEIL) += pcie-mobiveil.o
29obj-$(CONFIG_PCIE_TANGO_SMP8759) += pcie-tango.o 30obj-$(CONFIG_PCIE_TANGO_SMP8759) += pcie-tango.o
30obj-$(CONFIG_VMD) += vmd.o 31obj-$(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;