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 - interlaced (bool): boolean to enable interlaced mode 36 - doublescan (bool): boolean to enable doublescan mode 37 - doubleclk (bool): boolean to enable doubleclock mode 38 39All 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 44There are different ways of describing the capabilities of a display. The 45devicetree representation corresponds to the one commonly found in datasheets 46for displays. If a display supports multiple signal timings, the native-mode 47can be specified. 48 49The 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 75Example: 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 94Every required property also supports the use of ranges, so the commonly used 95datasheet description with minimum, typical and maximum values can be used. 96 97Example: 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