|
@@ -0,0 +1,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 {
|
|
|
+ ...
|
|
|
+ };
|
|
|
+ };
|
|
|
+};
|