Lines Matching refs:pcie
23 #include "pcie-mobiveil.h"
45 static inline u32 ls_pcie_g4_lut_readl(struct ls_pcie_g4 *pcie, u32 off)
47 return ioread32(pcie->pci.csr_axi_slave_base + PCIE_LUT_OFF + off);
50 static inline void ls_pcie_g4_lut_writel(struct ls_pcie_g4 *pcie,
53 iowrite32(val, pcie->pci.csr_axi_slave_base + PCIE_LUT_OFF + off);
56 static inline u32 ls_pcie_g4_pf_readl(struct ls_pcie_g4 *pcie, u32 off)
58 return ioread32(pcie->pci.csr_axi_slave_base + PCIE_PF_OFF + off);
61 static inline void ls_pcie_g4_pf_writel(struct ls_pcie_g4 *pcie,
64 iowrite32(val, pcie->pci.csr_axi_slave_base + PCIE_PF_OFF + off);
69 struct ls_pcie_g4 *pcie = to_ls_pcie_g4(pci);
72 state = ls_pcie_g4_pf_readl(pcie, PCIE_PF_DBG);
81 static void ls_pcie_g4_disable_interrupt(struct ls_pcie_g4 *pcie)
83 struct mobiveil_pcie *mv_pci = &pcie->pci;
88 static void ls_pcie_g4_enable_interrupt(struct ls_pcie_g4 *pcie)
90 struct mobiveil_pcie *mv_pci = &pcie->pci;
101 static int ls_pcie_g4_reinit_hw(struct ls_pcie_g4 *pcie)
103 struct mobiveil_pcie *mv_pci = &pcie->pci;
111 val = ls_pcie_g4_pf_readl(pcie, PCIE_PF_INT_STAT);
120 val = ls_pcie_g4_pf_readl(pcie, PCIE_PF_DBG);
122 ls_pcie_g4_pf_writel(pcie, PCIE_PF_DBG, val);
124 val = ls_pcie_g4_pf_readl(pcie, PCIE_PF_DBG);
126 ls_pcie_g4_pf_writel(pcie, PCIE_PF_DBG, val);
128 val = ls_pcie_g4_pf_readl(pcie, PCIE_PF_DBG);
130 ls_pcie_g4_pf_writel(pcie, PCIE_PF_DBG, val);
147 struct ls_pcie_g4 *pcie = (struct ls_pcie_g4 *)dev_id;
148 struct mobiveil_pcie *mv_pci = &pcie->pci;
156 ls_pcie_g4_disable_interrupt(pcie);
157 schedule_delayed_work(&pcie->dwork, msecs_to_jiffies(1));
167 struct ls_pcie_g4 *pcie = to_ls_pcie_g4(mv_pci);
172 pcie->irq = platform_get_irq_byname(pdev, "intr");
173 if (pcie->irq < 0)
174 return pcie->irq;
176 ret = devm_request_irq(dev, pcie->irq, ls_pcie_g4_isr,
177 IRQF_SHARED, pdev->name, pcie);
190 struct ls_pcie_g4 *pcie = container_of(dwork, struct ls_pcie_g4, dwork);
191 struct mobiveil_pcie *mv_pci = &pcie->pci;
198 if (!ls_pcie_g4_reinit_hw(pcie))
201 ls_pcie_g4_enable_interrupt(pcie);
217 struct ls_pcie_g4 *pcie;
226 bridge = devm_pci_alloc_host_bridge(dev, sizeof(*pcie));
230 pcie = pci_host_bridge_priv(bridge);
231 mv_pci = &pcie->pci;
238 platform_set_drvdata(pdev, pcie);
240 INIT_DELAYED_WORK(&pcie->dwork, ls_pcie_g4_reset);
248 ls_pcie_g4_enable_interrupt(pcie);
254 { .compatible = "fsl,lx2160a-pcie", },
260 .name = "layerscape-pcie-gen4",