[PATCH] powerpc/85xx: use the BRx registers to enable indirect mode on the P1022DS
Kumar Gala
galak at kernel.crashing.org
Sat Jul 7 04:09:54 EST 2012
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 <timur at freescale.com>
> ---
> 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
More information about the Linuxppc-dev
mailing list