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 | | ↓ | | | 63 +----------#######################################----------+-------+ 64 | # ↑ # | | 65 | # | # | | 66 | hback # | # hfront | hsync | 67 | porch # | hactive # porch | len | 68 |<-------->#<-------+--------------------------->#<-------->|<----->| 69 | # | # | | 70 | # |vactive # | | 71 | # | # | | 72 | # ↓ # | | 73 +----------#######################################----------+-------+ 74 | | ↑ | | | 75 | | |vfront_porch | | | 76 | | ↓ | | | 77 +----------+-------------------------------------+----------+-------+ 78 | | ↑ | | | 79 | | |vsync_len | | | 80 | | ↓ | | | 81 +----------+-------------------------------------+----------+-------+ 82 83Example: 84 85 display-timings { 86 native-mode = <&timing0>; 87 timing0: 1080p24 { 88 /* 1920x1080p24 */ 89 clock-frequency = <52000000>; 90 hactive = <1920>; 91 vactive = <1080>; 92 hfront-porch = <25>; 93 hback-porch = <25>; 94 hsync-len = <25>; 95 vback-porch = <2>; 96 vfront-porch = <2>; 97 vsync-len = <2>; 98 hsync-active = <1>; 99 }; 100 }; 101 102Every required property also supports the use of ranges, so the commonly used 103datasheet description with minimum, typical and maximum values can be used. 104 105Example: 106 107 timing1: timing { 108 /* 1920x1080p24 */ 109 clock-frequency = <148500000>; 110 hactive = <1920>; 111 vactive = <1080>; 112 hsync-len = <0 44 60>; 113 hfront-porch = <80 88 95>; 114 hback-porch = <100 148 160>; 115 vfront-porch = <0 4 6>; 116 vback-porch = <0 36 50>; 117 vsync-len = <0 5 6>; 118 }; 119