Lines Matching refs:pcie
26 #include "pcie-designware.h"
52 #define ls_pcie_pf_readl_addr(addr) ls_pcie_pf_readl(pcie, addr)
55 static bool ls_pcie_is_bridge(struct ls_pcie *pcie)
57 struct dw_pcie *pci = pcie->pci;
67 static void ls_pcie_clear_multifunction(struct ls_pcie *pcie)
69 struct dw_pcie *pci = pcie->pci;
75 static void ls_pcie_drop_msg_tlp(struct ls_pcie *pcie)
78 struct dw_pcie *pci = pcie->pci;
86 static void ls_pcie_fix_error_response(struct ls_pcie *pcie)
88 struct dw_pcie *pci = pcie->pci;
93 static u32 ls_pcie_pf_readl(struct ls_pcie *pcie, u32 off)
95 if (pcie->big_endian)
96 return ioread32be(pcie->pf_base + off);
98 return ioread32(pcie->pf_base + off);
101 static void ls_pcie_pf_writel(struct ls_pcie *pcie, u32 off, u32 val)
103 if (pcie->big_endian)
104 iowrite32be(val, pcie->pf_base + off);
106 iowrite32(val, pcie->pf_base + off);
112 struct ls_pcie *pcie = to_ls_pcie(pci);
116 val = ls_pcie_pf_readl(pcie, LS_PCIE_PF_MCR);
118 ls_pcie_pf_writel(pcie, LS_PCIE_PF_MCR, val);
125 dev_err(pcie->pci->dev, "PME_Turn_off timeout\n");
131 struct ls_pcie *pcie = to_ls_pcie(pci);
139 val = ls_pcie_pf_readl(pcie, LS_PCIE_PF_MCR);
141 ls_pcie_pf_writel(pcie, LS_PCIE_PF_MCR, val);
152 dev_err(pcie->pci->dev, "L2 exit timeout\n");
158 struct ls_pcie *pcie = to_ls_pcie(pci);
160 ls_pcie_fix_error_response(pcie);
163 ls_pcie_clear_multifunction(pcie);
166 ls_pcie_drop_msg_tlp(pcie);
186 { .compatible = "fsl,ls1012a-pcie", .data = &layerscape_drvdata },
187 { .compatible = "fsl,ls1021a-pcie", .data = &ls1021a_drvdata },
188 { .compatible = "fsl,ls1028a-pcie", .data = &layerscape_drvdata },
189 { .compatible = "fsl,ls1043a-pcie", .data = &ls1021a_drvdata },
190 { .compatible = "fsl,ls1046a-pcie", .data = &layerscape_drvdata },
191 { .compatible = "fsl,ls2080a-pcie", .data = &layerscape_drvdata },
192 { .compatible = "fsl,ls2085a-pcie", .data = &layerscape_drvdata },
193 { .compatible = "fsl,ls2088a-pcie", .data = &layerscape_drvdata },
194 { .compatible = "fsl,ls1088a-pcie", .data = &layerscape_drvdata },
202 struct ls_pcie *pcie;
205 pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
206 if (!pcie)
213 pcie->drvdata = of_device_get_match_data(dev);
218 pcie->pci = pci;
225 pcie->big_endian = of_property_read_bool(dev->of_node, "big-endian");
227 pcie->pf_base = pci->dbi_base + pcie->drvdata->pf_off;
229 if (!ls_pcie_is_bridge(pcie))
232 platform_set_drvdata(pdev, pcie);
239 struct ls_pcie *pcie = dev_get_drvdata(dev);
241 if (!pcie->drvdata->pm_support)
244 return dw_pcie_suspend_noirq(pcie->pci);
249 struct ls_pcie *pcie = dev_get_drvdata(dev);
251 if (!pcie->drvdata->pm_support)
254 ls_pcie_exit_from_l2(&pcie->pci->pp);
256 return dw_pcie_resume_noirq(pcie->pci);
266 .name = "layerscape-pcie",