linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [RFC 00/10] Versatile Express CLCD DVI output support
@ 2013-04-17 15:17 Pawel Moll
       [not found] ` <1366211842-21497-7-git-send-email-pawel.moll@arm.com>
  0 siblings, 1 reply; 3+ messages in thread
From: Pawel Moll @ 2013-04-17 15:17 UTC (permalink / raw)
  To: linux-arm-kernel

Hello All,

This series implements support for the Versatile Express
video output pipeline, which is not the simplest one available...

It is meant as a RFC only and I'm hoping to attract all possible
feedback (*including* naming ;-).

The VE's "MultiMedia Bus" [1] comprises three video signal sources
(motherboard's CLCD cell and a implementation-specific driver
on each of the daugtherboards) and a FPGA multiplexer routing
data from one of the sources to DVI/HDMI formatter chip (Sii9022).

+-----+
| DB1 |>--+                         DVI connector
+-----+   |   +------+                   +--+
          +-->|      |                   |oo|
+-----+       | mux  |    +---------+    |oo|
| DB2 |>----->|      |>-->| sii9022 |>-->|oo|
+-----+       | FPGA |    +---------+    |oo|
          +-->|      |                   |oo|
+-----+   |   +------+                   +--+
| MB  |>--+
+-----+

The series is based on Laurent Pinchart's Common Display Framework
patch (not in mainline yet, v2 discussed here: [2]) and extends it
by adding DT bindings and basic support for TFT panels.

The CLCD driver has been adapted to work with the framework and
the Device Tree information.

Also a set of drivers for the VE-specific components is included
(note that the sii9022 is now driven via the moterboard firmware;
this is intended to be replaced by a proper I2C driver for the
chip).

It is worth mentioning that the CDF caters for both fbdev and DRM
so the solution should be suitable for all potential DRM-driven
display controllers.

[1] http://infocenter.arm.com/help/topic/com.arm.doc.dui0447h/CHDEHEAA.html#CACGIGGC
[2] http://thread.gmane.org/gmane.linux.drivers.video-input-infrastructure/57298


Laurent Pinchart (1):
  video: Add generic display entity core

Pawel Moll (9):
  video: display: Update the display with the video mode data
  video: display: Add Device Tree bindings
  video: display: Add generic TFT display type
  fbmon: Add extra video helper
  video: ARM CLCD: Add DT & CDF support
  mfd: vexpress: Allow external drivers to parse site ids
  video: Versatile Express MUXFPGA driver
  video: Versatile Express DVI mode driver
  ARM: vexpress: Add CLCD Device Tree properties

 .../testing/sysfs-driver-video-vexpress-muxfpga    |    5 +
 .../devicetree/bindings/video/arm,pl11x.txt        |   35 ++
 .../devicetree/bindings/video/display-bindings.txt |   75 ++++
 arch/arm/boot/dts/vexpress-v2m-rs1.dtsi            |   17 +-
 arch/arm/boot/dts/vexpress-v2m.dtsi                |   17 +-
 arch/arm/boot/dts/vexpress-v2p-ca9.dts             |    5 +
 drivers/mfd/vexpress-sysreg.c                      |    5 +
 drivers/video/Kconfig                              |    2 +
 drivers/video/Makefile                             |    5 +
 drivers/video/amba-clcd.c                          |  244 +++++++++++
 drivers/video/display/Kconfig                      |    4 +
 drivers/video/display/Makefile                     |    1 +
 drivers/video/display/display-core.c               |  447 ++++++++++++++++++++
 drivers/video/fbmon.c                              |   29 ++
 drivers/video/vexpress-dvimode.c                   |  158 +++++++
 drivers/video/vexpress-muxfpga.c                   |  228 ++++++++++
 include/linux/amba/clcd.h                          |    2 +
 include/linux/fb.h                                 |    3 +
 include/linux/vexpress.h                           |    2 +
 include/video/display.h                            |  172 ++++++++
 20 files changed, 1448 insertions(+), 8 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-driver-video-vexpress-muxfpga
 create mode 100644 Documentation/devicetree/bindings/video/arm,pl11x.txt
 create mode 100644 Documentation/devicetree/bindings/video/display-bindings.txt
 create mode 100644 drivers/video/display/Kconfig
 create mode 100644 drivers/video/display/Makefile
 create mode 100644 drivers/video/display/display-core.c
 create mode 100644 drivers/video/vexpress-dvimode.c
 create mode 100644 drivers/video/vexpress-muxfpga.c
 create mode 100644 include/video/display.h

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [RFC 06/10] video: ARM CLCD: Add DT & CDF support
       [not found] ` <1366211842-21497-7-git-send-email-pawel.moll@arm.com>
