Lines Matching defs:pcie
25 #include "pcie-designware.h"
73 static void armada8k_pcie_disable_phys(struct armada8k_pcie *pcie)
78 phy_power_off(pcie->phy[i]);
79 phy_exit(pcie->phy[i]);
83 static int armada8k_pcie_enable_phys(struct armada8k_pcie *pcie)
89 ret = phy_init(pcie->phy[i]);
93 ret = phy_set_mode_ext(pcie->phy[i], PHY_MODE_PCIE,
94 pcie->phy_count);
96 phy_exit(pcie->phy[i]);
100 ret = phy_power_on(pcie->phy[i]);
102 phy_exit(pcie->phy[i]);
110 static int armada8k_pcie_setup_phys(struct armada8k_pcie *pcie)
112 struct dw_pcie *pci = pcie->pci;
119 pcie->phy[i] = devm_of_phy_get_by_index(dev, node, i);
120 if (IS_ERR(pcie->phy[i])) {
121 if (PTR_ERR(pcie->phy[i]) != -ENODEV)
122 return PTR_ERR(pcie->phy[i]);
124 pcie->phy[i] = NULL;
128 pcie->phy_count++;
132 if (!pcie->phy_count)
135 ret = armada8k_pcie_enable_phys(pcie);
212 struct armada8k_pcie *pcie = arg;
213 struct dw_pcie *pci = pcie->pci;
231 static int armada8k_add_pcie_port(struct armada8k_pcie *pcie,
234 struct dw_pcie *pci = pcie->pci;
246 IRQF_SHARED, "armada8k-pcie", pcie);
269 struct armada8k_pcie *pcie;
274 pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
275 if (!pcie)
285 pcie->pci = pci;
287 pcie->clk = devm_clk_get(dev, NULL);
288 if (IS_ERR(pcie->clk))
289 return PTR_ERR(pcie->clk);
291 ret = clk_prepare_enable(pcie->clk);
295 pcie->clk_reg = devm_clk_get(dev, "reg");
296 if (pcie->clk_reg == ERR_PTR(-EPROBE_DEFER)) {
300 if (!IS_ERR(pcie->clk_reg)) {
301 ret = clk_prepare_enable(pcie->clk_reg);
306 /* Get the dw-pcie unit configuration/control registers base. */
314 ret = armada8k_pcie_setup_phys(pcie);
318 platform_set_drvdata(pdev, pcie);
320 ret = armada8k_add_pcie_port(pcie, pdev);
327 armada8k_pcie_disable_phys(pcie);
329 clk_disable_unprepare(pcie->clk_reg);
331 clk_disable_unprepare(pcie->clk);
337 { .compatible = "marvell,armada8k-pcie", },
344 .name = "armada8k-pcie",