Lines Matching +full:phy +full:- +full:cadence
1 // SPDX-License-Identifier: GPL-2.0
3 * Cadence PCIe platform driver.
5 * Copyright (c) 2019, Cadence Design Systems
6 * Author: Tom Joseph <tjoseph@cadence.com>
13 #include "pcie-cadence.h"
18 * struct cdns_plat_pcie - private data for this PCIe platform driver
19 * @pcie: Cadence PCIe controller
44 struct device *dev = &pdev->dev; in cdns_plat_pcie_probe()
54 return -EINVAL; in cdns_plat_pcie_probe()
56 is_rc = data->is_rc; in cdns_plat_pcie_probe()
61 return -ENOMEM; in cdns_plat_pcie_probe()
66 return -ENODEV; in cdns_plat_pcie_probe()
70 return -ENOMEM; in cdns_plat_pcie_probe()
73 rc->pcie.dev = dev; in cdns_plat_pcie_probe()
74 rc->pcie.ops = &cdns_plat_ops; in cdns_plat_pcie_probe()
75 cdns_plat_pcie->pcie = &rc->pcie; in cdns_plat_pcie_probe()
77 ret = cdns_pcie_init_phy(dev, cdns_plat_pcie->pcie); in cdns_plat_pcie_probe()
79 dev_err(dev, "failed to init phy\n"); in cdns_plat_pcie_probe()
94 return -ENODEV; in cdns_plat_pcie_probe()
98 return -ENOMEM; in cdns_plat_pcie_probe()
100 ep->pcie.dev = dev; in cdns_plat_pcie_probe()
101 ep->pcie.ops = &cdns_plat_ops; in cdns_plat_pcie_probe()
102 cdns_plat_pcie->pcie = &ep->pcie; in cdns_plat_pcie_probe()
104 ret = cdns_pcie_init_phy(dev, cdns_plat_pcie->pcie); in cdns_plat_pcie_probe()
106 dev_err(dev, "failed to init phy\n"); in cdns_plat_pcie_probe()
128 cdns_pcie_disable_phy(cdns_plat_pcie->pcie); in cdns_plat_pcie_probe()
129 phy_count = cdns_plat_pcie->pcie->phy_count; in cdns_plat_pcie_probe()
130 while (phy_count--) in cdns_plat_pcie_probe()
131 device_link_del(cdns_plat_pcie->pcie->link[phy_count]); in cdns_plat_pcie_probe()
138 struct device *dev = &pdev->dev; in cdns_plat_pcie_shutdown()
161 .compatible = "cdns,cdns-pcie-host",
165 .compatible = "cdns,cdns-pcie-ep",
173 .name = "cdns-pcie",