Lines Matching full:pcie

5  * Layerscape PCIe driver
25 static int ls_pcie_next_lut_index(struct ls_pcie *pcie) in ls_pcie_next_lut_index() argument
27 if (pcie->next_lut_index < PCIE_LUT_ENTRY_COUNT) in ls_pcie_next_lut_index()
28 return pcie->next_lut_index++; in ls_pcie_next_lut_index()
33 /* returns the next available streamid for pcie, -errno if failed */
44 static void lut_writel(struct ls_pcie *pcie, unsigned int value, in lut_writel() argument
47 if (pcie->big_endian) in lut_writel()
48 out_be32(pcie->lut + offset, value); in lut_writel()
50 out_le32(pcie->lut + offset, value); in lut_writel()
56 static void ls_pcie_lut_set_mapping(struct ls_pcie *pcie, int index, u32 devid, in ls_pcie_lut_set_mapping() argument
60 lut_writel(pcie, devid << 16, PCIE_LUT_UDR(index)); in ls_pcie_lut_set_mapping()
61 lut_writel(pcie, streamid | PCIE_LUT_ENABLE, PCIE_LUT_LDR(index)); in ls_pcie_lut_set_mapping()
72 static void fdt_pcie_set_msi_map_entry(void *blob, struct ls_pcie *pcie, in fdt_pcie_set_msi_map_entry() argument
82 nodeoffset = fdt_node_offset_by_compat_reg(blob, "fsl,ls-pcie", in fdt_pcie_set_msi_map_entry()
83 pcie->dbi_res.start); in fdt_pcie_set_msi_map_entry()
90 compat = "fsl,ls2088a-pcie"; in fdt_pcie_set_msi_map_entry()
95 compat, pcie->dbi_res.start); in fdt_pcie_set_msi_map_entry()
104 debug("\n%s: ERROR: missing msi-parent: PCIe%d\n", in fdt_pcie_set_msi_map_entry()
105 __func__, pcie->idx); in fdt_pcie_set_msi_map_entry()
125 static void fdt_pcie_set_iommu_map_entry(void *blob, struct ls_pcie *pcie, in fdt_pcie_set_iommu_map_entry() argument
136 nodeoffset = fdt_node_offset_by_compat_reg(blob, "fsl,ls-pcie", in fdt_pcie_set_iommu_map_entry()
137 pcie->dbi_res.start); in fdt_pcie_set_iommu_map_entry()
144 compat = "fsl,ls2088a-pcie"; in fdt_pcie_set_iommu_map_entry()
150 compat, pcie->dbi_res.start); in fdt_pcie_set_iommu_map_entry()
159 debug("\n%s: ERROR: missing iommu-map: PCIe%d\n", in fdt_pcie_set_iommu_map_entry()
160 __func__, pcie->idx); in fdt_pcie_set_iommu_map_entry()
181 struct ls_pcie *pcie; in fdt_fixup_pcie() local
192 pcie = dev_get_priv(bus); in fdt_fixup_pcie()
200 index = ls_pcie_next_lut_index(pcie); in fdt_fixup_pcie()
209 ls_pcie_lut_set_mapping(pcie, index, bdf >> 8, in fdt_fixup_pcie()
212 fdt_pcie_set_msi_map_entry(blob, pcie, bdf >> 8, in fdt_fixup_pcie()
215 fdt_pcie_set_iommu_map_entry(blob, pcie, bdf >> 8, in fdt_fixup_pcie()
221 static void ft_pcie_rc_fix(void *blob, struct ls_pcie *pcie) in ft_pcie_rc_fix() argument
227 off = fdt_node_offset_by_compat_reg(blob, "fsl,ls-pcie", in ft_pcie_rc_fix()
228 pcie->dbi_res.start); in ft_pcie_rc_fix()
235 compat = "fsl,ls2088a-pcie"; in ft_pcie_rc_fix()
240 compat, pcie->dbi_res.start); in ft_pcie_rc_fix()
246 if (pcie->enabled && pcie->mode == PCI_HEADER_TYPE_BRIDGE) in ft_pcie_rc_fix()
252 static void ft_pcie_ep_fix(void *blob, struct ls_pcie *pcie) in ft_pcie_ep_fix() argument
256 off = fdt_node_offset_by_compat_reg(blob, "fsl,ls-pcie-ep", in ft_pcie_ep_fix()
257 pcie->dbi_res.start); in ft_pcie_ep_fix()
261 if (pcie->enabled && pcie->mode == PCI_HEADER_TYPE_NORMAL) in ft_pcie_ep_fix()
267 static void ft_pcie_ls_setup(void *blob, struct ls_pcie *pcie) in ft_pcie_ls_setup() argument
269 ft_pcie_ep_fix(blob, pcie); in ft_pcie_ls_setup()
270 ft_pcie_rc_fix(blob, pcie); in ft_pcie_ls_setup()
273 /* Fixup Kernel DT for PCIe */
276 struct ls_pcie *pcie; in ft_pci_setup() local
278 list_for_each_entry(pcie, &ls_pcie_list, list) in ft_pci_setup()
279 ft_pcie_ls_setup(blob, pcie); in ft_pci_setup()