@ 2013-04-18 10:24   ` Russell King - ARM Linux
       [not found]     ` <1366306402-21651-1-git-send-email-pawel.moll@arm.com>
  0 siblings, 1 reply; 3+ messages in thread
From: Russell King - ARM Linux @ 2013-04-18 10:24 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Apr 17, 2013 at 04:17:18PM +0100, Pawel Moll wrote:
> +#if defined(CONFIG_OF)
> +static int clcdfb_of_get_tft_parallel_panel(struct clcd_panel *panel,
> +		struct display_entity_interface_params *params)
> +{
> +	int r = params->p.tft_parallel.r_bits;
> +	int g = params->p.tft_parallel.g_bits;
> +	int b = params->p.tft_parallel.b_bits;
> +
> +	/* Bypass pixel clock divider, data output on the falling edge */
> +	panel->tim2 = TIM2_BCD | TIM2_IPC;
> +
> +	/* TFT display, vert. comp. interrupt at the start of the back porch */
> +	panel->cntl |= CNTL_LCDTFT | CNTL_LCDVCOMP(1);
> +
> +	if (params->p.tft_parallel.r_b_swapped)
> +		panel->cntl |= CNTL_BGR;

NAK.  Do not set this explicitly.  Note the driver talks about this being
"the old way" - this should not be used with the panel capabilities - and
in fact it will be overwritten.

Instead, you need to encode this into the capabilities by masking the
below with CLCD_CAP_RGB or CLCD_CAP_BGR depending on the ordering.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [RFC v2] video: ARM CLCD: Add DT & CDF support
       [not found]     ` <1366306402-21651-1-git-send-email-pawel.moll@arm.com>
@ 2013-04-22 14:28       ` Russell King - ARM Linux
  0 siblings, 0 replies; 3+ messages in thread
From: Russell King - ARM Linux @ 2013-04-22 14:28 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Apr 18, 2013 at 06:33:21PM +0100, Pawel Moll wrote:
> This patch adds basic DT bindings for the PL11x CLCD cells
> and make their fbdev driver use them, together with the
> Common Display Framework.
> 
> The DT provides information about the hardware configuration
> and limitations (eg. the largest supported resolution)
> but the video modes come exclusively from the Common
> Display Framework drivers, referenced to by the standard CDF
> binding.
> 
> Signed-off-by: Pawel Moll <pawel.moll@arm.com>

Much better.

I will point out though that there be all sorts of worms here when you
come to the previous ARM evaluation boards (which is why the capabilities
stuff got written in the first place) where there's a horrid mixture of
BGR/RGB ordering at various levels of the system - some of which must be
set correctly because the CLCD output isn't strictly used as R bits
G bits and B bits (to support different formats from the CLCD's native
formats.)

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-04-22 14:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-17 15:17 [RFC 00/10] Versatile Express CLCD DVI output support Pawel Moll
     [not found] ` <1366211842-21497-7-git-send-email-pawel.moll@arm.com>
2013-04-18 10:24   ` [RFC 06/10] video: ARM CLCD: Add DT & CDF support Russell King - ARM Linux
     [not found]     ` <1366306402-21651-1-git-send-email-pawel.moll@arm.com>
2013-04-22 14:28       ` [RFC v2] " Russell King - ARM Linux

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).