Qualcomm Technologies, Inc. DPU KMS

Description:

Device tree bindings for MSM Mobile Display Subsytem(MDSS) that encapsulates
sub-blocks like DPU display controller, DSI and DP interfaces etc.
The DPU display controller is found in SDM845 SoC.

MDSS:
Required properties:
- compatible:  "qcom,sdm845-mdss", "qcom,sc7180-mdss"
- reg: physical base address and length of contoller's registers.
- reg-names: register region names. The following region is required:
  * "mdss"
- power-domains: a power domain consumer specifier according to
  Documentation/devicetree/bindings/power/power_domain.txt
- clocks: list of clock specifiers for clocks needed by the device.
- clock-names: device clock names, must be in same order as clocks property.
  The following clocks are required:
  * "iface"
  * "bus"
  * "core"
- interrupts: 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.
- iommus: phandle of iommu device node.
- #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.
- interconnects : interconnect path specifier for MDSS according to
  Documentation/devicetree/bindings/interconnect/interconnect.txt. Should be
  2 paths corresponding to 2 AXI ports.
- interconnect-names : MDSS will have 2 port names to differentiate between the
  2 interconnect paths defined with interconnect specifier.

Optional properties:
- assigned-clocks: list of clock specifiers for clocks needing rate assignment
- assigned-clock-rates: list of clock frequencies sorted in the same order as
  the assigned-clocks property.

MDP:
Required properties:
- compatible: "qcom,sdm845-dpu", "qcom,sc7180-dpu"
- reg: physical base address and length of controller's registers.
- reg-names : register region names. The following region is required:
  * "mdp"
  * "vbif"
- clocks: list of clock specifiers for clocks needed by the device.
- clock-names: device clock names, must be in same order as clocks property.
  The following clocks are required.
  * "bus"
  * "iface"
  * "core"
  * "vsync"
- interrupts: interrupt line from DPU to MDSS.
- ports: contains the list of output ports from DPU device. These ports connect
  to interfaces that are external to the DPU hardware, such as DSI, DP etc.

  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

	Port 0 -> DPU_INTF1 (DSI1)
	Port 1 -> DPU_INTF2 (DSI2)

Optional properties:
- assigned-clocks: list of clock specifiers for clocks needing rate assignment
- assigned-clock-rates: list of clock frequencies sorted in the same order as
  the assigned-clocks property.

Example:

	mdss: mdss@ae00000 {
		compatible = "qcom,sdm845-mdss";
		reg = <0xae00000 0x1000>;
		reg-names = "mdss";

		power-domains = <&clock_dispcc 0>;

		clocks = <&gcc GCC_DISP_AHB_CLK>, <&gcc GCC_DISP_AXI_CLK>,
			 <&clock_dispcc DISP_CC_MDSS_MDP_CLK>;
		clock-names = "iface", "bus", "core";

		assigned-clocks = <&clock_dispcc DISP_CC_MDSS_MDP_CLK>;
		assigned-clock-rates = <300000000>;

		interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-controller;
		#interrupt-cells = <1>;

		interconnects = <&rsc_hlos MASTER_MDP0 &rsc_hlos SLAVE_EBI1>,
				<&rsc_hlos MASTER_MDP1 &rsc_hlos SLAVE_EBI1>;

		interconnect-names = "mdp0-mem", "mdp1-mem";

		iommus = <&apps_iommu 0>;

		#address-cells = <2>;
		#size-cells = <1>;
		ranges = <0 0 0xae00000 0xb2008>;

		mdss_mdp: mdp@ae01000 {
			compatible = "qcom,sdm845-dpu";
			reg = <0 0x1000 0x8f000>, <0 0xb0000 0x2008>;
			reg-names = "mdp", "vbif";

			clocks = <&clock_dispcc DISP_CC_MDSS_AHB_CLK>,
				 <&clock_dispcc DISP_CC_MDSS_AXI_CLK>,
				 <&clock_dispcc DISP_CC_MDSS_MDP_CLK>,
				 <&clock_dispcc DISP_CC_MDSS_VSYNC_CLK>;
			clock-names = "iface", "bus", "core", "vsync";

			assigned-clocks = <&clock_dispcc DISP_CC_MDSS_MDP_CLK>,
					  <&clock_dispcc DISP_CC_MDSS_VSYNC_CLK>;
			assigned-clock-rates = <0 0 300000000 19200000>;

			interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;

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

				port@0 {
					reg = <0>;
					dpu_intf1_out: endpoint {
						remote-endpoint = <&dsi0_in>;
					};
				};

				port@1 {
					reg = <1>;
					dpu_intf2_out: endpoint {
						remote-endpoint = <&dsi1_in>;
					};
				};
			};
		};
	};
