• Home
  • Raw
  • Download

Lines Matching +full:pci +full:- +full:dev

1 // SPDX-License-Identifier: GPL-2.0
17 #include <linux/pci.h>
23 #include "pcie-designware.h"
34 #define PCIE_ABSERR_SETTING 0x9401 /* Forward error of non-posted request */
47 struct dw_pcie *pci; member
54 #define to_ls_pcie(x) dev_get_drvdata((x)->dev)
58 struct dw_pcie *pci = pcie->pci; in ls_pcie_is_bridge() local
61 header_type = ioread8(pci->dbi_base + PCI_HEADER_TYPE); in ls_pcie_is_bridge()
67 /* Clear multi-function bit */
70 struct dw_pcie *pci = pcie->pci; in ls_pcie_clear_multifunction() local
72 iowrite8(PCI_HEADER_TYPE_BRIDGE, pci->dbi_base + PCI_HEADER_TYPE); in ls_pcie_clear_multifunction()
79 struct dw_pcie *pci = pcie->pci; in ls_pcie_drop_msg_tlp() local
81 val = ioread32(pci->dbi_base + PCIE_STRFMR1); in ls_pcie_drop_msg_tlp()
83 iowrite32(val, pci->dbi_base + PCIE_STRFMR1); in ls_pcie_drop_msg_tlp()
91 dw_pcie_disable_atu(pcie->pci, i, DW_PCIE_REGION_OUTBOUND); in ls_pcie_disable_outbound_atus()
94 static int ls1021_pcie_link_up(struct dw_pcie *pci) in ls1021_pcie_link_up() argument
97 struct ls_pcie *pcie = to_ls_pcie(pci); in ls1021_pcie_link_up()
99 if (!pcie->scfg) in ls1021_pcie_link_up()
102 regmap_read(pcie->scfg, SCFG_PEXMSCPORTSR(pcie->index), &state); in ls1021_pcie_link_up()
111 static int ls_pcie_link_up(struct dw_pcie *pci) in ls_pcie_link_up() argument
113 struct ls_pcie *pcie = to_ls_pcie(pci); in ls_pcie_link_up()
116 state = (ioread32(pcie->lut + pcie->drvdata->lut_dbg) >> in ls_pcie_link_up()
117 pcie->drvdata->ltssm_shift) & in ls_pcie_link_up()
126 /* Forward error response of outbound non-posted requests */
129 struct dw_pcie *pci = pcie->pci; in ls_pcie_fix_error_response() local
131 iowrite32(PCIE_ABSERR_SETTING, pci->dbi_base + PCIE_ABSERR); in ls_pcie_fix_error_response()
136 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in ls_pcie_host_init() local
137 struct ls_pcie *pcie = to_ls_pcie(pci); in ls_pcie_host_init()
147 dw_pcie_dbi_ro_wr_en(pci); in ls_pcie_host_init()
149 dw_pcie_dbi_ro_wr_dis(pci); in ls_pcie_host_init()
160 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in ls1021_pcie_host_init() local
161 struct ls_pcie *pcie = to_ls_pcie(pci); in ls1021_pcie_host_init()
162 struct device *dev = pci->dev; in ls1021_pcie_host_init() local
166 pcie->scfg = syscon_regmap_lookup_by_phandle(dev->of_node, in ls1021_pcie_host_init()
167 "fsl,pcie-scfg"); in ls1021_pcie_host_init()
168 if (IS_ERR(pcie->scfg)) { in ls1021_pcie_host_init()
169 ret = PTR_ERR(pcie->scfg); in ls1021_pcie_host_init()
170 dev_err(dev, "No syscfg phandle specified\n"); in ls1021_pcie_host_init()
171 pcie->scfg = NULL; in ls1021_pcie_host_init()
175 if (of_property_read_u32_array(dev->of_node, in ls1021_pcie_host_init()
176 "fsl,pcie-scfg", index, 2)) { in ls1021_pcie_host_init()
177 pcie->scfg = NULL; in ls1021_pcie_host_init()
178 return -EINVAL; in ls1021_pcie_host_init()
180 pcie->index = index[1]; in ls1021_pcie_host_init()
187 struct dw_pcie *pci = to_dw_pcie_from_pp(pp); in ls_pcie_msi_host_init() local
188 struct device *dev = pci->dev; in ls_pcie_msi_host_init() local
189 struct device_node *np = dev->of_node; in ls_pcie_msi_host_init()
196 * requirement that "msi-parent" exists. in ls_pcie_msi_host_init()
198 msi_node = of_parse_phandle(np, "msi-parent", 0); in ls_pcie_msi_host_init()
200 dev_err(dev, "failed to find msi-parent\n"); in ls_pcie_msi_host_init()
201 return -EINVAL; in ls_pcie_msi_host_init()
264 { .compatible = "fsl,ls1012a-pcie", .data = &ls1046_drvdata },
265 { .compatible = "fsl,ls1021a-pcie", .data = &ls1021_drvdata },
266 { .compatible = "fsl,ls1028a-pcie", .data = &ls2088_drvdata },
267 { .compatible = "fsl,ls1043a-pcie", .data = &ls1043_drvdata },
268 { .compatible = "fsl,ls1046a-pcie", .data = &ls1046_drvdata },
269 { .compatible = "fsl,ls2080a-pcie", .data = &ls2080_drvdata },
270 { .compatible = "fsl,ls2085a-pcie", .data = &ls2080_drvdata },
271 { .compatible = "fsl,ls2088a-pcie", .data = &ls2088_drvdata },
272 { .compatible = "fsl,ls1088a-pcie", .data = &ls2088_drvdata },
278 struct dw_pcie *pci = pcie->pci; in ls_add_pcie_port() local
279 struct pcie_port *pp = &pci->pp; in ls_add_pcie_port()
280 struct device *dev = pci->dev; in ls_add_pcie_port() local
283 pp->ops = pcie->drvdata->ops; in ls_add_pcie_port()
287 dev_err(dev, "failed to initialize host\n"); in ls_add_pcie_port()
296 struct device *dev = &pdev->dev; in ls_pcie_probe() local
297 struct dw_pcie *pci; in ls_pcie_probe() local
302 pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); in ls_pcie_probe()
304 return -ENOMEM; in ls_pcie_probe()
306 pci = devm_kzalloc(dev, sizeof(*pci), GFP_KERNEL); in ls_pcie_probe()
307 if (!pci) in ls_pcie_probe()
308 return -ENOMEM; in ls_pcie_probe()
310 pcie->drvdata = of_device_get_match_data(dev); in ls_pcie_probe()
312 pci->dev = dev; in ls_pcie_probe()
313 pci->ops = pcie->drvdata->dw_pcie_ops; in ls_pcie_probe()
315 pcie->pci = pci; in ls_pcie_probe()
318 pci->dbi_base = devm_pci_remap_cfg_resource(dev, dbi_base); in ls_pcie_probe()
319 if (IS_ERR(pci->dbi_base)) in ls_pcie_probe()
320 return PTR_ERR(pci->dbi_base); in ls_pcie_probe()
322 pcie->lut = pci->dbi_base + pcie->drvdata->lut_offset; in ls_pcie_probe()
325 return -ENODEV; in ls_pcie_probe()
338 .name = "layerscape-pcie",