Lines Matching refs:pcie

75 	struct iproc_pcie *pcie = sys_to_pcie(sys);  in iproc_pcie_map_cfg_bus()  local
86 pcie->base + CFG_IND_ADDR_OFFSET); in iproc_pcie_map_cfg_bus()
87 return (pcie->base + CFG_IND_DATA_OFFSET); in iproc_pcie_map_cfg_bus()
99 writel(val, pcie->base + CFG_ADDR_OFFSET); in iproc_pcie_map_cfg_bus()
101 return (pcie->base + CFG_DATA_OFFSET); in iproc_pcie_map_cfg_bus()
110 static void iproc_pcie_reset(struct iproc_pcie *pcie) in iproc_pcie_reset() argument
119 writel(val, pcie->base + CLK_CONTROL_OFFSET); in iproc_pcie_reset()
122 writel(val, pcie->base + CLK_CONTROL_OFFSET); in iproc_pcie_reset()
126 static int iproc_pcie_check_link(struct iproc_pcie *pcie, struct pci_bus *bus) in iproc_pcie_check_link() argument
136 dev_err(pcie->dev, "in EP mode, hdr=%#02x\n", hdr_type); in iproc_pcie_check_link()
176 dev_info(pcie->dev, "link: %s\n", link_is_active ? "UP" : "DOWN"); in iproc_pcie_check_link()
181 static void iproc_pcie_enable(struct iproc_pcie *pcie) in iproc_pcie_enable() argument
183 writel(SYS_RC_INTX_MASK, pcie->base + SYS_RC_INTX_EN); in iproc_pcie_enable()
186 int iproc_pcie_setup(struct iproc_pcie *pcie) in iproc_pcie_setup() argument
191 if (!pcie || !pcie->dev || !pcie->base) in iproc_pcie_setup()
194 if (pcie->phy) { in iproc_pcie_setup()
195 ret = phy_init(pcie->phy); in iproc_pcie_setup()
197 dev_err(pcie->dev, "unable to initialize PCIe PHY\n"); in iproc_pcie_setup()
201 ret = phy_power_on(pcie->phy); in iproc_pcie_setup()
203 dev_err(pcie->dev, "unable to power on PCIe PHY\n"); in iproc_pcie_setup()
209 iproc_pcie_reset(pcie); in iproc_pcie_setup()
211 pcie->sysdata.private_data = pcie; in iproc_pcie_setup()
213 bus = pci_create_root_bus(pcie->dev, 0, &iproc_pcie_ops, in iproc_pcie_setup()
214 &pcie->sysdata, pcie->resources); in iproc_pcie_setup()
216 dev_err(pcie->dev, "unable to create PCI root bus\n"); in iproc_pcie_setup()
220 pcie->root_bus = bus; in iproc_pcie_setup()
222 ret = iproc_pcie_check_link(pcie, bus); in iproc_pcie_setup()
224 dev_err(pcie->dev, "no PCIe EP device detected\n"); in iproc_pcie_setup()
228 iproc_pcie_enable(pcie); in iproc_pcie_setup()
242 if (pcie->phy) in iproc_pcie_setup()
243 phy_power_off(pcie->phy); in iproc_pcie_setup()
245 if (pcie->phy) in iproc_pcie_setup()
246 phy_exit(pcie->phy); in iproc_pcie_setup()
252 int iproc_pcie_remove(struct iproc_pcie *pcie) in iproc_pcie_remove() argument
254 pci_stop_root_bus(pcie->root_bus); in iproc_pcie_remove()
255 pci_remove_root_bus(pcie->root_bus); in iproc_pcie_remove()
257 if (pcie->phy) { in iproc_pcie_remove()
258 phy_power_off(pcie->phy); in iproc_pcie_remove()
259 phy_exit(pcie->phy); in iproc_pcie_remove()