-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'of_videomode_helper' of git://git.pengutronix.de/git/str/l…
…inux into drm-next videomode helpers for of + devicetree stuff, required for new kms drivers (not the fbdev maintainer). * tag 'of_videomode_helper' of git://git.pengutronix.de/git/str/linux: drm_modes: add of_videomode helpers drm_modes: add videomode helpers fbmon: add of_videomode helpers fbmon: add videomode helpers video: add of helper for display timings/videomode video: add display_timing and videomode viafb: rename display_timing to via_display_timing
- Loading branch information
Showing
21 changed files
with
894 additions
and
13 deletions.
There are no files selected for viewing
109 changes: 109 additions & 0 deletions
109
Documentation/devicetree/bindings/video/display-timing.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
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 | ||
|
||
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>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
/* | ||
* generic display timing functions | ||
* | ||
* Copyright (c) 2012 Steffen Trumtrar <s.trumtrar@pengutronix.de>, Pengutronix | ||
* | ||
* This file is released under the GPLv2 | ||
*/ | ||
|
||
#include <linux/export.h> | ||
#include <linux/slab.h> | ||
#include <video/display_timing.h> | ||
|
||
void display_timings_release(struct display_timings *disp) | ||
{ | ||
if (disp->timings) { | ||
unsigned int i; | ||
|
||
for (i = 0; i < disp->num_timings; i++) | ||
kfree(disp->timings[i]); | ||
kfree(disp->timings); | ||
} | ||
kfree(disp); | ||
} | ||
EXPORT_SYMBOL_GPL(display_timings_release); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.