linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Davor Joja <davorjoja@logicbricks.com>
To: linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org,
	tomi.valkeinen@ti.com, geert@linux-m68k.org
Cc: Davor Joja <davorjoja@logicbricks.com>
Subject: [PATCH 09/10] bindings: video: Xylon logiCVC IP core device binding
Date: Wed, 11 Mar 2015 15:27:10 +0000	[thread overview]
Message-ID: <68408a0a-93c9-43b2-b9df-db739bc59d12@mail.xylon.local> (raw)
In-Reply-To: <1426087631-9952-1-git-send-email-davorjoja@logicbricks.com>

Xylon logiCVC IP core binding description.

Signed-off-by: Davor Joja <davorjoja@logicbricks.com>
---
 .../devicetree/bindings/video/xylon-logicvc.txt    | 207 +++++++++++++++++++++
 1 file changed, 207 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/video/xylon-logicvc.txt

diff --git a/Documentation/devicetree/bindings/video/xylon-logicvc.txt b/Documentation/devicetree/bindings/video/xylon-logicvc.txt
new file mode 100644
index 0000000..d49c574
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/xylon-logicvc.txt
@@ -0,0 +1,207 @@
+Binding for Xylon logiCVC configurable video controller IP core
+
+Required properties:
+ - compatible: "xylon,logicvc-3.00.a", "xylon,logicvc-4.00.a"
+ - reg: MMIO base address and size of the logiCVC IP core address space
+ - interrupts-parent: the phandle for interrupt controller
+ - interrupts: the interrupt number
+ - pixel-stride: layer width in pixels
+      Common for all available logiCVC standard layers.
+
+ - layer_N: layer has its own configuration described with below properties,
+      where N is layer ID in range 0 - 4
+   - bits-per-pixel: layer bits per pixel configuration (8, 16, 32)
+         Layer is configured to be used with specified pixel width in bits.
+         Pixels written to layer video memory must match in size to configured
+         "bits-per-pixel" value.
+         Note: Allowed "transparency" for values of "bits-per-pixel":
+
+         =======================+             bits-per-pixel             transparency
+         =======================+                   8                       clut16
+                   8                       clut32
+                   8                       layer
+                   16                      layer
+                   32                      layer, pixel
+         =======================+
+   - type: layer type (rgb, yuv, alpha)
+         Layer is configured to be used with specified color space.
+         Pixels written to layer video memory must match specified color format.
+         Type is set to "alpha" if layer contains only pixel alpha values
+         used by layer above. Permitted layer IDs for configuring layer alpha
+         are 1 and 3.
+   - transparency: layer transparency (clut16, clut32, layer, pixel)
+         logiCVC layer can be configured to have transparency control on
+         CLUT, layer or pixel level.
+         "CLUT" mode enables controlling of layer transparency by changing
+         alpha value in logiCVC CLUT registers.
+         "Layer" mode enables controlling of layer transparency by changing
+         alpha value in single logiCVC register.
+         "Pixel" mode enables controlling of pixel transparency by changing
+         dedicated alpha bits of specific pixel in video memory.
+         Note: "transparency" property is not used if "type" property is set
+         to "alpha".
+
+Optional properties:
+ - background-layer-bits-per-pixel: background layer bits per pixel (8, 16, 32)
+      If omitted, last available layer is logiCVC standard layer, which has its
+      own video memory of specific size, color format and specified
+      bits per pixel.
+      If 8, 16 or 32, last available layer is logiCVC background layer,
+      with only specified bits per pixel value.
+ - background-layer-type: background layer type (rgb, yuv)
+      Must be used only when "background-layer-bits-per-pixel" exist.
+      If set to "rgb", in case of 32 bits per pixel, background color register
+      must be written with XRGB8888 value. In case of 16 bits per pixel,
+      background color register must be written with RGB565 value.
+      If set to "yuv", background color register must be written with XYUV8888
+      value.
+ - hsync-active-low: horizontal synchronization pulse is active low "L"
+      If omitted, generated horizontal synchronization pulse polarity is logic
+      high "H".
+ - vsync-active-low: vertical synchronization pulse is active low "L"
+      If omitted, generated vertical synchronization pulse polarity is logic
+      high "H".
+ - pixel-data-invert: output pixel data polarity is inverted
+      If omitted, logiCVC outputs pixel data at default interface polarity.
+ - pixel-data-output-trigger-high: output pixel data triggers on rising edge
+      If omitted, logiCVC outputs pixel data on falling edge of pixel clock.
+ - readable-regs: all logiCVC registers are available for reading
+      If omitted, only Interrupt Status, Power Control and IP Version registers
+      are available for reading.
+ - size-position: logiCVC functionality for controlling on screen layer size
+      and position available
+      If omitted, functionality not available.
+ - component-swap: swap the order of colour components inside the pixel
+ - data-enable-active-low: data enable signal is active low "L"
+      If omitted, generated data enable polarity is logic high "H".
+ - display-interface-itu656: modifies RGB to YUV conversion coefficients
+ - address: layer video memory address for layer_N where
+      N is layer ID in range 0 - 4.
+      logiCVC can be configured to have layer video memory address hardcoded
+      as layer register reset value. This video memory is not part of the system
+      memory. Still it is accessible by CPU and HW devices.
+      If omitted, layer video memory address is set dynamically by
+      device driver.Layer video memory address can be changed dynamically
+      despite the hardcoded address.
+      Note: Additionally, address range parameter can be set. It defines range
+      of video memory in bytes starting from provided address. It is mandatory
+      for physically last layer in memory. If range parameter is omitted for
+      physically last layer, range will be by default set to 2048 lines.
+      If omitted for any other layer then physically last layer,
+      range will be calculated according to address of next physical layer.
+ - buffer-offset: buffer address offset represented in number of lines
+      Used only for HW buffer switching.
+      If omitted, buffer offset variable is by default set to "0".
+ - power-delay: delay in ms after enabling display power supply
+      If omitted, delay is by default set to "0".
+ - signal-delay: delay in ms after enabling display control and data signals
+      in parallel and LVDS interface
+      If omitted, delay is by default set to "0".
+ - display-timings: custom display video mode timing parameters
+      If omitted, driver will use its default video mode timings.
+      native-mode optional parameter determines which video mode timings from
+      the list are used. If native-mode parameter is omitted, first available
+      video mode timings are used.
+
+Example:
+
+	logicvc_0: logicvc@40000000 {
+		compatible = "xylon,logicvc-4.00.a";
+		reg = <0x40030000 0x6000>;
+		interrupt-parent = <&ps7_scugic_0>;
+		interrupts = <0 59 4>;
+		background-layer-bits-per-pixel = <32>;
+		background-layer-type = "rgb";
+		display-interface-itu656;
+		hsync-active-low;
+		vsync-active-low;
+		data-enable-active-low;
+		pixel-data-invert;
+		pixel-data-output-trigger-high;
+		readable-regs;
+		size-position;
+		pixel-stride = <2048>;
+		power-delay = <100>;
+		signal-delay = <50>;
+		layer_0 {
+			address = <0x30000000>
+			buffer-offset = <512>;
+			bits-per-pixel = <16>;
+			type = "yuv";
+			transparency = "layer";
+			component-swap;
+		};
+		layer_1 {
+			address = <0x30600000>;
+			bits-per-pixel = <32>;
+			type = "rgb";
+			transparency = "pixel";
+		};
+		layer_2 {
+			address = <0x31F50000>;
+			bits-per-pixel = <8>;
+			type = "rgb";
+			transparency = "clut32";
+		};
+		layer_3 {
+			address = <0x3216C000 0xCA8000>;
+			bits-per-pixel = <16>;
+			type = "rgb";
+			transparency = "layer";
+		};
+
+		display-timings {
+			native-mode = <&wsxga>;
+			hd720p: 1280x720 {
+				clock-frequency = <74250000>;
+				hactive = <1280>;
+				vactive = <720>;
+				hfront-porch = <110>;
+				hback-porch = <220>;
+				hsync-len = <40>;
+				vfront-porch = <5>;
+				vback-porch = <20>;
+				vsync-len = <5>;
+				hsync-active = <0>;
+				vsync-active = <0>;
+				de-active = <1>;
+				pixelclk-active = <1>;
+			};
+			wsxga: 1680x1050 {
+				clock-frequency = <119000000>;
+				hactive = <1680>;
+				vactive = <1050>;
+				hfront-porch = <48>;
+				hback-porch = <80>;
+				hsync-len = <32>;
+				vfront-porch = <3>;
+				vback-porch = <21>;
+				vsync-len = <6>;
+			};
+			hd1080p: 1920x1080 {
+				clock-frequency = <148500000>;
+				hactive = <1920>;
+				vactive = <1080>;
+				hfront-porch = <88>;
+				hback-porch = <148>;
+				hsync-len = <44>;
+				vfront-porch = <4>;
+				vback-porch = <36>;
+				vsync-len = <5>;
+			};
+			TM050RBH01: 800x480 {
+				clock-frequency = <30000000>;
+				hactive = <800>;
+				vactive = <480>;
+				hfront-porch = <40>;
+				hback-porch = <40>;
+				hsync-len = <48>;
+				vfront-porch = <13>;
+				vback-porch = <29>;
+				vsync-len = <3>;
+			};
+		};
+	};
-- 
1.9.1


  parent reply	other threads:[~2015-03-11 15:27 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-11 15:27 Add Xylon logiCVC framebuffer driver Davor Joja
2015-03-11 15:27 ` [PATCH 01/10] fbdev: Xylon " Davor Joja
2015-03-11 15:27 ` [PATCH 02/10] fbdev: xylon: Framebuffer driver core Davor Joja
2015-03-11 15:27 ` [PATCH 03/10] fbdev: xylon: Framebuffer driver ioctl Davor Joja
2015-03-11 15:27 ` [PATCH 04/10] fbdev: xylon: Framebuffer driver pixel clock Davor Joja
2015-03-11 15:27 ` [PATCH 05/10] fbdev: xylon: logiCVC IP core definitions Davor Joja
2015-03-11 15:27 ` [PATCH 06/10] fbdev: xylon: Framebuffer driver kernel and make configuration Davor Joja
2015-03-11 15:27 ` [PATCH 07/10] uapi: linux: Xylon framebuffer driver header file Davor Joja
2015-03-11 15:27 ` [PATCH 08/10] fbdev: Xylon framebuffer driver to fbdev Kconfig and Makefile Davor Joja
2015-03-11 15:27 ` Davor Joja [this message]
2015-03-11 15:27 ` [PATCH 10/10] bindings: video: Xylon framebuffer driver binding Davor Joja

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=68408a0a-93c9-43b2-b9df-db739bc59d12@mail.xylon.local \
    --to=davorjoja@logicbricks.com \
    --cc=geert@linux-m68k.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tomi.valkeinen@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).