summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/display/msm/mdp4.txt
blob: 3c341a15ccdc6a51ad3bf313d2b0ec9566a0d5f9 (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Qualcomm adreno/snapdragon MDP4 display controller

Description:

This is the bindings documentation for the MDP4 display controller found in
SoCs like MSM8960, APQ8064 and MSM8660.

Required properties:
- compatible:
  * "qcom,mdp4" - mdp4
- reg: Physical base address and length of the controller's registers.
- interrupts: The interrupt signal from the display controller.
- clocks: device clocks
  See ../clocks/clock-bindings.txt for details.
- clock-names: the following clocks are required.
  * "core_clk"
  * "iface_clk"
  * "bus_clk"
  * "lut_clk"
  * "hdmi_clk"
  * "tv_clk"
- ports: contains the list of output ports from MDP. These connect to interfaces
  that are external to the MDP hardware, such as HDMI, DSI, EDP etc (LVDS is a
  special case since it is a part of the MDP block itself).

  Each output port contains an endpoint that describes how it is connected to an
  external interface. These are described by the standard properties documented
  here:
	Documentation/devicetree/bindings/graph.txt
	Documentation/devicetree/bindings/media/video-interfaces.txt

  The output port mappings are:
	Port 0 -> LCDC/LVDS
	Port 1 -> DSI1 Cmd/Video
	Port 2 -> DSI2 Cmd/Video
	Port 3 -> DTV

Optional properties:
- clock-names: the following clocks are optional:
  * "lut_clk"

Example:

/ {
	...

	hdmi: hdmi@4a00000 {
		...
		ports {
			...
			port@0 {
				reg = <0>;
				hdmi_in: endpoint {
					remote-endpoint = <&mdp_dtv_out>;
				};
			};
			...
		};
		...
	};

	...

	mdp: mdp@5100000 {
		compatible = "qcom,mdp4";
		reg = <0x05100000 0xf0000>;
		interrupts = <GIC_SPI 75 0>;
		clock-names =
		    "core_clk",
		    "iface_clk",
		    "lut_clk",
		    "hdmi_clk",
		    "tv_clk";
		clocks =
		    <&mmcc MDP_CLK>,
		    <&mmcc MDP_AHB_CLK>,
		    <&mmcc MDP_AXI_CLK>,
		    <&mmcc MDP_LUT_CLK>,
		    <&mmcc HDMI_TV_CLK>,
		    <&mmcc MDP_TV_CLK>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

				port@0 {
					reg = <0>;
					mdp_lvds_out: endpoint {
					};
				};

				port@1 {
					reg = <1>;
					mdp_dsi1_out: endpoint {
					};
				};

				port@2 {
					reg = <2>;
					mdp_dsi2_out: endpoint {
					};
				};

				port@3 {
					reg = <3>;
					mdp_dtv_out: endpoint {
						remote-endpoint = <&hdmi_in>;
					};
				};
		};
	};
};