162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright 2019 Texas Instruments Incorporated
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/display/ti/ti,j721e-dss.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Texas Instruments J721E Display Subsystem
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Jyri Sarha <jsarha@ti.com>
1262306a36Sopenharmony_ci  - Tomi Valkeinen <tomi.valkeinen@ti.com>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cidescription: |
1562306a36Sopenharmony_ci  The J721E TI Keystone Display SubSystem with four output ports and
1662306a36Sopenharmony_ci  four video planes. There is two full video planes and two "lite
1762306a36Sopenharmony_ci  planes" without scaling support. The video ports can be connected to
1862306a36Sopenharmony_ci  the SoC's DPI pins or to integrated display bridges on the SoC.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciproperties:
2162306a36Sopenharmony_ci  compatible:
2262306a36Sopenharmony_ci    const: ti,j721e-dss
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  reg:
2562306a36Sopenharmony_ci    items:
2662306a36Sopenharmony_ci      - description: common_m DSS Master common
2762306a36Sopenharmony_ci      - description: common_s0 DSS Shared common 0
2862306a36Sopenharmony_ci      - description: common_s1 DSS Shared common 1
2962306a36Sopenharmony_ci      - description: common_s2 DSS Shared common 2
3062306a36Sopenharmony_ci      - description: VIDL1 light video plane 1
3162306a36Sopenharmony_ci      - description: VIDL2 light video plane 2
3262306a36Sopenharmony_ci      - description: VID1 video plane 1
3362306a36Sopenharmony_ci      - description: VID1 video plane 2
3462306a36Sopenharmony_ci      - description: OVR1 overlay manager for vp1
3562306a36Sopenharmony_ci      - description: OVR2 overlay manager for vp2
3662306a36Sopenharmony_ci      - description: OVR3 overlay manager for vp3
3762306a36Sopenharmony_ci      - description: OVR4 overlay manager for vp4
3862306a36Sopenharmony_ci      - description: VP1 video port 1
3962306a36Sopenharmony_ci      - description: VP2 video port 2
4062306a36Sopenharmony_ci      - description: VP3 video port 3
4162306a36Sopenharmony_ci      - description: VP4 video port 4
4262306a36Sopenharmony_ci      - description: WB Write Back
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  reg-names:
4562306a36Sopenharmony_ci    items:
4662306a36Sopenharmony_ci      - const: common_m
4762306a36Sopenharmony_ci      - const: common_s0
4862306a36Sopenharmony_ci      - const: common_s1
4962306a36Sopenharmony_ci      - const: common_s2
5062306a36Sopenharmony_ci      - const: vidl1
5162306a36Sopenharmony_ci      - const: vidl2
5262306a36Sopenharmony_ci      - const: vid1
5362306a36Sopenharmony_ci      - const: vid2
5462306a36Sopenharmony_ci      - const: ovr1
5562306a36Sopenharmony_ci      - const: ovr2
5662306a36Sopenharmony_ci      - const: ovr3
5762306a36Sopenharmony_ci      - const: ovr4
5862306a36Sopenharmony_ci      - const: vp1
5962306a36Sopenharmony_ci      - const: vp2
6062306a36Sopenharmony_ci      - const: vp3
6162306a36Sopenharmony_ci      - const: vp4
6262306a36Sopenharmony_ci      - const: wb
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci  clocks:
6562306a36Sopenharmony_ci    items:
6662306a36Sopenharmony_ci      - description: fck DSS functional clock
6762306a36Sopenharmony_ci      - description: vp1 Video Port 1 pixel clock
6862306a36Sopenharmony_ci      - description: vp2 Video Port 2 pixel clock
6962306a36Sopenharmony_ci      - description: vp3 Video Port 3 pixel clock
7062306a36Sopenharmony_ci      - description: vp4 Video Port 4 pixel clock
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci  clock-names:
7362306a36Sopenharmony_ci    items:
7462306a36Sopenharmony_ci      - const: fck
7562306a36Sopenharmony_ci      - const: vp1
7662306a36Sopenharmony_ci      - const: vp2
7762306a36Sopenharmony_ci      - const: vp3
7862306a36Sopenharmony_ci      - const: vp4
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci  assigned-clocks:
8162306a36Sopenharmony_ci    minItems: 1
8262306a36Sopenharmony_ci    maxItems: 5
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci  assigned-clock-parents:
8562306a36Sopenharmony_ci    minItems: 1
8662306a36Sopenharmony_ci    maxItems: 5
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci  interrupts:
8962306a36Sopenharmony_ci    items:
9062306a36Sopenharmony_ci      - description: common_m DSS Master common
9162306a36Sopenharmony_ci      - description: common_s0 DSS Shared common 0
9262306a36Sopenharmony_ci      - description: common_s1 DSS Shared common 1
9362306a36Sopenharmony_ci      - description: common_s2 DSS Shared common 2
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci  interrupt-names:
9662306a36Sopenharmony_ci    items:
9762306a36Sopenharmony_ci      - const: common_m
9862306a36Sopenharmony_ci      - const: common_s0
9962306a36Sopenharmony_ci      - const: common_s1
10062306a36Sopenharmony_ci      - const: common_s2
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci  power-domains:
10362306a36Sopenharmony_ci    maxItems: 1
10462306a36Sopenharmony_ci    description: phandle to the associated power domain
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci  dma-coherent:
10762306a36Sopenharmony_ci    type: boolean
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci  ports:
11062306a36Sopenharmony_ci    $ref: /schemas/graph.yaml#/properties/ports
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ci    properties:
11362306a36Sopenharmony_ci      port@0:
11462306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
11562306a36Sopenharmony_ci        description:
11662306a36Sopenharmony_ci          The output port node form video port 1
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci      port@1:
11962306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
12062306a36Sopenharmony_ci        description:
12162306a36Sopenharmony_ci          The output port node from video port 2
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci      port@2:
12462306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
12562306a36Sopenharmony_ci        description:
12662306a36Sopenharmony_ci          The output port node from video port 3
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci      port@3:
12962306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
13062306a36Sopenharmony_ci        description:
13162306a36Sopenharmony_ci          The output port node from video port 4
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci  max-memory-bandwidth:
13462306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
13562306a36Sopenharmony_ci    description:
13662306a36Sopenharmony_ci      Input memory (from main memory to dispc) bandwidth limit in
13762306a36Sopenharmony_ci      bytes per second
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_cirequired:
14062306a36Sopenharmony_ci  - compatible
14162306a36Sopenharmony_ci  - reg
14262306a36Sopenharmony_ci  - reg-names
14362306a36Sopenharmony_ci  - clocks
14462306a36Sopenharmony_ci  - clock-names
14562306a36Sopenharmony_ci  - interrupts
14662306a36Sopenharmony_ci  - interrupt-names
14762306a36Sopenharmony_ci  - ports
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ciadditionalProperties: false
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ciexamples:
15262306a36Sopenharmony_ci  - |
15362306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
15462306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
15562306a36Sopenharmony_ci    #include <dt-bindings/soc/ti,sci_pm_domain.h>
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci    dss: dss@4a00000 {
15862306a36Sopenharmony_ci            compatible = "ti,j721e-dss";
15962306a36Sopenharmony_ci            reg =   <0x04a00000 0x10000>, /* common_m */
16062306a36Sopenharmony_ci                    <0x04a10000 0x10000>, /* common_s0*/
16162306a36Sopenharmony_ci                    <0x04b00000 0x10000>, /* common_s1*/
16262306a36Sopenharmony_ci                    <0x04b10000 0x10000>, /* common_s2*/
16362306a36Sopenharmony_ci                    <0x04a20000 0x10000>, /* vidl1 */
16462306a36Sopenharmony_ci                    <0x04a30000 0x10000>, /* vidl2 */
16562306a36Sopenharmony_ci                    <0x04a50000 0x10000>, /* vid1 */
16662306a36Sopenharmony_ci                    <0x04a60000 0x10000>, /* vid2 */
16762306a36Sopenharmony_ci                    <0x04a70000 0x10000>, /* ovr1 */
16862306a36Sopenharmony_ci                    <0x04a90000 0x10000>, /* ovr2 */
16962306a36Sopenharmony_ci                    <0x04ab0000 0x10000>, /* ovr3 */
17062306a36Sopenharmony_ci                    <0x04ad0000 0x10000>, /* ovr4 */
17162306a36Sopenharmony_ci                    <0x04a80000 0x10000>, /* vp1 */
17262306a36Sopenharmony_ci                    <0x04aa0000 0x10000>, /* vp2 */
17362306a36Sopenharmony_ci                    <0x04ac0000 0x10000>, /* vp3 */
17462306a36Sopenharmony_ci                    <0x04ae0000 0x10000>, /* vp4 */
17562306a36Sopenharmony_ci                    <0x04af0000 0x10000>; /* wb */
17662306a36Sopenharmony_ci            reg-names = "common_m", "common_s0",
17762306a36Sopenharmony_ci                    "common_s1", "common_s2",
17862306a36Sopenharmony_ci                    "vidl1", "vidl2","vid1","vid2",
17962306a36Sopenharmony_ci                    "ovr1", "ovr2", "ovr3", "ovr4",
18062306a36Sopenharmony_ci                    "vp1", "vp2", "vp3", "vp4",
18162306a36Sopenharmony_ci                    "wb";
18262306a36Sopenharmony_ci            clocks =        <&k3_clks 152 0>,
18362306a36Sopenharmony_ci                            <&k3_clks 152 1>,
18462306a36Sopenharmony_ci                            <&k3_clks 152 4>,
18562306a36Sopenharmony_ci                            <&k3_clks 152 9>,
18662306a36Sopenharmony_ci                            <&k3_clks 152 13>;
18762306a36Sopenharmony_ci            clock-names = "fck", "vp1", "vp2", "vp3", "vp4";
18862306a36Sopenharmony_ci            power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
18962306a36Sopenharmony_ci            interrupts =    <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>,
19062306a36Sopenharmony_ci                            <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>,
19162306a36Sopenharmony_ci                            <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>,
19262306a36Sopenharmony_ci                            <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
19362306a36Sopenharmony_ci            interrupt-names =       "common_m",
19462306a36Sopenharmony_ci                                    "common_s0",
19562306a36Sopenharmony_ci                                    "common_s1",
19662306a36Sopenharmony_ci                                    "common_s2";
19762306a36Sopenharmony_ci            ports {
19862306a36Sopenharmony_ci                    #address-cells = <1>;
19962306a36Sopenharmony_ci                    #size-cells = <0>;
20062306a36Sopenharmony_ci                    port@0 {
20162306a36Sopenharmony_ci                            reg = <0>;
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ci                            dpi_out_0: endpoint {
20462306a36Sopenharmony_ci                                    remote-endpoint = <&dp_bridge_input>;
20562306a36Sopenharmony_ci                            };
20662306a36Sopenharmony_ci                    };
20762306a36Sopenharmony_ci            };
20862306a36Sopenharmony_ci    };
209