1aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2cb7aa33aSEmmanuel Vadot%YAML 1.2 3cb7aa33aSEmmanuel Vadot--- 4cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/display/msm/qcom,mdp5.yaml# 5cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6cb7aa33aSEmmanuel Vadot 7cb7aa33aSEmmanuel Vadottitle: Qualcomm Adreno/Snapdragon Mobile Display controller (MDP5) 8cb7aa33aSEmmanuel Vadot 9cb7aa33aSEmmanuel Vadotdescription: 10cb7aa33aSEmmanuel Vadot MDP5 display controller found in SoCs like MSM8974, APQ8084, MSM8916, MSM8994 11cb7aa33aSEmmanuel Vadot and MSM8996. 12cb7aa33aSEmmanuel Vadot 13cb7aa33aSEmmanuel Vadotmaintainers: 14cb7aa33aSEmmanuel Vadot - Dmitry Baryshkov <dmitry.baryshkov@linaro.org> 15cb7aa33aSEmmanuel Vadot - Rob Clark <robdclark@gmail.com> 16cb7aa33aSEmmanuel Vadot 17cb7aa33aSEmmanuel Vadotproperties: 18cb7aa33aSEmmanuel Vadot compatible: 19cb7aa33aSEmmanuel Vadot oneOf: 20cb7aa33aSEmmanuel Vadot - const: qcom,mdp5 21cb7aa33aSEmmanuel Vadot deprecated: true 22cb7aa33aSEmmanuel Vadot - items: 23cb7aa33aSEmmanuel Vadot - enum: 24cb7aa33aSEmmanuel Vadot - qcom,apq8084-mdp5 25f126890aSEmmanuel Vadot - qcom,msm8226-mdp5 26cb7aa33aSEmmanuel Vadot - qcom,msm8916-mdp5 27cb7aa33aSEmmanuel Vadot - qcom,msm8917-mdp5 28*0e8011faSEmmanuel Vadot - qcom,msm8937-mdp5 29cb7aa33aSEmmanuel Vadot - qcom,msm8953-mdp5 30cb7aa33aSEmmanuel Vadot - qcom,msm8974-mdp5 31cb7aa33aSEmmanuel Vadot - qcom,msm8976-mdp5 32cb7aa33aSEmmanuel Vadot - qcom,msm8994-mdp5 33cb7aa33aSEmmanuel Vadot - qcom,msm8996-mdp5 34cb7aa33aSEmmanuel Vadot - qcom,sdm630-mdp5 35cb7aa33aSEmmanuel Vadot - qcom,sdm660-mdp5 36cb7aa33aSEmmanuel Vadot - const: qcom,mdp5 37cb7aa33aSEmmanuel Vadot 38cb7aa33aSEmmanuel Vadot $nodename: 39cb7aa33aSEmmanuel Vadot pattern: '^display-controller@[0-9a-f]+$' 40cb7aa33aSEmmanuel Vadot 41cb7aa33aSEmmanuel Vadot reg: 42cb7aa33aSEmmanuel Vadot maxItems: 1 43cb7aa33aSEmmanuel Vadot 44cb7aa33aSEmmanuel Vadot reg-names: 45cb7aa33aSEmmanuel Vadot items: 46cb7aa33aSEmmanuel Vadot - const: mdp_phys 47cb7aa33aSEmmanuel Vadot 48cb7aa33aSEmmanuel Vadot interrupts: 49cb7aa33aSEmmanuel Vadot maxItems: 1 50cb7aa33aSEmmanuel Vadot 51cb7aa33aSEmmanuel Vadot clocks: 52cb7aa33aSEmmanuel Vadot minItems: 4 53cb7aa33aSEmmanuel Vadot maxItems: 7 54cb7aa33aSEmmanuel Vadot 55cb7aa33aSEmmanuel Vadot clock-names: 56cb7aa33aSEmmanuel Vadot oneOf: 57cb7aa33aSEmmanuel Vadot - minItems: 4 58cb7aa33aSEmmanuel Vadot items: 59cb7aa33aSEmmanuel Vadot - const: iface 60cb7aa33aSEmmanuel Vadot - const: bus 61cb7aa33aSEmmanuel Vadot - const: core 62cb7aa33aSEmmanuel Vadot - const: vsync 63cb7aa33aSEmmanuel Vadot - const: lut 64cb7aa33aSEmmanuel Vadot - const: tbu 65cb7aa33aSEmmanuel Vadot - const: tbu_rt 66cb7aa33aSEmmanuel Vadot # MSM8996 has additional iommu clock 67cb7aa33aSEmmanuel Vadot - items: 68cb7aa33aSEmmanuel Vadot - const: iface 69cb7aa33aSEmmanuel Vadot - const: bus 70cb7aa33aSEmmanuel Vadot - const: core 71cb7aa33aSEmmanuel Vadot - const: iommu 72cb7aa33aSEmmanuel Vadot - const: vsync 73cb7aa33aSEmmanuel Vadot 74cb7aa33aSEmmanuel Vadot interconnects: 75cb7aa33aSEmmanuel Vadot minItems: 1 76cb7aa33aSEmmanuel Vadot items: 77cb7aa33aSEmmanuel Vadot - description: Interconnect path from mdp0 (or a single mdp) port to the data bus 78cb7aa33aSEmmanuel Vadot - description: Interconnect path from mdp1 port to the data bus 79cb7aa33aSEmmanuel Vadot - description: Interconnect path from rotator port to the data bus 80cb7aa33aSEmmanuel Vadot 81cb7aa33aSEmmanuel Vadot interconnect-names: 82cb7aa33aSEmmanuel Vadot minItems: 1 83cb7aa33aSEmmanuel Vadot items: 84cb7aa33aSEmmanuel Vadot - const: mdp0-mem 85cb7aa33aSEmmanuel Vadot - const: mdp1-mem 86cb7aa33aSEmmanuel Vadot - const: rotator-mem 87cb7aa33aSEmmanuel Vadot 88cb7aa33aSEmmanuel Vadot iommus: 89cb7aa33aSEmmanuel Vadot items: 90cb7aa33aSEmmanuel Vadot - description: apps SMMU with the Stream-ID mask for Hard-Fail port0 91cb7aa33aSEmmanuel Vadot 92cb7aa33aSEmmanuel Vadot power-domains: 93cb7aa33aSEmmanuel Vadot maxItems: 1 94cb7aa33aSEmmanuel Vadot 95cb7aa33aSEmmanuel Vadot operating-points-v2: true 96cb7aa33aSEmmanuel Vadot opp-table: 97cb7aa33aSEmmanuel Vadot type: object 98cb7aa33aSEmmanuel Vadot 99cb7aa33aSEmmanuel Vadot ports: 100cb7aa33aSEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/ports 101cb7aa33aSEmmanuel Vadot description: > 102cb7aa33aSEmmanuel Vadot Contains the list of output ports from DPU device. These ports 103cb7aa33aSEmmanuel Vadot connect to interfaces that are external to the DPU hardware, 104cb7aa33aSEmmanuel Vadot such as DSI, DP etc. MDP5 devices support up to 4 ports: 105cb7aa33aSEmmanuel Vadot one or two DSI ports, HDMI and eDP. 106cb7aa33aSEmmanuel Vadot 107cb7aa33aSEmmanuel Vadot patternProperties: 108cb7aa33aSEmmanuel Vadot "^port@[0-3]+$": 109cb7aa33aSEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 110cb7aa33aSEmmanuel Vadot 111cb7aa33aSEmmanuel Vadot # at least one port is required 112cb7aa33aSEmmanuel Vadot required: 113cb7aa33aSEmmanuel Vadot - port@0 114cb7aa33aSEmmanuel Vadot 115cb7aa33aSEmmanuel Vadotrequired: 116cb7aa33aSEmmanuel Vadot - compatible 117cb7aa33aSEmmanuel Vadot - reg 118cb7aa33aSEmmanuel Vadot - reg-names 119cb7aa33aSEmmanuel Vadot - clocks 120cb7aa33aSEmmanuel Vadot - clock-names 121cb7aa33aSEmmanuel Vadot - ports 122cb7aa33aSEmmanuel Vadot 123cb7aa33aSEmmanuel VadotadditionalProperties: false 124cb7aa33aSEmmanuel Vadot 125cb7aa33aSEmmanuel Vadotexamples: 126cb7aa33aSEmmanuel Vadot - | 127cb7aa33aSEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-msm8916.h> 128cb7aa33aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 129cb7aa33aSEmmanuel Vadot display-controller@1a01000 { 130cb7aa33aSEmmanuel Vadot compatible = "qcom,mdp5"; 131cb7aa33aSEmmanuel Vadot reg = <0x1a01000 0x90000>; 132cb7aa33aSEmmanuel Vadot reg-names = "mdp_phys"; 133cb7aa33aSEmmanuel Vadot 134cb7aa33aSEmmanuel Vadot interrupt-parent = <&mdss>; 135cb7aa33aSEmmanuel Vadot interrupts = <0>; 136cb7aa33aSEmmanuel Vadot 137cb7aa33aSEmmanuel Vadot clocks = <&gcc GCC_MDSS_AHB_CLK>, 138cb7aa33aSEmmanuel Vadot <&gcc GCC_MDSS_AXI_CLK>, 139cb7aa33aSEmmanuel Vadot <&gcc GCC_MDSS_MDP_CLK>, 140cb7aa33aSEmmanuel Vadot <&gcc GCC_MDSS_VSYNC_CLK>; 141cb7aa33aSEmmanuel Vadot clock-names = "iface", 142cb7aa33aSEmmanuel Vadot "bus", 143cb7aa33aSEmmanuel Vadot "core", 144cb7aa33aSEmmanuel Vadot "vsync"; 145cb7aa33aSEmmanuel Vadot 146cb7aa33aSEmmanuel Vadot ports { 147cb7aa33aSEmmanuel Vadot #address-cells = <1>; 148cb7aa33aSEmmanuel Vadot #size-cells = <0>; 149cb7aa33aSEmmanuel Vadot 150cb7aa33aSEmmanuel Vadot port@0 { 151cb7aa33aSEmmanuel Vadot reg = <0>; 152cb7aa33aSEmmanuel Vadot endpoint { 153cb7aa33aSEmmanuel Vadot remote-endpoint = <&dsi0_in>; 154cb7aa33aSEmmanuel Vadot }; 155cb7aa33aSEmmanuel Vadot }; 156cb7aa33aSEmmanuel Vadot }; 157cb7aa33aSEmmanuel Vadot }; 158cb7aa33aSEmmanuel Vadot... 159