Home | History | Annotate | Download | only in video
      1 display-timing bindings
      2 =======================
      3 
      4 display-timings node
      5 --------------------
      6 
      7 required properties:
      8  - none
      9 
     10 optional properties:
     11  - native-mode: The native mode for the display, in case multiple modes are
     12 		provided. When omitted, assume the first node is the native.
     13 
     14 timing subnode
     15 --------------
     16 
     17 required properties:
     18  - hactive, vactive: display resolution
     19  - hfront-porch, hback-porch, hsync-len: horizontal display timing parameters
     20    in pixels
     21    vfront-porch, vback-porch, vsync-len: vertical display timing parameters in
     22    lines
     23  - clock-frequency: display clock in Hz
     24 
     25 optional properties:
     26  - hsync-active: hsync pulse is active low/high/ignored
     27  - vsync-active: vsync pulse is active low/high/ignored
     28  - de-active: data-enable pulse is active low/high/ignored
     29  - pixelclk-active: with
     30 			- active high = drive pixel data on rising edge/
     31 					sample data on falling edge
     32 			- active low  = drive pixel data on falling edge/
     33 					sample data on rising edge
     34 			- ignored     = ignored
     35  - interlaced (bool): boolean to enable interlaced mode
     36  - doublescan (bool): boolean to enable doublescan mode
     37  - doubleclk (bool): boolean to enable doubleclock mode
     38 
     39 All the optional properties that are not bool follow the following logic:
     40     <1>: high active
     41     <0>: low active
     42     omitted: not used on hardware
     43 
     44 There are different ways of describing the capabilities of a display. The
     45 devicetree representation corresponds to the one commonly found in datasheets
     46 for displays. If a display supports multiple signal timings, the native-mode
     47 can be specified.
     48 
     49 The parameters are defined as:
     50 
     51   +----------+-------------------------------------+----------+-------+
     52   |          |                                    |          |       |
     53   |          |        |vback_porch                 |          |       |
     54   |          |                                    |          |       |
     55   +----------#######################################----------+-------+
     56   |          #                                    #          |       |
     57   |          #        |                            #          |       |
     58   |  hback   #        |                            #  hfront  | hsync |
     59   |   porch  #        |       hactive              #  porch   |  len  |
     60   |<-------->#<-------+--------------------------->#<-------->|<----->|
     61   |          #        |                            #          |       |
     62   |          #        |vactive                     #          |       |
     63   |          #        |                            #          |       |
     64   |          #                                    #          |       |
     65   +----------#######################################----------+-------+
     66   |          |                                    |          |       |
     67   |          |        |vfront_porch                |          |       |
     68   |          |                                    |          |       |
     69   +----------+-------------------------------------+----------+-------+
     70   |          |                                    |          |       |
     71   |          |        |vsync_len                   |          |       |
     72   |          |                                    |          |       |
     73   +----------+-------------------------------------+----------+-------+
     74 
     75 Example:
     76 
     77 	display-timings {
     78 		native-mode = <&timing0>;
     79 		timing0: 1080p24 {
     80 			/* 1920x1080p24 */
     81 			clock-frequency = <52000000>;
     82 			hactive = <1920>;
     83 			vactive = <1080>;
     84 			hfront-porch = <25>;
     85 			hback-porch = <25>;
     86 			hsync-len = <25>;
     87 			vback-porch = <2>;
     88 			vfront-porch = <2>;
     89 			vsync-len = <2>;
     90 			hsync-active = <1>;
     91 		};
     92 	};
     93 
     94 Every required property also supports the use of ranges, so the commonly used
     95 datasheet description with minimum, typical and maximum values can be used.
     96 
     97 Example:
     98 
     99 	timing1: timing {
    100 		/* 1920x1080p24 */
    101 		clock-frequency = <148500000>;
    102 		hactive = <1920>;
    103 		vactive = <1080>;
    104 		hsync-len = <0 44 60>;
    105 		hfront-porch = <80 88 95>;
    106 		hback-porch = <100 148 160>;
    107 		vfront-porch = <0 4 6>;
    108 		vback-porch = <0 36 50>;
    109 		vsync-len = <0 5 6>;
    110 	};
    111