Lines Matching full:pcie

3 // Cadence PCIe endpoint controller driver.
13 #include "pcie-cadence.h"
23 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_write_header() local
25 cdns_pcie_ep_fn_writew(pcie, fn, PCI_DEVICE_ID, hdr->deviceid); in cdns_pcie_ep_write_header()
26 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_REVISION_ID, hdr->revid); in cdns_pcie_ep_write_header()
27 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_CLASS_PROG, hdr->progif_code); in cdns_pcie_ep_write_header()
28 cdns_pcie_ep_fn_writew(pcie, fn, PCI_CLASS_DEVICE, in cdns_pcie_ep_write_header()
30 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_CACHE_LINE_SIZE, in cdns_pcie_ep_write_header()
32 cdns_pcie_ep_fn_writew(pcie, fn, PCI_SUBSYSTEM_ID, hdr->subsys_id); in cdns_pcie_ep_write_header()
33 cdns_pcie_ep_fn_writeb(pcie, fn, PCI_INTERRUPT_PIN, hdr->interrupt_pin); in cdns_pcie_ep_write_header()
44 cdns_pcie_writel(pcie, CDNS_PCIE_LM_ID, id); in cdns_pcie_ep_write_header()
55 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_set_bar() local
95 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR0(fn, bar), in cdns_pcie_ep_set_bar()
97 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR1(fn, bar), in cdns_pcie_ep_set_bar()
108 cfg = cdns_pcie_readl(pcie, reg); in cdns_pcie_ep_set_bar()
113 cdns_pcie_writel(pcie, reg, cfg); in cdns_pcie_ep_set_bar()
125 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_clear_bar() local
138 cfg = cdns_pcie_readl(pcie, reg); in cdns_pcie_ep_clear_bar()
142 cdns_pcie_writel(pcie, reg, cfg); in cdns_pcie_ep_clear_bar()
144 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR0(fn, bar), 0); in cdns_pcie_ep_clear_bar()
145 cdns_pcie_writel(pcie, CDNS_PCIE_AT_IB_EP_FUNC_BAR_ADDR1(fn, bar), 0); in cdns_pcie_ep_clear_bar()
154 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_map_addr() local
164 cdns_pcie_set_outbound_region(pcie, 0, fn, r, false, addr, pci_addr, size); in cdns_pcie_ep_map_addr()
176 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_unmap_addr() local
186 cdns_pcie_reset_outbound_region(pcie, r); in cdns_pcie_ep_unmap_addr()
195 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_set_msi() local
203 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_FLAGS); in cdns_pcie_ep_set_msi()
207 cdns_pcie_ep_fn_writew(pcie, fn, cap + PCI_MSI_FLAGS, flags); in cdns_pcie_ep_set_msi()
215 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_get_msi() local
220 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_FLAGS); in cdns_pcie_ep_get_msi()
236 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_get_msix() local
241 val = cdns_pcie_ep_fn_readw(pcie, func_no, reg); in cdns_pcie_ep_get_msix()
254 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_set_msix() local
259 val = cdns_pcie_ep_fn_readw(pcie, fn, reg); in cdns_pcie_ep_set_msix()
262 cdns_pcie_ep_fn_writew(pcie, fn, reg, val); in cdns_pcie_ep_set_msix()
267 cdns_pcie_ep_fn_writel(pcie, fn, reg, val); in cdns_pcie_ep_set_msix()
272 cdns_pcie_ep_fn_writel(pcie, fn, reg, val); in cdns_pcie_ep_set_msix()
280 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_assert_intx() local
292 cdns_pcie_set_outbound_region_for_normal_msg(pcie, 0, fn, 0, in cdns_pcie_ep_assert_intx()
307 status = cdns_pcie_ep_fn_readw(pcie, fn, PCI_STATUS); in cdns_pcie_ep_assert_intx()
310 cdns_pcie_ep_fn_writew(pcie, fn, PCI_STATUS, status); in cdns_pcie_ep_assert_intx()
324 cmd = cdns_pcie_ep_fn_readw(&ep->pcie, fn, PCI_COMMAND); in cdns_pcie_ep_send_legacy_irq()
340 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_send_msi_irq() local
347 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_FLAGS); in cdns_pcie_ep_send_msi_irq()
359 data = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSI_DATA_64); in cdns_pcie_ep_send_msi_irq()
363 pci_addr = cdns_pcie_ep_fn_readl(pcie, fn, cap + PCI_MSI_ADDRESS_HI); in cdns_pcie_ep_send_msi_irq()
365 pci_addr |= cdns_pcie_ep_fn_readl(pcie, fn, cap + PCI_MSI_ADDRESS_LO); in cdns_pcie_ep_send_msi_irq()
372 cdns_pcie_set_outbound_region(pcie, 0, fn, 0, in cdns_pcie_ep_send_msi_irq()
390 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_send_msix_irq() local
399 flags = cdns_pcie_ep_fn_readw(pcie, fn, cap + PCI_MSIX_FLAGS); in cdns_pcie_ep_send_msix_irq()
404 tbl_offset = cdns_pcie_ep_fn_readl(pcie, fn, reg); in cdns_pcie_ep_send_msix_irq()
417 cdns_pcie_set_outbound_region(pcie, 0, fn, 0, in cdns_pcie_ep_send_msix_irq()
456 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_start() local
457 struct device *dev = pcie->dev; in cdns_pcie_ep_start()
469 cdns_pcie_writel(pcie, CDNS_PCIE_LM_EP_FUNC_CFG, cfg); in cdns_pcie_ep_start()
471 ret = cdns_pcie_start_link(pcie); in cdns_pcie_ep_start()
510 struct device *dev = ep->pcie.dev; in cdns_pcie_ep_setup()
513 struct cdns_pcie *pcie = &ep->pcie; in cdns_pcie_ep_setup() local
518 pcie->is_rc = false; in cdns_pcie_ep_setup()
520 pcie->reg_base = devm_platform_ioremap_resource_byname(pdev, "reg"); in cdns_pcie_ep_setup()
521 if (IS_ERR(pcie->reg_base)) { in cdns_pcie_ep_setup()
523 return PTR_ERR(pcie->reg_base); in cdns_pcie_ep_setup()
531 pcie->mem_res = res; in cdns_pcie_ep_setup()
546 cdns_pcie_writel(pcie, CDNS_PCIE_LM_EP_FUNC_CFG, BIT(0)); in cdns_pcie_ep_setup()
564 ret = pci_epc_mem_init(epc, pcie->mem_res->start, in cdns_pcie_ep_setup()
565 resource_size(pcie->mem_res), PAGE_SIZE); in cdns_pcie_ep_setup()