Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/display/msm/dpu-msm8998.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Qualcomm Display DPU dt properties for MSM8998 target
0008 
0009 maintainers:
0010   - AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
0011 
0012 description: |
0013   Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates
0014   sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree
0015   bindings of MDSS and DPU are mentioned for MSM8998 target.
0016 
0017 properties:
0018   compatible:
0019     items:
0020       - const: qcom,msm8998-mdss
0021 
0022   reg:
0023     maxItems: 1
0024 
0025   reg-names:
0026     const: mdss
0027 
0028   power-domains:
0029     maxItems: 1
0030 
0031   clocks:
0032     items:
0033       - description: Display AHB clock
0034       - description: Display AXI clock
0035       - description: Display core clock
0036 
0037   clock-names:
0038     items:
0039       - const: iface
0040       - const: bus
0041       - const: core
0042 
0043   interrupts:
0044     maxItems: 1
0045 
0046   interrupt-controller: true
0047 
0048   "#address-cells": true
0049 
0050   "#size-cells": true
0051 
0052   "#interrupt-cells":
0053     const: 1
0054 
0055   iommus:
0056     items:
0057       - description: Phandle to apps_smmu node with SID mask for Hard-Fail port0
0058 
0059   ranges: true
0060 
0061 patternProperties:
0062   "^display-controller@[0-9a-f]+$":
0063     type: object
0064     description: Node containing the properties of DPU.
0065 
0066     properties:
0067       compatible:
0068         items:
0069           - const: qcom,msm8998-dpu
0070 
0071       reg:
0072         items:
0073           - description: Address offset and size for mdp register set
0074           - description: Address offset and size for regdma register set
0075           - description: Address offset and size for vbif register set
0076           - description: Address offset and size for non-realtime vbif register set
0077 
0078       reg-names:
0079         items:
0080           - const: mdp
0081           - const: regdma
0082           - const: vbif
0083           - const: vbif_nrt
0084 
0085       clocks:
0086         items:
0087           - description: Display ahb clock
0088           - description: Display axi clock
0089           - description: Display mem-noc clock
0090           - description: Display core clock
0091           - description: Display vsync clock
0092 
0093       clock-names:
0094         items:
0095           - const: iface
0096           - const: bus
0097           - const: mnoc
0098           - const: core
0099           - const: vsync
0100 
0101       interrupts:
0102         maxItems: 1
0103 
0104       power-domains:
0105         maxItems: 1
0106 
0107       operating-points-v2: true
0108       ports:
0109         $ref: /schemas/graph.yaml#/properties/ports
0110         description: |
0111           Contains the list of output ports from DPU device. These ports
0112           connect to interfaces that are external to the DPU hardware,
0113           such as DSI, DP etc. Each output port contains an endpoint that
0114           describes how it is connected to an external interface.
0115 
0116         properties:
0117           port@0:
0118             $ref: /schemas/graph.yaml#/properties/port
0119             description: DPU_INTF1 (DSI1)
0120 
0121           port@1:
0122             $ref: /schemas/graph.yaml#/properties/port
0123             description: DPU_INTF2 (DSI2)
0124 
0125         required:
0126           - port@0
0127           - port@1
0128 
0129     required:
0130       - compatible
0131       - reg
0132       - reg-names
0133       - clocks
0134       - interrupts
0135       - power-domains
0136       - operating-points-v2
0137       - ports
0138 
0139 required:
0140   - compatible
0141   - reg
0142   - reg-names
0143   - power-domains
0144   - clocks
0145   - interrupts
0146   - interrupt-controller
0147   - iommus
0148   - ranges
0149 
0150 additionalProperties: false
0151 
0152 examples:
0153   - |
0154     #include <dt-bindings/clock/qcom,mmcc-msm8998.h>
0155     #include <dt-bindings/interrupt-controller/arm-gic.h>
0156     #include <dt-bindings/power/qcom-rpmpd.h>
0157 
0158     mdss: display-subsystem@c900000 {
0159         compatible = "qcom,msm8998-mdss";
0160         reg = <0x0c900000 0x1000>;
0161         reg-names = "mdss";
0162 
0163         clocks = <&mmcc MDSS_AHB_CLK>,
0164                  <&mmcc MDSS_AXI_CLK>,
0165                  <&mmcc MDSS_MDP_CLK>;
0166         clock-names = "iface", "bus", "core";
0167 
0168         #address-cells = <1>;
0169         #interrupt-cells = <1>;
0170         #size-cells = <1>;
0171 
0172         interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
0173         interrupt-controller;
0174         iommus = <&mmss_smmu 0>;
0175 
0176         power-domains = <&mmcc MDSS_GDSC>;
0177         ranges;
0178 
0179         display-controller@c901000 {
0180             compatible = "qcom,msm8998-dpu";
0181             reg = <0x0c901000 0x8f000>,
0182                   <0x0c9a8e00 0xf0>,
0183                   <0x0c9b0000 0x2008>,
0184                   <0x0c9b8000 0x1040>;
0185             reg-names = "mdp", "regdma", "vbif", "vbif_nrt";
0186 
0187             clocks = <&mmcc MDSS_AHB_CLK>,
0188                      <&mmcc MDSS_AXI_CLK>,
0189                      <&mmcc MNOC_AHB_CLK>,
0190                      <&mmcc MDSS_MDP_CLK>,
0191                      <&mmcc MDSS_VSYNC_CLK>;
0192             clock-names = "iface", "bus", "mnoc", "core", "vsync";
0193 
0194             interrupt-parent = <&mdss>;
0195             interrupts = <0>;
0196             operating-points-v2 = <&mdp_opp_table>;
0197             power-domains = <&rpmpd MSM8998_VDDMX>;
0198 
0199             ports {
0200                 #address-cells = <1>;
0201                 #size-cells = <0>;
0202 
0203                 port@0 {
0204                     reg = <0>;
0205                     dpu_intf1_out: endpoint {
0206                         remote-endpoint = <&dsi0_in>;
0207                     };
0208                 };
0209 
0210                 port@1 {
0211                     reg = <1>;
0212                     dpu_intf2_out: endpoint {
0213                         remote-endpoint = <&dsi1_in>;
0214                     };
0215                 };
0216             };
0217         };
0218     };
0219 ...