xref: /freebsd-src/sys/contrib/device-tree/Bindings/display/imx/fsl-imx-drm.txt (revision 5def4c47d4bd90b209b9b4a4ba9faec15846d8fd)
1c66ec88fSEmmanuel VadotFreescale i.MX DRM master device
2c66ec88fSEmmanuel Vadot================================
3c66ec88fSEmmanuel Vadot
4c66ec88fSEmmanuel VadotThe freescale i.MX DRM master device is a virtual device needed to list all
5c66ec88fSEmmanuel VadotIPU or other display interface nodes that comprise the graphics subsystem.
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel VadotRequired properties:
8c66ec88fSEmmanuel Vadot- compatible: Should be "fsl,imx-display-subsystem"
9c66ec88fSEmmanuel Vadot- ports: Should contain a list of phandles pointing to display interface ports
10c66ec88fSEmmanuel Vadot  of IPU devices
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotexample:
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadotdisplay-subsystem {
15*5def4c47SEmmanuel Vadot	compatible = "fsl,imx-display-subsystem";
16c66ec88fSEmmanuel Vadot	ports = <&ipu_di0>;
17c66ec88fSEmmanuel Vadot};
18c66ec88fSEmmanuel Vadot
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel VadotFreescale i.MX IPUv3
21c66ec88fSEmmanuel Vadot====================
22c66ec88fSEmmanuel Vadot
23c66ec88fSEmmanuel VadotRequired properties:
24c66ec88fSEmmanuel Vadot- compatible: Should be "fsl,<chip>-ipu" where <chip> is one of
25c66ec88fSEmmanuel Vadot  - imx51
26c66ec88fSEmmanuel Vadot  - imx53
27c66ec88fSEmmanuel Vadot  - imx6q
28c66ec88fSEmmanuel Vadot  - imx6qp
29c66ec88fSEmmanuel Vadot- reg: should be register base and length as documented in the
30c66ec88fSEmmanuel Vadot  datasheet
31c66ec88fSEmmanuel Vadot- interrupts: Should contain sync interrupt and error interrupt,
32c66ec88fSEmmanuel Vadot  in this order.
33c66ec88fSEmmanuel Vadot- resets: phandle pointing to the system reset controller and
34c66ec88fSEmmanuel Vadot          reset line index, see reset/fsl,imx-src.txt for details
35c66ec88fSEmmanuel VadotAdditional required properties for fsl,imx6qp-ipu:
36c66ec88fSEmmanuel Vadot- fsl,prg: phandle to prg node associated with this IPU instance
37c66ec88fSEmmanuel VadotOptional properties:
38c66ec88fSEmmanuel Vadot- port@[0-3]: Port nodes with endpoint definitions as defined in
39c66ec88fSEmmanuel Vadot  Documentation/devicetree/bindings/media/video-interfaces.txt.
40c66ec88fSEmmanuel Vadot  Ports 0 and 1 should correspond to CSI0 and CSI1,
41c66ec88fSEmmanuel Vadot  ports 2 and 3 should correspond to DI0 and DI1, respectively.
42c66ec88fSEmmanuel Vadot
43c66ec88fSEmmanuel Vadotexample:
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadotipu: ipu@18000000 {
46c66ec88fSEmmanuel Vadot	#address-cells = <1>;
47c66ec88fSEmmanuel Vadot	#size-cells = <0>;
48c66ec88fSEmmanuel Vadot	compatible = "fsl,imx53-ipu";
49c66ec88fSEmmanuel Vadot	reg = <0x18000000 0x080000000>;
50c66ec88fSEmmanuel Vadot	interrupts = <11 10>;
51c66ec88fSEmmanuel Vadot	resets = <&src 2>;
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot	ipu_di0: port@2 {
54c66ec88fSEmmanuel Vadot		reg = <2>;
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot		ipu_di0_disp0: endpoint {
57c66ec88fSEmmanuel Vadot			remote-endpoint = <&display_in>;
58c66ec88fSEmmanuel Vadot		};
59c66ec88fSEmmanuel Vadot	};
60c66ec88fSEmmanuel Vadot};
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel VadotFreescale i.MX PRE (Prefetch Resolve Engine)
63c66ec88fSEmmanuel Vadot============================================
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel VadotRequired properties:
66c66ec88fSEmmanuel Vadot- compatible: should be "fsl,imx6qp-pre"
67c66ec88fSEmmanuel Vadot- reg: should be register base and length as documented in the
68c66ec88fSEmmanuel Vadot  datasheet
69c66ec88fSEmmanuel Vadot- clocks : phandle to the PRE axi clock input, as described
70c66ec88fSEmmanuel Vadot  in Documentation/devicetree/bindings/clock/clock-bindings.txt and
71c66ec88fSEmmanuel Vadot  Documentation/devicetree/bindings/clock/imx6q-clock.yaml.
72c66ec88fSEmmanuel Vadot- clock-names: should be "axi"
73c66ec88fSEmmanuel Vadot- interrupts: should contain the PRE interrupt
74c66ec88fSEmmanuel Vadot- fsl,iram: phandle pointing to the mmio-sram device node, that should be
75c66ec88fSEmmanuel Vadot  used for the PRE SRAM double buffer.
76c66ec88fSEmmanuel Vadot
77c66ec88fSEmmanuel Vadotexample:
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadotpre@21c8000 {
80c66ec88fSEmmanuel Vadot	compatible = "fsl,imx6qp-pre";
81c66ec88fSEmmanuel Vadot	reg = <0x021c8000 0x1000>;
82c66ec88fSEmmanuel Vadot	interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
83c66ec88fSEmmanuel Vadot	clocks = <&clks IMX6QDL_CLK_PRE0>;
84c66ec88fSEmmanuel Vadot	clock-names = "axi";
85c66ec88fSEmmanuel Vadot	fsl,iram = <&ocram2>;
86c66ec88fSEmmanuel Vadot};
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel VadotFreescale i.MX PRG (Prefetch Resolve Gasket)
89c66ec88fSEmmanuel Vadot============================================
90c66ec88fSEmmanuel Vadot
91c66ec88fSEmmanuel VadotRequired properties:
92c66ec88fSEmmanuel Vadot- compatible: should be "fsl,imx6qp-prg"
93c66ec88fSEmmanuel Vadot- reg: should be register base and length as documented in the
94c66ec88fSEmmanuel Vadot  datasheet
95c66ec88fSEmmanuel Vadot- clocks : phandles to the PRG ipg and axi clock inputs, as described
96c66ec88fSEmmanuel Vadot  in Documentation/devicetree/bindings/clock/clock-bindings.txt and
97c66ec88fSEmmanuel Vadot  Documentation/devicetree/bindings/clock/imx6q-clock.yaml.
98c66ec88fSEmmanuel Vadot- clock-names: should be "ipg" and "axi"
99c66ec88fSEmmanuel Vadot- fsl,pres: phandles to the PRE units attached to this PRG, with the fixed
100c66ec88fSEmmanuel Vadot  PRE as the first entry and the muxable PREs following.
101c66ec88fSEmmanuel Vadot
102c66ec88fSEmmanuel Vadotexample:
103c66ec88fSEmmanuel Vadot
104c66ec88fSEmmanuel Vadotprg@21cc000 {
105c66ec88fSEmmanuel Vadot	compatible = "fsl,imx6qp-prg";
106c66ec88fSEmmanuel Vadot	reg = <0x021cc000 0x1000>;
107c66ec88fSEmmanuel Vadot	clocks = <&clks IMX6QDL_CLK_PRG0_APB>,
108c66ec88fSEmmanuel Vadot		 <&clks IMX6QDL_CLK_PRG0_AXI>;
109c66ec88fSEmmanuel Vadot	clock-names = "ipg", "axi";
110c66ec88fSEmmanuel Vadot	fsl,pres = <&pre1>, <&pre2>, <&pre3>;
111c66ec88fSEmmanuel Vadot};
112c66ec88fSEmmanuel Vadot
113c66ec88fSEmmanuel VadotParallel display support
114c66ec88fSEmmanuel Vadot========================
115c66ec88fSEmmanuel Vadot
116c66ec88fSEmmanuel VadotRequired properties:
117c66ec88fSEmmanuel Vadot- compatible: Should be "fsl,imx-parallel-display"
118c66ec88fSEmmanuel VadotOptional properties:
119c66ec88fSEmmanuel Vadot- interface-pix-fmt: How this display is connected to the
120c66ec88fSEmmanuel Vadot  display interface. Currently supported types: "rgb24", "rgb565", "bgr666"
121c66ec88fSEmmanuel Vadot  and "lvds666".
122c66ec88fSEmmanuel Vadot- edid: verbatim EDID data block describing attached display.
123c66ec88fSEmmanuel Vadot- ddc: phandle describing the i2c bus handling the display data
124c66ec88fSEmmanuel Vadot  channel
125c66ec88fSEmmanuel Vadot- port@[0-1]: Port nodes with endpoint definitions as defined in
126c66ec88fSEmmanuel Vadot  Documentation/devicetree/bindings/media/video-interfaces.txt.
127c66ec88fSEmmanuel Vadot  Port 0 is the input port connected to the IPU display interface,
128c66ec88fSEmmanuel Vadot  port 1 is the output port connected to a panel.
129c66ec88fSEmmanuel Vadot
130c66ec88fSEmmanuel Vadotexample:
131c66ec88fSEmmanuel Vadot
132c66ec88fSEmmanuel Vadotdisp0 {
133c66ec88fSEmmanuel Vadot	compatible = "fsl,imx-parallel-display";
134c66ec88fSEmmanuel Vadot	edid = [edid-data];
135c66ec88fSEmmanuel Vadot	interface-pix-fmt = "rgb24";
136c66ec88fSEmmanuel Vadot
137c66ec88fSEmmanuel Vadot	port@0 {
138c66ec88fSEmmanuel Vadot		reg = <0>;
139c66ec88fSEmmanuel Vadot
140c66ec88fSEmmanuel Vadot		display_in: endpoint {
141c66ec88fSEmmanuel Vadot			remote-endpoint = <&ipu_di0_disp0>;
142c66ec88fSEmmanuel Vadot		};
143c66ec88fSEmmanuel Vadot	};
144c66ec88fSEmmanuel Vadot
145c66ec88fSEmmanuel Vadot	port@1 {
146c66ec88fSEmmanuel Vadot		reg = <1>;
147c66ec88fSEmmanuel Vadot
148c66ec88fSEmmanuel Vadot		display_out: endpoint {
149c66ec88fSEmmanuel Vadot			remote-endpoint = <&panel_in>;
150c66ec88fSEmmanuel Vadot		};
151c66ec88fSEmmanuel Vadot	};
152c66ec88fSEmmanuel Vadot};
153c66ec88fSEmmanuel Vadot
154c66ec88fSEmmanuel Vadotpanel {
155c66ec88fSEmmanuel Vadot	...
156c66ec88fSEmmanuel Vadot
157c66ec88fSEmmanuel Vadot	port {
158c66ec88fSEmmanuel Vadot		panel_in: endpoint {
159c66ec88fSEmmanuel Vadot			remote-endpoint = <&display_out>;
160c66ec88fSEmmanuel Vadot		};
161c66ec88fSEmmanuel Vadot	};
162c66ec88fSEmmanuel Vadot};
163