blob: 3a9b8221c3ec26ae18179da4d6882396fef55ed3 [file] [log] [blame]
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>;
};
};
...
};
...
};