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