Lines Matching +full:tegra194 +full:- +full:pcie
1 // SPDX-License-Identifier: GPL-2.0+
3 * ACPI quirks for Tegra194 PCIe host controller
11 #include <linux/pci-acpi.h>
12 #include <linux/pci-ecam.h>
14 #include "pcie-designware.h"
24 struct device *dev = cfg->parent; in tegra194_acpi_init()
29 return -ENOMEM; in tegra194_acpi_init()
31 pcie_ecam->config_base = cfg->win; in tegra194_acpi_init()
32 pcie_ecam->iatu_base = cfg->win + SZ_256K; in tegra194_acpi_init()
33 pcie_ecam->dbi_base = cfg->win + SZ_512K; in tegra194_acpi_init()
34 cfg->priv = pcie_ecam; in tegra194_acpi_init()
45 writel(val, pcie_ecam->iatu_base + offset + reg); in atu_reg_write()
58 atu_reg_write(pcie_ecam, index, lower_32_bits(cpu_addr + size - 1), in program_outbound_atu()
69 struct pci_config_window *cfg = bus->sysdata; in tegra194_map_bus()
70 struct tegra194_pcie_ecam *pcie_ecam = cfg->priv; in tegra194_map_bus()
74 if (bus->number < cfg->busr.start || bus->number > cfg->busr.end) in tegra194_map_bus()
77 if (bus->number == cfg->busr.start) { in tegra194_map_bus()
79 return pcie_ecam->dbi_base + where; in tegra194_map_bus()
84 busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) | in tegra194_map_bus()
87 if (bus->parent->number == cfg->busr.start) { in tegra194_map_bus()
96 program_outbound_atu(pcie_ecam, 0, type, cfg->res.start, busdev, in tegra194_map_bus()
99 return pcie_ecam->config_base + where; in tegra194_map_bus()