[PATCH v7 1/2] video: ARM CLCD: Add DT support
Russell King - ARM Linux
linux at arm.linux.org.uk
Mon Jun 23 07:10:23 PDT 2014
On Mon, Jun 23, 2014 at 02:52:15PM +0100, Pawel Moll wrote:
> On Fri, 2014-06-20 at 23:27 +0100, Peter Maydell wrote:
> > How does this work for boards like the versatilepb which have a
> > mux between a PL110 and the TFT, allowing it to efffectively
> > rewire the pads at runtime under control of the SYS_CLCD
> > sysreg (to give a wider range of colour modes than the
> > PL110 supports natively)?
> The particular case you're referring has been already discussed several
> times, and the bottom line here is that it's not PL111 compatible (there
> are more changes than just the mux) and will need separate "compatible"
> value and some tweaks in the driver (in the places currently doing
> Now, if it was PL111 with an external, independent muxer, the pads
> description would still hold its value (PL111's R would still be wired
> up at a particular pad etc.) and the display pipeline drivers would have
> to handle the case.
Err. Somehow, I don't think you understand the hardware you're messing
with there. Remember, I wrote support all the support code for the
PL11x and supporting this.
Yes, the Versatile PL110 has one difference: it has the IENB and CNTL
registers swapped compared to the conventional PL110 devices. This can
be handled via an appropriate compatible property. The hardware cursor
registers are also omitted, but that's irrelevant as we don't use that.
Other than that, it's a standard PL110. Connected to its outputs is a
PLD. Inside the PLD is a mux controlled via the SYS_CLCD register.
As far as the CLD outputs are concerned, they are standard. The PLD on
their outputs routes the CLD bits to the 8-bit red, green and blue
channels according to the configuration of SYS_CLCD to achieve the
various colour formats which the CLCD does not natively provide for.
So, it /is/ a PL110 with an independent external muxer.
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.
More information about the linux-arm-kernel