Lines Matching +full:versatile +full:- +full:pci
1 // SPDX-License-Identifier: GPL-2.0
15 #include <linux/pci.h>
18 #include "../pci.h"
50 unsigned int busnr = bus->number; in versatile_map_bus()
66 struct device *dev = &pdev->dev; in versatile_pci_probe()
69 int i, myslot = -1, mem = 1; in versatile_pci_probe()
76 return -ENOMEM; in versatile_pci_probe()
91 resource_list_for_each_entry(entry, &bridge->windows) { in versatile_pci_probe()
92 if (resource_type(entry->res) == IORESOURCE_MEM) { in versatile_pci_probe()
93 writel(entry->res->start >> 28, PCI_IMAP(mem)); in versatile_pci_probe()
100 * We need to discover the PCI core first to configure itself in versatile_pci_probe()
101 * before the main PCI probing is performed in versatile_pci_probe()
110 if (myslot == -1) { in versatile_pci_probe()
111 dev_err(dev, "Cannot find PCI core!\n"); in versatile_pci_probe()
112 return -EIO; in versatile_pci_probe()
115 * Do not to map Versatile FPGA PCI device into memory space in versatile_pci_probe()
119 dev_info(dev, "PCI core found (slot %d)\n", myslot); in versatile_pci_probe()
129 * Configure the PCI inbound memory windows to be 1:1 mapped to SDRAM in versatile_pci_probe()
138 * QEMU therefore attempts to auto-detect old broken kernels in versatile_pci_probe()
140 * QEMU. Since we now use the correct (ie matching-hardware) in versatile_pci_probe()
150 bridge->ops = &pci_versatile_ops; in versatile_pci_probe()
156 { .compatible = "arm,versatile-pci", },
163 .name = "versatile-pci",
171 MODULE_DESCRIPTION("Versatile PCI driver");