On Jul 5, 2012, at 10:08 AM, Timur Tabi wrote: > In order to enable the DIU video controller on the P1022DS, the FPGA needs > to be switched to "indirect mode", where the localbus is disabled and > the FPGA is accessed via writes to localbus chip select signals CS0 and CS1. > > To obtain the address of CS0 and CS1, the platform driver uses an "indirect > pixis mode" device tree node. This node assumes that the localbus 'ranges' > property is sorted in chip-select order. That is, reg value 0 maps to > CS0, reg value 1 maps to CS1, etc. This is how the 'ranges' property is > supposed to be arranged. > > Unfortunately, the 'ranges' property is often mis-arranged, and not just on > the P1022DS. Linux normally does not care, since it does not program the > localbus. But the indirect-mode code on the P1022DS does care. > > The "proper" fix is to have U-Boot fix the 'ranges' property, but this would > be too cumbersome. The names and 'reg' properties of all the localbus > devices would also need to be updated, and determining which localbus device > maps to which chip select is board-specific. > > Instead, we determine the CS0/CS1 base addresses the same way that U-boot > does -- by reading the BRx registers directly and mapping them to physical > addresses. This code is simpler and more reliable, and it does not require > a U-boot or device tree change. > > Since the indirect pixis device tree node is no longer needed, the node is > deleted from the DTS. > > Signed-off-by: Timur Tabi <[email protected]> > --- > arch/powerpc/boot/dts/p1022ds.dtsi | 16 ----- > arch/powerpc/platforms/85xx/p1022_ds.c | 106 ++++++++++++++++++++++++++++---- > 2 files changed, 93 insertions(+), 29 deletions(-)
applied to next - k _______________________________________________ Linuxppc-dev mailing list [email protected] https://lists.ozlabs.org/listinfo/linuxppc-dev
