Lines Matching refs:pcie

17 #include "pcie-rcar.h"
23 struct rcar_pcie pcie;
33 static void rcar_pcie_ep_hw_init(struct rcar_pcie *pcie)
37 rcar_pci_write_reg(pcie, 0, PCIETCTLR);
40 rcar_pci_write_reg(pcie, 0, PCIEMSR);
43 rcar_rmw32(pcie, REXPCAP(0), 0xff, PCI_CAP_ID_EXP);
44 rcar_rmw32(pcie, REXPCAP(PCI_EXP_FLAGS),
46 rcar_rmw32(pcie, RCONF(PCI_HEADER_TYPE), PCI_HEADER_TYPE_MASK,
50 rcar_rmw32(pcie, REXPCAP(PCI_EXP_SLTCAP), PCI_EXP_SLTCAP_PSN, 0);
52 val = rcar_pci_read_reg(pcie, EXPCAP(1));
55 rcar_pci_write_reg(pcie, val, EXPCAP(1));
57 val = rcar_pci_read_reg(pcie, EXPCAP(2));
62 rcar_pci_write_reg(pcie, val, EXPCAP(2));
65 rcar_rmw32(pcie, EXPCAP(12), PCI_EXP_LNKSTA_CLS,
69 rcar_rmw32(pcie, TLCTLR + 1, 0x3f, 50);
72 rcar_rmw32(pcie, RVCCAP(0), 0xfff00000, 0);
93 struct rcar_pcie *pcie = &ep->pcie;
105 dev_err(pcie->dev, "missing outbound window %u\n", i);
111 dev_err(pcie->dev, "Cannot request memory region %s.\n",
131 struct rcar_pcie *pcie = &ep->pcie;
133 struct device *dev = pcie->dev;
140 pcie->base = devm_ioremap_resource(dev, &res);
141 if (IS_ERR(pcie->base))
142 return PTR_ERR(pcie->base);
163 struct rcar_pcie *pcie = &ep->pcie;
169 val = rcar_pci_read_reg(pcie, IDSETR0);
171 rcar_pci_write_reg(pcie, val, IDSETR0);
177 rcar_pci_write_reg(pcie, val, IDSETR1);
182 val = rcar_pci_read_reg(pcie, SUBIDSETR);
184 rcar_pci_write_reg(pcie, val, SUBIDSETR);
188 val = rcar_pci_read_reg(pcie, PCICONF(15));
190 rcar_pci_write_reg(pcie, val, PCICONF(15));
203 struct rcar_pcie *pcie = &ep->pcie;
210 dev_err(pcie->dev, "no free inbound window\n");
234 rcar_pcie_set_inbound(pcie, cpu_addr,
237 err = rcar_pcie_wait_for_phyrdy(pcie);
239 dev_err(pcie->dev, "phy not ready\n");
253 rcar_pcie_set_inbound(&ep->pcie, 0x0, 0x0, 0x0, bar, false);
263 struct rcar_pcie *pcie = &ep->pcie;
266 flags = rcar_pci_read_reg(pcie, MSICAP(fn));
268 rcar_pci_write_reg(pcie, flags, MSICAP(fn));
276 struct rcar_pcie *pcie = &ep->pcie;
279 flags = rcar_pci_read_reg(pcie, MSICAP(fn));
290 struct rcar_pcie *pcie = &ep->pcie;
297 err = rcar_pcie_wait_for_dl(pcie);
299 dev_err(pcie->dev, "link not up\n");
305 dev_err(pcie->dev, "failed to get corresponding window\n");
316 rcar_pcie_set_outbound(pcie, window, &win);
341 rcar_pcie_set_outbound(&ep->pcie, idx, &win);
349 struct rcar_pcie *pcie = &ep->pcie;
352 val = rcar_pci_read_reg(pcie, PCIEMSITXR);
354 dev_err(pcie->dev, "MSI is enabled, cannot assert INTx\n");
358 val = rcar_pci_read_reg(pcie, PCICONF(1));
360 dev_err(pcie->dev, "INTx message transmission is disabled\n");
364 val = rcar_pci_read_reg(pcie, PCIEINTXR);
366 dev_err(pcie->dev, "INTx is already asserted\n");
371 rcar_pci_write_reg(pcie, val, PCIEINTXR);
373 val = rcar_pci_read_reg(pcie, PCIEINTXR);
375 rcar_pci_write_reg(pcie, val, PCIEINTXR);
380 static int rcar_pcie_ep_assert_msi(struct rcar_pcie *pcie,
387 val = rcar_pci_read_reg(pcie, MSICAP(fn));
398 val = rcar_pci_read_reg(pcie, PCIEMSITXR);
399 rcar_pci_write_reg(pcie, val | (interrupt_num - 1), PCIEMSITXR);
414 return rcar_pcie_ep_assert_msi(&ep->pcie, fn, interrupt_num);
425 rcar_pci_write_reg(&ep->pcie, MACCTLR_INIT_VAL, MACCTLR);
426 rcar_pci_write_reg(&ep->pcie, CFINIT, PCIETCTLR);
435 rcar_pci_write_reg(&ep->pcie, 0, PCIETCTLR);
475 { .compatible = "renesas,r8a774c0-pcie-ep", },
476 { .compatible = "renesas,rcar-gen3-pcie-ep" },
484 struct rcar_pcie *pcie;
492 pcie = &ep->pcie;
493 pcie->dev = dev;
537 rcar_pcie_ep_hw_init(pcie);
560 .name = "rcar-pcie-ep",