aboutsummaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/display/virtual-encoder.txt
blob: 3a9b8221c3ec26ae18179da4d6882396fef55ed3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
DRM Virtual Encoder

The DRM Virtual Encoder is a component-based basic encoder that fetches
the display timings information from the device tree and "discovers" a
DRM output with the given data. It is helpful in a simulated environment
where there is no actual hardware to be probed and the configuration of
the display happens outside the kernel world.

Required properties:
  - compatible: should be "drm,virtual-encoder"

Required sub-nodes:
  - display-timings: node describing the virtual output timings information,
    as specified in panel/display-timing.txt file.
  - port: the input port connection as modelled using the OF graph bindings
    specified in Documentation/devicetree/bindings/graph.txt


Example:

/ {
	...

	vencoder {
		compatible = "drm,virtual-encoder";
		display-timings {
			native-mode = <&timing1>;
			timing0: timing@0 {
				/* 640x480 framebuffer */
				clock-frequency = <23750>;
				hactive = <640>;
				vactive = <480>;
				hfront-porch = <48>;
				hback-porch = <16>;
				hsync-len = <96>;
				vfront-porch = <33>;
				vback-porch = <9>;
				vsync-len = <3>;
			};
			timing1: timing@1 {
				/* 1280x720 framebuffer */
				clock-frequency = <74440000>;
				hactive = <1280>;
				vactive = <720>;
				hfront-porch = <56>;
				hback-porch = <192>;
				hsync-len = <136>;
				vfront-porch = <1>;
				vback-porch = <22>;
				vsync-len = <3>;
			};
		};

		port {
			vencoder_in: endpoint {
				remote-endpoint = <&driver_out>;
			};
		};
	};

	drm_driver: driver@f00bad {
		...

		port {
			driver_out: endpoint {
				remote-endpoint = <&vencoder_in>;
			};
		};

		...
	};

	...
};