1display-timing bindings 2======================= 3 4display-timings node 5-------------------- 6 7required properties: 8 - none 9 10optional 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 14timing subnode 15-------------- 16 17required 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 25optional 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 - syncclk-active: with 36 - active high = drive sync on rising edge/ 37 sample sync on falling edge of pixel 38 clock 39 - active low = drive sync on falling edge/ 40 sample sync on rising edge of pixel 41 clock 42 - omitted = same configuration as pixelclk-active 43 - interlaced (bool): boolean to enable interlaced mode 44 - doublescan (bool): boolean to enable doublescan mode 45 - doubleclk (bool): boolean to enable doubleclock mode 46 47All the optional properties that are not bool follow the following logic: 48 <1>: high active 49 <0>: low active 50 omitted: not used on hardware 51 52There are different ways of describing the capabilities of a display. The 53devicetree representation corresponds to the one commonly found in datasheets 54for displays. If a display supports multiple signal timings, the native-mode 55can be specified. 56 57The parameters are defined as: 58 59 +----------+-------------------------------------+----------+-------+ 60 | | ^ | | | 61 | | |vback_porch | | | 62 | | v | | | 63 +----------#######################################----------+-------+ 64 | # ^ # | | 65 | # | # | | 66 | hback # | # hfront | hsync | 67 | porch # | hactive # porch | len | 68 |<-------->#<-------+--------------------------->#<-------->|<----->| 69 | # | # | | 70 | # |vactive # | | 71 | # | # | | 72 | # v # | | 73 +----------#######################################----------+-------+ 74 | | ^ | | | 75 | | |vfront_porch | | | 76 | | v | | | 77 +----------+-------------------------------------+----------+-------+ 78 | | ^ | | | 79 | | |vsync_len | | | 80 | | v | | | 81 +----------+-------------------------------------+----------+-------+ 82 83Note: In addition to being used as subnode(s) of display-timings, the timing 84 subnode may also be used on its own. This is appropriate if only one mode 85 need be conveyed. In this case, the node should be named 'panel-timing'. 86 87 88Example: 89 90 display-timings { 91 native-mode = <&timing0>; 92 timing0: 1080p24 { 93 /* 1920x1080p24 */ 94 clock-frequency = <52000000>; 95 hactive = <1920>; 96 vactive = <1080>; 97 hfront-porch = <25>; 98 hback-porch = <25>; 99 hsync-len = <25>; 100 vback-porch = <2>; 101 vfront-porch = <2>; 102 vsync-len = <2>; 103 hsync-active = <1>; 104 }; 105 }; 106 107Every required property also supports the use of ranges, so the commonly used 108datasheet description with minimum, typical and maximum values can be used. 109 110Example: 111 112 timing1: timing { 113 /* 1920x1080p24 */ 114 clock-frequency = <148500000>; 115 hactive = <1920>; 116 vactive = <1080>; 117 hsync-len = <0 44 60>; 118 hfront-porch = <80 88 95>; 119 hback-porch = <100 148 160>; 120 vfront-porch = <0 4 6>; 121 vback-porch = <0 36 50>; 122 vsync-len = <0 5 6>; 123 }; 124