18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci# Copyright 2019 Texas Instruments Incorporated
38c2ecf20Sopenharmony_ci%YAML 1.2
48c2ecf20Sopenharmony_ci---
58c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/display/ti/ti,j721e-dss.yaml#"
68c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#"
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_cititle: Texas Instruments J721E Display Subsystem
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_cimaintainers:
118c2ecf20Sopenharmony_ci  - Jyri Sarha <jsarha@ti.com>
128c2ecf20Sopenharmony_ci  - Tomi Valkeinen <tomi.valkeinen@ti.com>
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_cidescription: |
158c2ecf20Sopenharmony_ci  The J721E TI Keystone Display SubSystem with four output ports and
168c2ecf20Sopenharmony_ci  four video planes. There is two full video planes and two "lite
178c2ecf20Sopenharmony_ci  planes" without scaling support. The video ports can be connected to
188c2ecf20Sopenharmony_ci  the SoC's DPI pins or to integrated display bridges on the SoC.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciproperties:
218c2ecf20Sopenharmony_ci  compatible:
228c2ecf20Sopenharmony_ci    const: ti,j721e-dss
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci  reg:
258c2ecf20Sopenharmony_ci    items:
268c2ecf20Sopenharmony_ci      - description: common_m DSS Master common
278c2ecf20Sopenharmony_ci      - description: common_s0 DSS Shared common 0
288c2ecf20Sopenharmony_ci      - description: common_s1 DSS Shared common 1
298c2ecf20Sopenharmony_ci      - description: common_s2 DSS Shared common 2
308c2ecf20Sopenharmony_ci      - description: VIDL1 light video plane 1
318c2ecf20Sopenharmony_ci      - description: VIDL2 light video plane 2
328c2ecf20Sopenharmony_ci      - description: VID1 video plane 1
338c2ecf20Sopenharmony_ci      - description: VID1 video plane 2
348c2ecf20Sopenharmony_ci      - description: OVR1 overlay manager for vp1
358c2ecf20Sopenharmony_ci      - description: OVR2 overlay manager for vp2
368c2ecf20Sopenharmony_ci      - description: OVR3 overlay manager for vp3
378c2ecf20Sopenharmony_ci      - description: OVR4 overlay manager for vp4
388c2ecf20Sopenharmony_ci      - description: VP1 video port 1
398c2ecf20Sopenharmony_ci      - description: VP2 video port 2
408c2ecf20Sopenharmony_ci      - description: VP3 video port 3
418c2ecf20Sopenharmony_ci      - description: VP4 video port 4
428c2ecf20Sopenharmony_ci      - description: WB Write Back
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci  reg-names:
458c2ecf20Sopenharmony_ci    items:
468c2ecf20Sopenharmony_ci      - const: common_m
478c2ecf20Sopenharmony_ci      - const: common_s0
488c2ecf20Sopenharmony_ci      - const: common_s1
498c2ecf20Sopenharmony_ci      - const: common_s2
508c2ecf20Sopenharmony_ci      - const: vidl1
518c2ecf20Sopenharmony_ci      - const: vidl2
528c2ecf20Sopenharmony_ci      - const: vid1
538c2ecf20Sopenharmony_ci      - const: vid2
548c2ecf20Sopenharmony_ci      - const: ovr1
558c2ecf20Sopenharmony_ci      - const: ovr2
568c2ecf20Sopenharmony_ci      - const: ovr3
578c2ecf20Sopenharmony_ci      - const: ovr4
588c2ecf20Sopenharmony_ci      - const: vp1
598c2ecf20Sopenharmony_ci      - const: vp2
608c2ecf20Sopenharmony_ci      - const: vp3
618c2ecf20Sopenharmony_ci      - const: vp4
628c2ecf20Sopenharmony_ci      - const: wb
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci  clocks:
658c2ecf20Sopenharmony_ci    items:
668c2ecf20Sopenharmony_ci      - description: fck DSS functional clock
678c2ecf20Sopenharmony_ci      - description: vp1 Video Port 1 pixel clock
688c2ecf20Sopenharmony_ci      - description: vp2 Video Port 2 pixel clock
698c2ecf20Sopenharmony_ci      - description: vp3 Video Port 3 pixel clock
708c2ecf20Sopenharmony_ci      - description: vp4 Video Port 4 pixel clock
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci  clock-names:
738c2ecf20Sopenharmony_ci    items:
748c2ecf20Sopenharmony_ci      - const: fck
758c2ecf20Sopenharmony_ci      - const: vp1
768c2ecf20Sopenharmony_ci      - const: vp2
778c2ecf20Sopenharmony_ci      - const: vp3
788c2ecf20Sopenharmony_ci      - const: vp4
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci  interrupts:
818c2ecf20Sopenharmony_ci    items:
828c2ecf20Sopenharmony_ci      - description: common_m DSS Master common
838c2ecf20Sopenharmony_ci      - description: common_s0 DSS Shared common 0
848c2ecf20Sopenharmony_ci      - description: common_s1 DSS Shared common 1
858c2ecf20Sopenharmony_ci      - description: common_s2 DSS Shared common 2
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci  interrupt-names:
888c2ecf20Sopenharmony_ci    items:
898c2ecf20Sopenharmony_ci      - const: common_m
908c2ecf20Sopenharmony_ci      - const: common_s0
918c2ecf20Sopenharmony_ci      - const: common_s1
928c2ecf20Sopenharmony_ci      - const: common_s2
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci  power-domains:
958c2ecf20Sopenharmony_ci    maxItems: 1
968c2ecf20Sopenharmony_ci    description: phandle to the associated power domain
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci  ports:
998c2ecf20Sopenharmony_ci    type: object
1008c2ecf20Sopenharmony_ci    description:
1018c2ecf20Sopenharmony_ci      Ports as described in Documentation/devicetree/bindings/graph.txt
1028c2ecf20Sopenharmony_ci    properties:
1038c2ecf20Sopenharmony_ci      "#address-cells":
1048c2ecf20Sopenharmony_ci        const: 1
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci      "#size-cells":
1078c2ecf20Sopenharmony_ci        const: 0
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci      port@0:
1108c2ecf20Sopenharmony_ci        type: object
1118c2ecf20Sopenharmony_ci        description:
1128c2ecf20Sopenharmony_ci          The output port node form video port 1
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci      port@1:
1158c2ecf20Sopenharmony_ci        type: object
1168c2ecf20Sopenharmony_ci        description:
1178c2ecf20Sopenharmony_ci          The output port node from video port 2
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci      port@2:
1208c2ecf20Sopenharmony_ci        type: object
1218c2ecf20Sopenharmony_ci        description:
1228c2ecf20Sopenharmony_ci          The output port node from video port 3
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci      port@3:
1258c2ecf20Sopenharmony_ci        type: object
1268c2ecf20Sopenharmony_ci        description:
1278c2ecf20Sopenharmony_ci          The output port node from video port 4
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci    required:
1308c2ecf20Sopenharmony_ci      - "#address-cells"
1318c2ecf20Sopenharmony_ci      - "#size-cells"
1328c2ecf20Sopenharmony_ci
1338c2ecf20Sopenharmony_ci  max-memory-bandwidth:
1348c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
1358c2ecf20Sopenharmony_ci    description:
1368c2ecf20Sopenharmony_ci      Input memory (from main memory to dispc) bandwidth limit in
1378c2ecf20Sopenharmony_ci      bytes per second
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_cirequired:
1408c2ecf20Sopenharmony_ci  - compatible
1418c2ecf20Sopenharmony_ci  - reg
1428c2ecf20Sopenharmony_ci  - reg-names
1438c2ecf20Sopenharmony_ci  - clocks
1448c2ecf20Sopenharmony_ci  - clock-names
1458c2ecf20Sopenharmony_ci  - interrupts
1468c2ecf20Sopenharmony_ci  - interrupt-names
1478c2ecf20Sopenharmony_ci  - ports
1488c2ecf20Sopenharmony_ci
1498c2ecf20Sopenharmony_ciadditionalProperties: false
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ciexamples:
1528c2ecf20Sopenharmony_ci  - |
1538c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
1548c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
1558c2ecf20Sopenharmony_ci    #include <dt-bindings/soc/ti,sci_pm_domain.h>
1568c2ecf20Sopenharmony_ci
1578c2ecf20Sopenharmony_ci    dss: dss@4a00000 {
1588c2ecf20Sopenharmony_ci            compatible = "ti,j721e-dss";
1598c2ecf20Sopenharmony_ci            reg =   <0x04a00000 0x10000>, /* common_m */
1608c2ecf20Sopenharmony_ci                    <0x04a10000 0x10000>, /* common_s0*/
1618c2ecf20Sopenharmony_ci                    <0x04b00000 0x10000>, /* common_s1*/
1628c2ecf20Sopenharmony_ci                    <0x04b10000 0x10000>, /* common_s2*/
1638c2ecf20Sopenharmony_ci                    <0x04a20000 0x10000>, /* vidl1 */
1648c2ecf20Sopenharmony_ci                    <0x04a30000 0x10000>, /* vidl2 */
1658c2ecf20Sopenharmony_ci                    <0x04a50000 0x10000>, /* vid1 */
1668c2ecf20Sopenharmony_ci                    <0x04a60000 0x10000>, /* vid2 */
1678c2ecf20Sopenharmony_ci                    <0x04a70000 0x10000>, /* ovr1 */
1688c2ecf20Sopenharmony_ci                    <0x04a90000 0x10000>, /* ovr2 */
1698c2ecf20Sopenharmony_ci                    <0x04ab0000 0x10000>, /* ovr3 */
1708c2ecf20Sopenharmony_ci                    <0x04ad0000 0x10000>, /* ovr4 */
1718c2ecf20Sopenharmony_ci                    <0x04a80000 0x10000>, /* vp1 */
1728c2ecf20Sopenharmony_ci                    <0x04aa0000 0x10000>, /* vp2 */
1738c2ecf20Sopenharmony_ci                    <0x04ac0000 0x10000>, /* vp3 */
1748c2ecf20Sopenharmony_ci                    <0x04ae0000 0x10000>, /* vp4 */
1758c2ecf20Sopenharmony_ci                    <0x04af0000 0x10000>; /* wb */
1768c2ecf20Sopenharmony_ci            reg-names = "common_m", "common_s0",
1778c2ecf20Sopenharmony_ci                    "common_s1", "common_s2",
1788c2ecf20Sopenharmony_ci                    "vidl1", "vidl2","vid1","vid2",
1798c2ecf20Sopenharmony_ci                    "ovr1", "ovr2", "ovr3", "ovr4",
1808c2ecf20Sopenharmony_ci                    "vp1", "vp2", "vp3", "vp4",
1818c2ecf20Sopenharmony_ci                    "wb";
1828c2ecf20Sopenharmony_ci            clocks =        <&k3_clks 152 0>,
1838c2ecf20Sopenharmony_ci                            <&k3_clks 152 1>,
1848c2ecf20Sopenharmony_ci                            <&k3_clks 152 4>,
1858c2ecf20Sopenharmony_ci                            <&k3_clks 152 9>,
1868c2ecf20Sopenharmony_ci                            <&k3_clks 152 13>;
1878c2ecf20Sopenharmony_ci            clock-names = "fck", "vp1", "vp2", "vp3", "vp4";
1888c2ecf20Sopenharmony_ci            power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
1898c2ecf20Sopenharmony_ci            interrupts =    <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>,
1908c2ecf20Sopenharmony_ci                            <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>,
1918c2ecf20Sopenharmony_ci                            <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
1928c2ecf20Sopenharmony_ci                            <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
1938c2ecf20Sopenharmony_ci            interrupt-names =       "common_m",
1948c2ecf20Sopenharmony_ci                                    "common_s0",
1958c2ecf20Sopenharmony_ci                                    "common_s1",
1968c2ecf20Sopenharmony_ci                                    "common_s2";
1978c2ecf20Sopenharmony_ci            ports {
1988c2ecf20Sopenharmony_ci                    #address-cells = <1>;
1998c2ecf20Sopenharmony_ci                    #size-cells = <0>;
2008c2ecf20Sopenharmony_ci                    port@0 {
2018c2ecf20Sopenharmony_ci                            reg = <0>;
2028c2ecf20Sopenharmony_ci
2038c2ecf20Sopenharmony_ci                            dpi_out_0: endpoint {
2048c2ecf20Sopenharmony_ci                                    remote-endpoint = <&dp_bridge_input>;
2058c2ecf20Sopenharmony_ci                            };
2068c2ecf20Sopenharmony_ci                    };
2078c2ecf20Sopenharmony_ci            };
2088c2ecf20Sopenharmony_ci    };
209