18c2ecf20Sopenharmony_ciQualcomm adreno/snapdragon MDP4 display controller
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciDescription:
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ciThis is the bindings documentation for the MDP4 display controller found in
68c2ecf20Sopenharmony_ciSoCs like MSM8960, APQ8064 and MSM8660.
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciRequired properties:
98c2ecf20Sopenharmony_ci- compatible:
108c2ecf20Sopenharmony_ci  * "qcom,mdp4" - mdp4
118c2ecf20Sopenharmony_ci- reg: Physical base address and length of the controller's registers.
128c2ecf20Sopenharmony_ci- interrupts: The interrupt signal from the display controller.
138c2ecf20Sopenharmony_ci- clocks: device clocks
148c2ecf20Sopenharmony_ci  See ../clocks/clock-bindings.txt for details.
158c2ecf20Sopenharmony_ci- clock-names: the following clocks are required.
168c2ecf20Sopenharmony_ci  * "core_clk"
178c2ecf20Sopenharmony_ci  * "iface_clk"
188c2ecf20Sopenharmony_ci  * "bus_clk"
198c2ecf20Sopenharmony_ci  * "lut_clk"
208c2ecf20Sopenharmony_ci  * "hdmi_clk"
218c2ecf20Sopenharmony_ci  * "tv_clk"
228c2ecf20Sopenharmony_ci- ports: contains the list of output ports from MDP. These connect to interfaces
238c2ecf20Sopenharmony_ci  that are external to the MDP hardware, such as HDMI, DSI, EDP etc (LVDS is a
248c2ecf20Sopenharmony_ci  special case since it is a part of the MDP block itself).
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci  Each output port contains an endpoint that describes how it is connected to an
278c2ecf20Sopenharmony_ci  external interface. These are described by the standard properties documented
288c2ecf20Sopenharmony_ci  here:
298c2ecf20Sopenharmony_ci	Documentation/devicetree/bindings/graph.txt
308c2ecf20Sopenharmony_ci	Documentation/devicetree/bindings/media/video-interfaces.txt
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci  The output port mappings are:
338c2ecf20Sopenharmony_ci	Port 0 -> LCDC/LVDS
348c2ecf20Sopenharmony_ci	Port 1 -> DSI1 Cmd/Video
358c2ecf20Sopenharmony_ci	Port 2 -> DSI2 Cmd/Video
368c2ecf20Sopenharmony_ci	Port 3 -> DTV
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ciOptional properties:
398c2ecf20Sopenharmony_ci- clock-names: the following clocks are optional:
408c2ecf20Sopenharmony_ci  * "lut_clk"
418c2ecf20Sopenharmony_ci- qcom,lcdc-align-lsb: Boolean value indicating that LSB alignment should be
428c2ecf20Sopenharmony_ci  used for LCDC. This is only valid for 18bpp panels.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ciExample:
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci/ {
478c2ecf20Sopenharmony_ci	...
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci	hdmi: hdmi@4a00000 {
508c2ecf20Sopenharmony_ci		...
518c2ecf20Sopenharmony_ci		ports {
528c2ecf20Sopenharmony_ci			...
538c2ecf20Sopenharmony_ci			port@0 {
548c2ecf20Sopenharmony_ci				reg = <0>;
558c2ecf20Sopenharmony_ci				hdmi_in: endpoint {
568c2ecf20Sopenharmony_ci					remote-endpoint = <&mdp_dtv_out>;
578c2ecf20Sopenharmony_ci				};
588c2ecf20Sopenharmony_ci			};
598c2ecf20Sopenharmony_ci			...
608c2ecf20Sopenharmony_ci		};
618c2ecf20Sopenharmony_ci		...
628c2ecf20Sopenharmony_ci	};
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci	...
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci	mdp: mdp@5100000 {
678c2ecf20Sopenharmony_ci		compatible = "qcom,mdp4";
688c2ecf20Sopenharmony_ci		reg = <0x05100000 0xf0000>;
698c2ecf20Sopenharmony_ci		interrupts = <GIC_SPI 75 0>;
708c2ecf20Sopenharmony_ci		clock-names =
718c2ecf20Sopenharmony_ci		    "core_clk",
728c2ecf20Sopenharmony_ci		    "iface_clk",
738c2ecf20Sopenharmony_ci		    "lut_clk",
748c2ecf20Sopenharmony_ci		    "hdmi_clk",
758c2ecf20Sopenharmony_ci		    "tv_clk";
768c2ecf20Sopenharmony_ci		clocks =
778c2ecf20Sopenharmony_ci		    <&mmcc MDP_CLK>,
788c2ecf20Sopenharmony_ci		    <&mmcc MDP_AHB_CLK>,
798c2ecf20Sopenharmony_ci		    <&mmcc MDP_AXI_CLK>,
808c2ecf20Sopenharmony_ci		    <&mmcc MDP_LUT_CLK>,
818c2ecf20Sopenharmony_ci		    <&mmcc HDMI_TV_CLK>,
828c2ecf20Sopenharmony_ci		    <&mmcc MDP_TV_CLK>;
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci		ports {
858c2ecf20Sopenharmony_ci			#address-cells = <1>;
868c2ecf20Sopenharmony_ci			#size-cells = <0>;
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci				port@0 {
898c2ecf20Sopenharmony_ci					reg = <0>;
908c2ecf20Sopenharmony_ci					mdp_lvds_out: endpoint {
918c2ecf20Sopenharmony_ci					};
928c2ecf20Sopenharmony_ci				};
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci				port@1 {
958c2ecf20Sopenharmony_ci					reg = <1>;
968c2ecf20Sopenharmony_ci					mdp_dsi1_out: endpoint {
978c2ecf20Sopenharmony_ci					};
988c2ecf20Sopenharmony_ci				};
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci				port@2 {
1018c2ecf20Sopenharmony_ci					reg = <2>;
1028c2ecf20Sopenharmony_ci					mdp_dsi2_out: endpoint {
1038c2ecf20Sopenharmony_ci					};
1048c2ecf20Sopenharmony_ci				};
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci				port@3 {
1078c2ecf20Sopenharmony_ci					reg = <3>;
1088c2ecf20Sopenharmony_ci					mdp_dtv_out: endpoint {
1098c2ecf20Sopenharmony_ci						remote-endpoint = <&hdmi_in>;
1108c2ecf20Sopenharmony_ci					};
1118c2ecf20Sopenharmony_ci				};
1128c2ecf20Sopenharmony_ci		};
1138c2ecf20Sopenharmony_ci	};
1148c2ecf20Sopenharmony_ci};
115