pci: layerscape: Fixup PCIe EP mode DT nodes for LX2160A rev2

LX2160A rev2 uses different PCIe controller, so EP mode DT
nodes also need to be fixed up.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
Hou Zhiqiang 2020-09-13 23:12:50 +08:00 committed by Priyanka Jain
parent 6fe7743d05
commit 8ec619f8fd

View File

@ -41,6 +41,8 @@ int lx2_board_fix_fdt(void *fdt)
{ "config_axi_slave", "config" }
};
int off = -1, i;
const fdt32_t *prop;
u32 ob_wins, ib_wins;
off = fdt_node_offset_by_compatible(fdt, -1, "fsl,lx2160a-pcie");
while (off != -FDT_ERR_NOTFOUND) {
@ -86,6 +88,30 @@ int lx2_board_fix_fdt(void *fdt)
off = fdt_node_offset_by_compatible(fdt, off,
"fsl,lx2160a-pcie");
}
/* Fixup PCIe EP nodes */
off = -1;
off = fdt_node_offset_by_compatible(fdt, off, "fsl,lx2160a-pcie-ep");
while (off != -FDT_ERR_NOTFOUND) {
fdt_setprop_string(fdt, off, "compatible",
"fsl,lx2160ar2-pcie-ep");
prop = fdt_getprop(fdt, off, "apio-wins", NULL);
if (!prop) {
printf("%s: Failed to fixup PCIe EP node @0x%x\n",
__func__, off);
continue;
}
ob_wins = fdt32_to_cpu(*prop);
ib_wins = (ob_wins == 256) ? 24 : 8;
fdt_setprop_u32(fdt, off, "num-ib-windows", ib_wins);
fdt_setprop_u32(fdt, off, "num-ob-windows", ob_wins);
fdt_delprop(fdt, off, "apio-wins");
off = fdt_node_offset_by_compatible(fdt, off,
"fsl,lx2160a-pcie-ep");
}
return 0;
}