Lines Matching defs:pcie
20 #include "pcie-rcar.h"
26 struct rcar_pcie pcie;
36 static void rcar_pcie_ep_hw_init(struct rcar_pcie *pcie)
40 rcar_pci_write_reg(pcie, 0, PCIETCTLR);
43 rcar_pci_write_reg(pcie, 0, PCIEMSR);
46 rcar_rmw32(pcie, REXPCAP(0), 0xff, PCI_CAP_ID_EXP);
47 rcar_rmw32(pcie, REXPCAP(PCI_EXP_FLAGS),
49 rcar_rmw32(pcie, RCONF(PCI_HEADER_TYPE), 0x7f,
53 rcar_rmw32(pcie, REXPCAP(PCI_EXP_SLTCAP), PCI_EXP_SLTCAP_PSN, 0);
55 val = rcar_pci_read_reg(pcie, EXPCAP(1));
58 rcar_pci_write_reg(pcie, val, EXPCAP(1));
60 val = rcar_pci_read_reg(pcie, EXPCAP(2));
65 rcar_pci_write_reg(pcie, val, EXPCAP(2));
68 rcar_rmw32(pcie, EXPCAP(12), PCI_EXP_LNKSTA_CLS,
72 rcar_rmw32(pcie, TLCTLR + 1, 0x3f, 50);
75 rcar_rmw32(pcie, RVCCAP(0), 0xfff00000, 0);
96 struct rcar_pcie *pcie = &ep->pcie;
108 dev_err(pcie->dev, "missing outbound window %u\n", i);
114 dev_err(pcie->dev, "Cannot request memory region %s.\n",
134 struct rcar_pcie *pcie = &ep->pcie;
136 struct device *dev = pcie->dev;
143 pcie->base = devm_ioremap_resource(dev, &res);
144 if (IS_ERR(pcie->base))
145 return PTR_ERR(pcie->base);
166 struct rcar_pcie *pcie = &ep->pcie;
172 val = rcar_pci_read_reg(pcie, IDSETR0);
174 rcar_pci_write_reg(pcie, val, IDSETR0);
180 rcar_pci_write_reg(pcie, val, IDSETR1);
185 val = rcar_pci_read_reg(pcie, SUBIDSETR);
187 rcar_pci_write_reg(pcie, val, SUBIDSETR);
191 val = rcar_pci_read_reg(pcie, PCICONF(15));
193 rcar_pci_write_reg(pcie, val, PCICONF(15));
206 struct rcar_pcie *pcie = &ep->pcie;
213 dev_err(pcie->dev, "no free inbound window\n");
237 rcar_pcie_set_inbound(pcie, cpu_addr,
240 err = rcar_pcie_wait_for_phyrdy(pcie);
242 dev_err(pcie->dev, "phy not ready\n");
256 rcar_pcie_set_inbound(&ep->pcie, 0x0, 0x0, 0x0, bar, false);
265 struct rcar_pcie *pcie = &ep->pcie;
268 flags = rcar_pci_read_reg(pcie, MSICAP(fn));
270 rcar_pci_write_reg(pcie, flags, MSICAP(fn));
278 struct rcar_pcie *pcie = &ep->pcie;
281 flags = rcar_pci_read_reg(pcie, MSICAP(fn));
292 struct rcar_pcie *pcie = &ep->pcie;
299 err = rcar_pcie_wait_for_dl(pcie);
301 dev_err(pcie->dev, "link not up\n");
307 dev_err(pcie->dev, "failed to get corresponding window\n");
318 rcar_pcie_set_outbound(pcie, window, &win);
343 rcar_pcie_set_outbound(&ep->pcie, idx, &win);
351 struct rcar_pcie *pcie = &ep->pcie;
354 val = rcar_pci_read_reg(pcie, PCIEMSITXR);
356 dev_err(pcie->dev, "MSI is enabled, cannot assert INTx\n");
360 val = rcar_pci_read_reg(pcie, PCICONF(1));
362 dev_err(pcie->dev, "INTx message transmission is disabled\n");
366 val = rcar_pci_read_reg(pcie, PCIEINTXR);
368 dev_err(pcie->dev, "INTx is already asserted\n");
373 rcar_pci_write_reg(pcie, val, PCIEINTXR);
375 val = rcar_pci_read_reg(pcie, PCIEINTXR);
377 rcar_pci_write_reg(pcie, val, PCIEINTXR);
382 static int rcar_pcie_ep_assert_msi(struct rcar_pcie *pcie,
389 val = rcar_pci_read_reg(pcie, MSICAP(fn));
400 val = rcar_pci_read_reg(pcie, PCIEMSITXR);
401 rcar_pci_write_reg(pcie, val | (interrupt_num - 1), PCIEMSITXR);
417 return rcar_pcie_ep_assert_msi(&ep->pcie, fn, interrupt_num);
428 rcar_pci_write_reg(&ep->pcie, MACCTLR_INIT_VAL, MACCTLR);
429 rcar_pci_write_reg(&ep->pcie, CFINIT, PCIETCTLR);
438 rcar_pci_write_reg(&ep->pcie, 0, PCIETCTLR);
474 { .compatible = "renesas,r8a774c0-pcie-ep", },
475 { .compatible = "renesas,rcar-gen3-pcie-ep" },
483 struct rcar_pcie *pcie;
491 pcie = &ep->pcie;
492 pcie->dev = dev;
536 rcar_pcie_ep_hw_init(pcie);
557 .name = "rcar-pcie-ep",