display-timing bindings
=======================

display-timings node
--------------------

required properties:
 - none

optional properties:
 - native-mode: The native mode for the display, in case multiple modes are
		provided. When omitted, assume the first node is the native.

timing subnode
--------------

required properties:
 - hactive, vactive: display resolution
 - hfront-porch, hback-porch, hsync-len: horizontal display timing parameters
   in pixels
   vfront-porch, vback-porch, vsync-len: vertical display timing parameters in
   lines
 - clock-frequency: display clock in Hz

optional properties:
 - hsync-active: hsync pulse is active low/high/ignored
 - vsync-active: vsync pulse is active low/high/ignored
 - de-active: data-enable pulse is active low/high/ignored
 - pixelclk-active: with
			- active high = drive pixel data on rising edge/
					sample data on falling edge
			- active low  = drive pixel data on falling edge/
					sample data on rising edge
			- ignored     = ignored
 - syncclk-active: with
			- active high = drive sync on rising edge/
					sample sync on falling edge of pixel
					clock
			- active low  = drive sync on falling edge/
					sample sync on rising edge of pixel
					clock
			- omitted     = same configuration as pixelclk-active
 - interlaced (bool): boolean to enable interlaced mode
 - doublescan (bool): boolean to enable doublescan mode
 - doubleclk (bool): boolean to enable doubleclock mode

All the optional properties that are not bool follow the following logic:
    <1>: high active
    <0>: low active
    omitted: not used on hardware

There are different ways of describing the capabilities of a display. The
devicetree representation corresponds to the one commonly found in datasheets
for displays. If a display supports multiple signal timings, the native-mode
can be specified.

The parameters are defined as:

  +----------+-------------------------------------+----------+-------+
  |          |        ^                            |          |       |
  |          |        |vback_porch                 |          |       |
  |          |        v                            |          |       |
  +----------#######################################----------+-------+
  |          #        ^                            #          |       |
  |          #        |                            #          |       |
  |  hback   #        |                            #  hfront  | hsync |
  |   porch  #        |       hactive              #  porch   |  len  |
  |<-------->#<-------+--------------------------->#<-------->|<----->|
  |          #        |                            #          |       |
  |          #        |vactive                     #          |       |
  |          #        |                            #          |       |
  |          #        v                            #          |       |
  +----------#######################################----------+-------+
  |          |        ^                            |          |       |
  |          |        |vfront_porch                |          |       |
  |          |        v                            |          |       |
  +----------+-------------------------------------+----------+-------+
  |          |        ^                            |          |       |
  |          |        |vsync_len                   |          |       |
  |          |        v                            |          |       |
  +----------+-------------------------------------+----------+-------+

Note: In addition to being used as subnode(s) of display-timings, the timing
      subnode may also be used on its own. This is appropriate if only one mode
      need be conveyed. In this case, the node should be named 'panel-timing'.


Example:

	display-timings {
		native-mode = <&timing0>;
		timing0: 1080p24 {
			/* 1920x1080p24 */
			clock-frequency = <52000000>;
			hactive = <1920>;
			vactive = <1080>;
			hfront-porch = <25>;
			hback-porch = <25>;
			hsync-len = <25>;
			vback-porch = <2>;
			vfront-porch = <2>;
			vsync-len = <2>;
			hsync-active = <1>;
		};
	};

Every required property also supports the use of ranges, so the commonly used
datasheet description with minimum, typical and maximum values can be used.

Example:

	timing1: timing {
		/* 1920x1080p24 */
		clock-frequency = <148500000>;
		hactive = <1920>;
		vactive = <1080>;
		hsync-len = <0 44 60>;
		hfront-porch = <80 88 95>;
		hback-porch = <100 148 160>;
		vfront-porch = <0 4 6>;
		vback-porch = <0 36 50>;
		vsync-len = <0 5 6>;
	};
