111 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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
 | 
						|
 - 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                 |          |       |
 | 
						|
  |          |        ↓                            |          |       |
 | 
						|
  +----------#######################################----------+-------+
 | 
						|
  |          #        ↑                            #          |       |
 | 
						|
  |          #        |                            #          |       |
 | 
						|
  |  hback   #        |                            #  hfront  | hsync |
 | 
						|
  |   porch  #        |       hactive              #  porch   |  len  |
 | 
						|
  |<-------->#<-------+--------------------------->#<-------->|<----->|
 | 
						|
  |          #        |                            #          |       |
 | 
						|
  |          #        |vactive                     #          |       |
 | 
						|
  |          #        |                            #          |       |
 | 
						|
  |          #        ↓                            #          |       |
 | 
						|
  +----------#######################################----------+-------+
 | 
						|
  |          |        ↑                            |          |       |
 | 
						|
  |          |        |vfront_porch                |          |       |
 | 
						|
  |          |        ↓                            |          |       |
 | 
						|
  +----------+-------------------------------------+----------+-------+
 | 
						|
  |          |        ↑                            |          |       |
 | 
						|
  |          |        |vsync_len                   |          |       |
 | 
						|
  |          |        ↓                            |          |       |
 | 
						|
  +----------+-------------------------------------+----------+-------+
 | 
						|
 | 
						|
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>;
 | 
						|
	};
 |