Re: [PATCH] powerpc/85xx: use the BRx registers to enable indirect mode on the P1022DS
From: Kumar Gala <hidden>
Date: 2012-07-06 18:09:51
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.
=20 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. =20 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. =20 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. =20 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. =20 Since the indirect pixis device tree node is no longer needed, the =
node is
deleted from the DTS. =20 Signed-off-by: Timur Tabi <redacted> --- 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=