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()
81 struct resource *res = win->res; in versatile_pci_parse_request_of_pci_ranges()
93 res_valid |= !(res->flags & IORESOURCE_PREFETCH); in versatile_pci_parse_request_of_pci_ranges()
95 writel(res->start >> 28, PCI_IMAP(mem)); in versatile_pci_parse_request_of_pci_ranges()
106 dev_err(dev, "non-prefetchable memory resource required\n"); in versatile_pci_parse_request_of_pci_ranges()
107 err = -EINVAL; in versatile_pci_parse_request_of_pci_ranges()
116 struct device *dev = &pdev->dev; in versatile_pci_probe()
118 int ret, i, myslot = -1; in versatile_pci_probe()
127 return -ENOMEM; in versatile_pci_probe()
149 * We need to discover the PCI core first to configure itself in versatile_pci_probe()
150 * before the main PCI probing is performed in versatile_pci_probe()
159 if (myslot == -1) { in versatile_pci_probe()
160 dev_err(dev, "Cannot find PCI core!\n"); in versatile_pci_probe()
161 return -EIO; in versatile_pci_probe()
164 * Do not to map Versatile FPGA PCI device into memory space in versatile_pci_probe()
168 dev_info(dev, "PCI core found (slot %d)\n", myslot); in versatile_pci_probe()
178 * Configure the PCI inbound memory windows to be 1:1 mapped to SDRAM in versatile_pci_probe()
187 * QEMU therefore attempts to auto-detect old broken kernels in versatile_pci_probe()
189 * QEMU. Since we now use the correct (ie matching-hardware) in versatile_pci_probe()
200 list_splice_init(&pci_res, &bridge->windows); in versatile_pci_probe()
201 bridge->dev.parent = dev; in versatile_pci_probe()
202 bridge->sysdata = NULL; in versatile_pci_probe()
203 bridge->busnr = 0; in versatile_pci_probe()
204 bridge->ops = &pci_versatile_ops; in versatile_pci_probe()
205 bridge->map_irq = of_irq_parse_and_map_pci; in versatile_pci_probe()
206 bridge->swizzle_irq = pci_common_swizzle; in versatile_pci_probe()
212 bus = bridge->bus; in versatile_pci_probe()
215 list_for_each_entry(child, &bus->children, node) in versatile_pci_probe()
223 { .compatible = "arm,versatile-pci", },
230 .name = "versatile-pci",
238 MODULE_DESCRIPTION("Versatile PCI driver");