1efdbd734SRob HerringFreescale i.MX DRM master device
2efdbd734SRob Herring================================
3efdbd734SRob Herring
4efdbd734SRob HerringThe freescale i.MX DRM master device is a virtual device needed to list all
5efdbd734SRob HerringIPU or other display interface nodes that comprise the graphics subsystem.
6efdbd734SRob Herring
7efdbd734SRob HerringRequired properties:
8efdbd734SRob Herring- compatible: Should be "fsl,imx-display-subsystem"
9efdbd734SRob Herring- ports: Should contain a list of phandles pointing to display interface ports
10efdbd734SRob Herring  of IPU devices
11efdbd734SRob Herring
12efdbd734SRob Herringexample:
13efdbd734SRob Herring
14efdbd734SRob Herringdisplay-subsystem {
15efdbd734SRob Herring	compatible = "fsl,display-subsystem";
16efdbd734SRob Herring	ports = <&ipu_di0>;
17efdbd734SRob Herring};
18efdbd734SRob Herring
19efdbd734SRob Herring
20efdbd734SRob HerringFreescale i.MX IPUv3
21efdbd734SRob Herring====================
22efdbd734SRob Herring
23efdbd734SRob HerringRequired properties:
24efdbd734SRob Herring- compatible: Should be "fsl,<chip>-ipu"
25efdbd734SRob Herring- reg: should be register base and length as documented in the
26efdbd734SRob Herring  datasheet
27efdbd734SRob Herring- interrupts: Should contain sync interrupt and error interrupt,
28efdbd734SRob Herring  in this order.
29efdbd734SRob Herring- resets: phandle pointing to the system reset controller and
30efdbd734SRob Herring          reset line index, see reset/fsl,imx-src.txt for details
31efdbd734SRob HerringOptional properties:
32efdbd734SRob Herring- port@[0-3]: Port nodes with endpoint definitions as defined in
33efdbd734SRob Herring  Documentation/devicetree/bindings/media/video-interfaces.txt.
34efdbd734SRob Herring  Ports 0 and 1 should correspond to CSI0 and CSI1,
35efdbd734SRob Herring  ports 2 and 3 should correspond to DI0 and DI1, respectively.
36efdbd734SRob Herring
37efdbd734SRob Herringexample:
38efdbd734SRob Herring
39efdbd734SRob Herringipu: ipu@18000000 {
40efdbd734SRob Herring	#address-cells = <1>;
41efdbd734SRob Herring	#size-cells = <0>;
42efdbd734SRob Herring	compatible = "fsl,imx53-ipu";
43efdbd734SRob Herring	reg = <0x18000000 0x080000000>;
44efdbd734SRob Herring	interrupts = <11 10>;
45efdbd734SRob Herring	resets = <&src 2>;
46efdbd734SRob Herring
47efdbd734SRob Herring	ipu_di0: port@2 {
48efdbd734SRob Herring		reg = <2>;
49efdbd734SRob Herring
50efdbd734SRob Herring		ipu_di0_disp0: endpoint {
51efdbd734SRob Herring			remote-endpoint = <&display_in>;
52efdbd734SRob Herring		};
53efdbd734SRob Herring	};
54efdbd734SRob Herring};
55efdbd734SRob Herring
56dcddda56SLucas StachFreescale i.MX PRE (Prefetch Resolve Engine)
57dcddda56SLucas Stach============================================
58dcddda56SLucas Stach
59dcddda56SLucas StachRequired properties:
60dcddda56SLucas Stach- compatible: should be "fsl,imx6qp-pre"
61dcddda56SLucas Stach- reg: should be register base and length as documented in the
62dcddda56SLucas Stach  datasheet
63dcddda56SLucas Stach- clocks : phandle to the PRE axi clock input, as described
64dcddda56SLucas Stach  in Documentation/devicetree/bindings/clock/clock-bindings.txt and
65dcddda56SLucas Stach  Documentation/devicetree/bindings/clock/imx6q-clock.txt.
66dcddda56SLucas Stach- clock-names: should be "axi"
67dcddda56SLucas Stach- interrupts: should contain the PRE interrupt
68dcddda56SLucas Stach- fsl,iram: phandle pointing to the mmio-sram device node, that should be
69dcddda56SLucas Stach  used for the PRE SRAM double buffer.
70dcddda56SLucas Stach
71dcddda56SLucas Stachexample:
72dcddda56SLucas Stach
73dcddda56SLucas Stachpre@21c8000 {
74dcddda56SLucas Stach	compatible = "fsl,imx6qp-pre";
75dcddda56SLucas Stach	reg = <0x021c8000 0x1000>;
76dcddda56SLucas Stach	interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
77dcddda56SLucas Stach	clocks = <&clks IMX6QDL_CLK_PRE0>;
78dcddda56SLucas Stach	clock-names = "axi";
79dcddda56SLucas Stach	fsl,iram = <&ocram2>;
80dcddda56SLucas Stach};
81dcddda56SLucas Stach
8263863d43SLucas StachFreescale i.MX PRG (Prefetch Resolve Gasket)
8363863d43SLucas Stach============================================
8463863d43SLucas Stach
8563863d43SLucas StachRequired properties:
8663863d43SLucas Stach- compatible: should be "fsl,imx6qp-prg"
8763863d43SLucas Stach- reg: should be register base and length as documented in the
8863863d43SLucas Stach  datasheet
8963863d43SLucas Stach- clocks : phandles to the PRG ipg and axi clock inputs, as described
9063863d43SLucas Stach  in Documentation/devicetree/bindings/clock/clock-bindings.txt and
9163863d43SLucas Stach  Documentation/devicetree/bindings/clock/imx6q-clock.txt.
9263863d43SLucas Stach- clock-names: should be "ipg" and "axi"
9363863d43SLucas Stach- fsl,pres: phandles to the PRE units attached to this PRG, with the fixed
9463863d43SLucas Stach  PRE as the first entry and the muxable PREs following.
9563863d43SLucas Stach
9663863d43SLucas Stachexample:
9763863d43SLucas Stach
9863863d43SLucas Stachprg@21cc000 {
9963863d43SLucas Stach	compatible = "fsl,imx6qp-prg";
10063863d43SLucas Stach	reg = <0x021cc000 0x1000>;
10163863d43SLucas Stach	clocks = <&clks IMX6QDL_CLK_PRG0_APB>,
10263863d43SLucas Stach		 <&clks IMX6QDL_CLK_PRG0_AXI>;
10363863d43SLucas Stach	clock-names = "ipg", "axi";
10463863d43SLucas Stach	fsl,pres = <&pre1>, <&pre2>, <&pre3>;
10563863d43SLucas Stach};
10663863d43SLucas Stach
107efdbd734SRob HerringParallel display support
108efdbd734SRob Herring========================
109efdbd734SRob Herring
110efdbd734SRob HerringRequired properties:
111efdbd734SRob Herring- compatible: Should be "fsl,imx-parallel-display"
112efdbd734SRob HerringOptional properties:
113efdbd734SRob Herring- interface_pix_fmt: How this display is connected to the
114efdbd734SRob Herring  display interface. Currently supported types: "rgb24", "rgb565", "bgr666"
115efdbd734SRob Herring  and "lvds666".
116efdbd734SRob Herring- edid: verbatim EDID data block describing attached display.
117efdbd734SRob Herring- ddc: phandle describing the i2c bus handling the display data
118efdbd734SRob Herring  channel
119efdbd734SRob Herring- port@[0-1]: Port nodes with endpoint definitions as defined in
120efdbd734SRob Herring  Documentation/devicetree/bindings/media/video-interfaces.txt.
121efdbd734SRob Herring  Port 0 is the input port connected to the IPU display interface,
122efdbd734SRob Herring  port 1 is the output port connected to a panel.
123efdbd734SRob Herring
124efdbd734SRob Herringexample:
125efdbd734SRob Herring
126efdbd734SRob Herringdisplay@di0 {
127efdbd734SRob Herring	compatible = "fsl,imx-parallel-display";
128efdbd734SRob Herring	edid = [edid-data];
129efdbd734SRob Herring	interface-pix-fmt = "rgb24";
130efdbd734SRob Herring
131efdbd734SRob Herring	port@0 {
132efdbd734SRob Herring		reg = <0>;
133efdbd734SRob Herring
134efdbd734SRob Herring		display_in: endpoint {
135efdbd734SRob Herring			remote-endpoint = <&ipu_di0_disp0>;
136efdbd734SRob Herring		};
137efdbd734SRob Herring	};
138efdbd734SRob Herring
139efdbd734SRob Herring	port@1 {
140efdbd734SRob Herring		reg = <1>;
141efdbd734SRob Herring
142efdbd734SRob Herring		display_out: endpoint {
143efdbd734SRob Herring			remote-endpoint = <&panel_in>;
144efdbd734SRob Herring		};
145efdbd734SRob Herring	};
146efdbd734SRob Herring};
147efdbd734SRob Herring
148efdbd734SRob Herringpanel {
149efdbd734SRob Herring	...
150efdbd734SRob Herring
151efdbd734SRob Herring	port {
152efdbd734SRob Herring		panel_in: endpoint {
153efdbd734SRob Herring			remote-endpoint = <&display_out>;
154efdbd734SRob Herring		};
155efdbd734SRob Herring	};
156efdbd734SRob Herring};
157