aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/display/msm/dsi.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/devicetree/bindings/display/msm/dsi.txt')
-rw-r--r--Documentation/devicetree/bindings/display/msm/dsi.txt117
1 files changed, 77 insertions, 40 deletions
diff --git a/Documentation/devicetree/bindings/display/msm/dsi.txt b/Documentation/devicetree/bindings/display/msm/dsi.txt
index f5948c48b9a2..6b1cab17f52d 100644
--- a/Documentation/devicetree/bindings/display/msm/dsi.txt
+++ b/Documentation/devicetree/bindings/display/msm/dsi.txt
@@ -11,8 +11,7 @@ Required properties:
11 be 0 or 1, since we have 2 DSI controllers at most for now. 11 be 0 or 1, since we have 2 DSI controllers at most for now.
12- interrupts: The interrupt signal from the DSI block. 12- interrupts: The interrupt signal from the DSI block.
13- power-domains: Should be <&mmcc MDSS_GDSC>. 13- power-domains: Should be <&mmcc MDSS_GDSC>.
14- clocks: device clocks 14- clocks: Phandles to device clocks.
15 See Documentation/devicetree/bindings/clocks/clock-bindings.txt for details.
16- clock-names: the following clocks are required: 15- clock-names: the following clocks are required:
17 * "mdp_core_clk" 16 * "mdp_core_clk"
18 * "iface_clk" 17 * "iface_clk"
@@ -23,16 +22,21 @@ Required properties:
23 * "core_clk" 22 * "core_clk"
24 For DSIv2, we need an additional clock: 23 For DSIv2, we need an additional clock:
25 * "src_clk" 24 * "src_clk"
25- assigned-clocks: Parents of "byte_clk" and "pixel_clk" for the given platform.
26- assigned-clock-parents: The Byte clock and Pixel clock PLL outputs provided
27 by a DSI PHY block. See [1] for details on clock bindings.
26- vdd-supply: phandle to vdd regulator device node 28- vdd-supply: phandle to vdd regulator device node
27- vddio-supply: phandle to vdd-io regulator device node 29- vddio-supply: phandle to vdd-io regulator device node
28- vdda-supply: phandle to vdda regulator device node 30- vdda-supply: phandle to vdda regulator device node
29- qcom,dsi-phy: phandle to DSI PHY device node 31- phys: phandle to DSI PHY device node
32- phy-names: the name of the corresponding PHY device
30- syscon-sfpb: A phandle to mmss_sfpb syscon node (only for DSIv2) 33- syscon-sfpb: A phandle to mmss_sfpb syscon node (only for DSIv2)
34- ports: Contains 2 DSI controller ports as child nodes. Each port contains
35 an endpoint subnode as defined in [2] and [3].
31 36
32Optional properties: 37Optional properties:
33- panel@0: Node of panel connected to this DSI controller. 38- panel@0: Node of panel connected to this DSI controller.
34 See files in Documentation/devicetree/bindings/display/panel/ for each supported 39 See files in [4] for each supported panel.
35 panel.
36- qcom,dual-dsi-mode: Boolean value indicating if the DSI controller is 40- qcom,dual-dsi-mode: Boolean value indicating if the DSI controller is
37 driving a panel which needs 2 DSI links. 41 driving a panel which needs 2 DSI links.
38- qcom,master-dsi: Boolean value indicating if the DSI controller is driving 42- qcom,master-dsi: Boolean value indicating if the DSI controller is driving
@@ -44,34 +48,38 @@ Optional properties:
44- pinctrl-names: the pin control state names; should contain "default" 48- pinctrl-names: the pin control state names; should contain "default"
45- pinctrl-0: the default pinctrl state (active) 49- pinctrl-0: the default pinctrl state (active)
46- pinctrl-n: the "sleep" pinctrl state 50- pinctrl-n: the "sleep" pinctrl state
47- port: DSI controller output port, containing one endpoint subnode. 51- ports: contains DSI controller input and output ports as children, each
52 containing one endpoint subnode.
48 53
49 DSI Endpoint properties: 54 DSI Endpoint properties:
50 - remote-endpoint: set to phandle of the connected panel's endpoint. 55 - remote-endpoint: For port@0, set to phandle of the connected panel/bridge's
51 See Documentation/devicetree/bindings/graph.txt for device graph info. 56 input endpoint. For port@1, set to the MDP interface output. See [2] for
52 - qcom,data-lane-map: this describes how the logical DSI lanes are mapped 57 device graph info.
53 to the physical lanes on the given platform. The value contained in 58
54 index n describes what logical data lane is mapped to the physical data 59 - data-lanes: this describes how the physical DSI data lanes are mapped
55 lane n (DATAn, where n lies between 0 and 3). 60 to the logical lanes on the given platform. The value contained in
61 index n describes what physical lane is mapped to the logical lane n
62 (DATAn, where n lies between 0 and 3). The clock lane position is fixed
63 and can't be changed. Hence, they aren't a part of the DT bindings. See
64 [3] for more info on the data-lanes property.
56 65
57 For example: 66 For example:
58 67
59 qcom,data-lane-map = <3 0 1 2>; 68 data-lanes = <3 0 1 2>;
60 69
61 The above mapping describes that the logical data lane DATA3 is mapped to 70 The above mapping describes that the logical data lane DATA0 is mapped to
62 the physical data lane DATA0, logical DATA0 to physical DATA1, logic DATA1 71 the physical data lane DATA3, logical DATA1 to physical DATA0, logic DATA2
63 to phys DATA2 and logic DATA2 to phys DATA3. 72 to phys DATA1 and logic DATA3 to phys DATA2.
64 73
65 There are only a limited number of physical to logical mappings possible: 74 There are only a limited number of physical to logical mappings possible:
66 75 <0 1 2 3>
67 "0123": Logic 0->Phys 0; Logic 1->Phys 1; Logic 2->Phys 2; Logic 3->Phys 3; 76 <1 2 3 0>
68 "3012": Logic 3->Phys 0; Logic 0->Phys 1; Logic 1->Phys 2; Logic 2->Phys 3; 77 <2 3 0 1>
69 "2301": Logic 2->Phys 0; Logic 3->Phys 1; Logic 0->Phys 2; Logic 1->Phys 3; 78 <3 0 1 2>
70 "1230": Logic 1->Phys 0; Logic 2->Phys 1; Logic 3->Phys 2; Logic 0->Phys 3; 79 <0 3 2 1>
71 "0321": Logic 0->Phys 0; Logic 3->Phys 1; Logic 2->Phys 2; Logic 1->Phys 3; 80 <1 0 3 2>
72 "1032": Logic 1->Phys 0; Logic 0->Phys 1; Logic 3->Phys 2; Logic 2->Phys 3; 81 <2 1 0 3>
73 "2103": Logic 2->Phys 0; Logic 1->Phys 1; Logic 0->Phys 2; Logic 3->Phys 3; 82 <3 2 1 0>
74 "3210": Logic 3->Phys 0; Logic 2->Phys 1; Logic 1->Phys 2; Logic 0->Phys 3;
75 83
76DSI PHY: 84DSI PHY:
77Required properties: 85Required properties:
@@ -86,11 +94,12 @@ Required properties:
86 * "dsi_pll" 94 * "dsi_pll"
87 * "dsi_phy" 95 * "dsi_phy"
88 * "dsi_phy_regulator" 96 * "dsi_phy_regulator"
97- clock-cells: Must be 1. The DSI PHY block acts as a clock provider, creating
98 2 clocks: A byte clock (index 0), and a pixel clock (index 1).
89- qcom,dsi-phy-index: The ID of DSI PHY hardware instance. This should 99- qcom,dsi-phy-index: The ID of DSI PHY hardware instance. This should
90 be 0 or 1, since we have 2 DSI PHYs at most for now. 100 be 0 or 1, since we have 2 DSI PHYs at most for now.
91- power-domains: Should be <&mmcc MDSS_GDSC>. 101- power-domains: Should be <&mmcc MDSS_GDSC>.
92- clocks: device clocks 102- clocks: Phandles to device clocks. See [1] for details on clock bindings.
93 See Documentation/devicetree/bindings/clocks/clock-bindings.txt for details.
94- clock-names: the following clocks are required: 103- clock-names: the following clocks are required:
95 * "iface_clk" 104 * "iface_clk"
96- vddio-supply: phandle to vdd-io regulator device node 105- vddio-supply: phandle to vdd-io regulator device node
@@ -99,11 +108,16 @@ Optional properties:
99- qcom,dsi-phy-regulator-ldo-mode: Boolean value indicating if the LDO mode PHY 108- qcom,dsi-phy-regulator-ldo-mode: Boolean value indicating if the LDO mode PHY
100 regulator is wanted. 109 regulator is wanted.
101 110
111[1] Documentation/devicetree/bindings/clocks/clock-bindings.txt
112[2] Documentation/devicetree/bindings/graph.txt
113[3] Documentation/devicetree/bindings/media/video-interfaces.txt
114[4] Documentation/devicetree/bindings/display/panel/
115
102Example: 116Example:
103 mdss_dsi0: qcom,mdss_dsi@fd922800 { 117 dsi0: dsi@fd922800 {
104 compatible = "qcom,mdss-dsi-ctrl"; 118 compatible = "qcom,mdss-dsi-ctrl";
105 qcom,dsi-host-index = <0>; 119 qcom,dsi-host-index = <0>;
106 interrupt-parent = <&mdss_mdp>; 120 interrupt-parent = <&mdp>;
107 interrupts = <4 0>; 121 interrupts = <4 0>;
108 reg-names = "dsi_ctrl"; 122 reg-names = "dsi_ctrl";
109 reg = <0xfd922800 0x200>; 123 reg = <0xfd922800 0x200>;
@@ -124,19 +138,48 @@ Example:
124 <&mmcc MDSS_AHB_CLK>, 138 <&mmcc MDSS_AHB_CLK>,
125 <&mmcc MDSS_MDP_CLK>, 139 <&mmcc MDSS_MDP_CLK>,
126 <&mmcc MDSS_PCLK0_CLK>; 140 <&mmcc MDSS_PCLK0_CLK>;
141
142 assigned-clocks =
143 <&mmcc BYTE0_CLK_SRC>,
144 <&mmcc PCLK0_CLK_SRC>;
145 assigned-clock-parents =
146 <&dsi_phy0 0>,
147 <&dsi_phy0 1>;
148
127 vdda-supply = <&pma8084_l2>; 149 vdda-supply = <&pma8084_l2>;
128 vdd-supply = <&pma8084_l22>; 150 vdd-supply = <&pma8084_l22>;
129 vddio-supply = <&pma8084_l12>; 151 vddio-supply = <&pma8084_l12>;
130 152
131 qcom,dsi-phy = <&mdss_dsi_phy0>; 153 phys = <&dsi_phy0>;
154 phy-names ="dsi-phy";
132 155
133 qcom,dual-dsi-mode; 156 qcom,dual-dsi-mode;
134 qcom,master-dsi; 157 qcom,master-dsi;
135 qcom,sync-dual-dsi; 158 qcom,sync-dual-dsi;
136 159
137 pinctrl-names = "default", "sleep"; 160 pinctrl-names = "default", "sleep";
138 pinctrl-0 = <&mdss_dsi_active>; 161 pinctrl-0 = <&dsi_active>;
139 pinctrl-1 = <&mdss_dsi_suspend>; 162 pinctrl-1 = <&dsi_suspend>;
163
164 ports {
165 #address-cells = <1>;
166 #size-cells = <0>;
167
168 port@0 {
169 reg = <0>;
170 dsi0_in: endpoint {
171 remote-endpoint = <&mdp_intf1_out>;
172 };
173 };
174
175 port@1 {
176 reg = <1>;
177 dsi0_out: endpoint {
178 remote-endpoint = <&panel_in>;
179 data-lanes = <0 1 2 3>;
180 };
181 };
182 };
140 183
141 panel: panel@0 { 184 panel: panel@0 {
142 compatible = "sharp,lq101r1sx01"; 185 compatible = "sharp,lq101r1sx01";
@@ -152,16 +195,9 @@ Example:
152 }; 195 };
153 }; 196 };
154 }; 197 };
155
156 port {
157 dsi0_out: endpoint {
158 remote-endpoint = <&panel_in>;
159 lanes = <0 1 2 3>;
160 };
161 };
162 }; 198 };
163 199
164 mdss_dsi_phy0: qcom,mdss_dsi_phy@fd922a00 { 200 dsi_phy0: dsi-phy@fd922a00 {
165 compatible = "qcom,dsi-phy-28nm-hpm"; 201 compatible = "qcom,dsi-phy-28nm-hpm";
166 qcom,dsi-phy-index = <0>; 202 qcom,dsi-phy-index = <0>;
167 reg-names = 203 reg-names =
@@ -173,6 +209,7 @@ Example:
173 <0xfd922d80 0x7b>; 209 <0xfd922d80 0x7b>;
174 clock-names = "iface_clk"; 210 clock-names = "iface_clk";
175 clocks = <&mmcc MDSS_AHB_CLK>; 211 clocks = <&mmcc MDSS_AHB_CLK>;
212 #clock-cells = <1>;
176 vddio-supply = <&pma8084_l12>; 213 vddio-supply = <&pma8084_l12>;
177 214
178 qcom,dsi-phy-regulator-ldo-mode; 215 qcom,dsi-phy-regulator-ldo-mode;