Lines Matching defs:pcie
26 #include "pcie-designware.h"
74 static void armada8k_pcie_disable_phys(struct armada8k_pcie *pcie)
79 phy_power_off(pcie->phy[i]);
80 phy_exit(pcie->phy[i]);
84 static int armada8k_pcie_enable_phys(struct armada8k_pcie *pcie)
90 ret = phy_init(pcie->phy[i]);
94 ret = phy_set_mode_ext(pcie->phy[i], PHY_MODE_PCIE,
95 pcie->phy_count);
97 phy_exit(pcie->phy[i]);
101 ret = phy_power_on(pcie->phy[i]);
103 phy_exit(pcie->phy[i]);
111 static int armada8k_pcie_setup_phys(struct armada8k_pcie *pcie)
113 struct dw_pcie *pci = pcie->pci;
120 pcie->phy[i] = devm_of_phy_get_by_index(dev, node, i);
121 if (IS_ERR(pcie->phy[i])) {
122 if (PTR_ERR(pcie->phy[i]) != -ENODEV)
123 return PTR_ERR(pcie->phy[i]);
125 pcie->phy[i] = NULL;
129 pcie->phy_count++;
133 if (!pcie->phy_count)
136 ret = armada8k_pcie_enable_phys(pcie);
157 static void armada8k_pcie_establish_link(struct armada8k_pcie *pcie)
159 struct dw_pcie *pci = pcie->pci;
211 struct armada8k_pcie *pcie = to_armada8k_pcie(pci);
214 armada8k_pcie_establish_link(pcie);
221 struct armada8k_pcie *pcie = arg;
222 struct dw_pcie *pci = pcie->pci;
240 static int armada8k_add_pcie_port(struct armada8k_pcie *pcie,
243 struct dw_pcie *pci = pcie->pci;
255 IRQF_SHARED, "armada8k-pcie", pcie);
277 struct armada8k_pcie *pcie;
282 pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
283 if (!pcie)
293 pcie->pci = pci;
295 pcie->clk = devm_clk_get(dev, NULL);
296 if (IS_ERR(pcie->clk))
297 return PTR_ERR(pcie->clk);
299 ret = clk_prepare_enable(pcie->clk);
303 pcie->clk_reg = devm_clk_get(dev, "reg");
304 if (pcie->clk_reg == ERR_PTR(-EPROBE_DEFER)) {
308 if (!IS_ERR(pcie->clk_reg)) {
309 ret = clk_prepare_enable(pcie->clk_reg);
314 /* Get the dw-pcie unit configuration/control registers base. */
322 ret = armada8k_pcie_setup_phys(pcie);
326 platform_set_drvdata(pdev, pcie);
328 ret = armada8k_add_pcie_port(pcie, pdev);
335 armada8k_pcie_disable_phys(pcie);
337 clk_disable_unprepare(pcie->clk_reg);
339 clk_disable_unprepare(pcie->clk);
345 { .compatible = "marvell,armada8k-pcie", },
352 .name = "armada8k-pcie",