Lines Matching refs:pcie

18 #include "pcie-mobiveil.h"
28 static void mobiveil_pcie_sel_page(struct mobiveil_pcie *pcie, u8 pg_idx)
32 val = readl(pcie->csr_axi_slave_base + PAB_CTRL);
36 writel(val, pcie->csr_axi_slave_base + PAB_CTRL);
39 static void __iomem *mobiveil_pcie_comp_addr(struct mobiveil_pcie *pcie,
44 mobiveil_pcie_sel_page(pcie, 0);
45 return pcie->csr_axi_slave_base + off;
48 mobiveil_pcie_sel_page(pcie, OFFSET_TO_PAGE_IDX(off));
49 return pcie->csr_axi_slave_base + OFFSET_TO_PAGE_ADDR(off);
99 u32 mobiveil_csr_read(struct mobiveil_pcie *pcie, u32 off, size_t size)
105 addr = mobiveil_pcie_comp_addr(pcie, off);
109 dev_err(&pcie->pdev->dev, "read CSR address failed\n");
114 void mobiveil_csr_write(struct mobiveil_pcie *pcie, u32 val, u32 off,
120 addr = mobiveil_pcie_comp_addr(pcie, off);
124 dev_err(&pcie->pdev->dev, "write CSR address failed\n");
127 bool mobiveil_pcie_link_up(struct mobiveil_pcie *pcie)
129 if (pcie->ops->link_up)
130 return pcie->ops->link_up(pcie);
132 return (mobiveil_csr_readl(pcie, LTSSM_STATUS) &
136 void program_ib_windows(struct mobiveil_pcie *pcie, int win_num,
142 if (win_num >= pcie->ppio_wins) {
143 dev_err(&pcie->pdev->dev,
148 value = mobiveil_csr_readl(pcie, PAB_PEX_AMAP_CTRL(win_num));
152 mobiveil_csr_writel(pcie, value, PAB_PEX_AMAP_CTRL(win_num));
154 mobiveil_csr_writel(pcie, upper_32_bits(size64),
157 mobiveil_csr_writel(pcie, lower_32_bits(cpu_addr),
159 mobiveil_csr_writel(pcie, upper_32_bits(cpu_addr),
162 mobiveil_csr_writel(pcie, lower_32_bits(pci_addr),
164 mobiveil_csr_writel(pcie, upper_32_bits(pci_addr),
167 pcie->ib_wins_configured++;
173 void program_ob_windows(struct mobiveil_pcie *pcie, int win_num,
179 if (win_num >= pcie->apio_wins) {
180 dev_err(&pcie->pdev->dev,
189 value = mobiveil_csr_readl(pcie, PAB_AXI_AMAP_CTRL(win_num));
193 mobiveil_csr_writel(pcie, value, PAB_AXI_AMAP_CTRL(win_num));
195 mobiveil_csr_writel(pcie, upper_32_bits(size64),
202 mobiveil_csr_writel(pcie,
205 mobiveil_csr_writel(pcie, upper_32_bits(cpu_addr),
208 mobiveil_csr_writel(pcie, lower_32_bits(pci_addr),
210 mobiveil_csr_writel(pcie, upper_32_bits(pci_addr),
213 pcie->ob_wins_configured++;
216 int mobiveil_bringup_link(struct mobiveil_pcie *pcie)
222 if (mobiveil_pcie_link_up(pcie))
228 dev_err(&pcie->pdev->dev, "link never came up\n");