summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/display/msm/mdp5.txt
blob: b395905ae04f24a742fd42a68379f22aca069faa (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
113
114
Qualcomm adreno/snapdragon MDP5 display controller

Description:

This is the bindings documentation for the Mobile Display Subsytem(MDSS) that
encapsulates sub-blocks like MDP5, DSI, HDMI, eDP etc, and the MDP5 display
controller found in SoCs like MSM8974, APQ8084, MSM8916, MSM8994 and MSM8996.

MDSS:
Required properties:
- compatible:
  * "qcom,mdss" - MDSS
- reg: Physical base address and length of the controller's registers.
- reg-names: The names of register regions. The following regions are required:
  * "mdss_phys"
  * "vbif_phys"
- interrupts: The interrupt signal from MDSS.
- interrupt-controller: identifies the node as an interrupt controller.
- #interrupt-cells: specifies the number of cells needed to encode an interrupt
  source, should be 1.
- power-domains: a power domain consumer specifier according to
  Documentation/devicetree/bindings/power/power_domain.txt
- clocks: device clocks. See ../clocks/clock-bindings.txt for details.
- clock-names: the following clocks are required.
  * "iface_clk"
  * "bus_clk"
  * "vsync_clk"
- #address-cells: number of address cells for the MDSS children. Should be 1.
- #size-cells: Should be 1.
- ranges: parent bus address space is the same as the child bus address space.

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

MDP5:
Required properties:
- compatible:
  * "qcom,mdp5" - MDP5
- reg: Physical base address and length of the controller's registers.
- reg-names: The names of register regions. The following regions are required:
  * "mdp_phys"
- interrupts: Interrupt line from MDP5 to MDSS interrupt controller.
- interrupt-parent: phandle to the MDSS block
  through MDP block
- clocks: device clocks. See ../clocks/clock-bindings.txt for details.
- clock-names: the following clocks are required.
-   * "bus_clk"
-   * "iface_clk"
-   * "core_clk"
-   * "vsync_clk"

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


Example:

/ {
	...

	mdss: mdss@1a00000 {
		compatible = "qcom,mdss";
		reg = <0x1a00000 0x1000>,
		      <0x1ac8000 0x3000>;
		reg-names = "mdss_phys", "vbif_phys";

		power-domains = <&gcc MDSS_GDSC>;

		clocks = <&gcc GCC_MDSS_AHB_CLK>,
			 <&gcc GCC_MDSS_AXI_CLK>,
			 <&gcc GCC_MDSS_VSYNC_CLK>;
		clock-names = "iface_clk",
			      "bus_clk",
			      "vsync_clk"

		interrupts = <0 72 0>;

		interrupt-controller;
		#interrupt-cells = <1>;

		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		mdp: mdp@1a01000 {
			compatible = "qcom,mdp5";
			reg = <0x1a01000 0x90000>;
			reg-names = "mdp_phys";

			interrupt-parent = <&mdss>;
			interrupts = <0 0>;

			clocks = <&gcc GCC_MDSS_AHB_CLK>,
				 <&gcc GCC_MDSS_AXI_CLK>,
				 <&gcc GCC_MDSS_MDP_CLK>,
				 <&gcc GCC_MDSS_VSYNC_CLK>;
			clock-names = "iface_clk",
				      "bus_clk",
				      "core_clk",
				      "vsync_clk";

		};

		dsi0: dsi@1a98000 {
			...
		};

		dsi_phy0: dsi-phy@1a98300 {
			...
		};
	};
};