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,am65x-dss.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Texas Instruments AM65x 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 AM625 and AM65x TI Keystone Display SubSystem with two output
1662306a36Sopenharmony_ci  ports and two video planes. In AM65x DSS, the first video port
1762306a36Sopenharmony_ci  supports 1 OLDI TX and in AM625 DSS, the first video port output is
1862306a36Sopenharmony_ci  internally routed to 2 OLDI TXes. The second video port supports DPI
1962306a36Sopenharmony_ci  format. The first plane is full video plane with all features and the
2062306a36Sopenharmony_ci  second is a "lite plane" without scaling support.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciproperties:
2362306a36Sopenharmony_ci  compatible:
2462306a36Sopenharmony_ci    enum:
2562306a36Sopenharmony_ci      - ti,am625-dss
2662306a36Sopenharmony_ci      - ti,am65x-dss
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  reg:
2962306a36Sopenharmony_ci    description:
3062306a36Sopenharmony_ci      Addresses to each DSS memory region described in the SoC's TRM.
3162306a36Sopenharmony_ci    items:
3262306a36Sopenharmony_ci      - description: common DSS register area
3362306a36Sopenharmony_ci      - description: VIDL1 light video plane
3462306a36Sopenharmony_ci      - description: VID video plane
3562306a36Sopenharmony_ci      - description: OVR1 overlay manager for vp1
3662306a36Sopenharmony_ci      - description: OVR2 overlay manager for vp2
3762306a36Sopenharmony_ci      - description: VP1 video port 1
3862306a36Sopenharmony_ci      - description: VP2 video port 2
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  reg-names:
4162306a36Sopenharmony_ci    items:
4262306a36Sopenharmony_ci      - const: common
4362306a36Sopenharmony_ci      - const: vidl1
4462306a36Sopenharmony_ci      - const: vid
4562306a36Sopenharmony_ci      - const: ovr1
4662306a36Sopenharmony_ci      - const: ovr2
4762306a36Sopenharmony_ci      - const: vp1
4862306a36Sopenharmony_ci      - const: vp2
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  clocks:
5162306a36Sopenharmony_ci    items:
5262306a36Sopenharmony_ci      - description: fck DSS functional clock
5362306a36Sopenharmony_ci      - description: vp1 Video Port 1 pixel clock
5462306a36Sopenharmony_ci      - description: vp2 Video Port 2 pixel clock
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci  clock-names:
5762306a36Sopenharmony_ci    items:
5862306a36Sopenharmony_ci      - const: fck
5962306a36Sopenharmony_ci      - const: vp1
6062306a36Sopenharmony_ci      - const: vp2
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci  assigned-clocks:
6362306a36Sopenharmony_ci    minItems: 1
6462306a36Sopenharmony_ci    maxItems: 3
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci  assigned-clock-parents:
6762306a36Sopenharmony_ci    minItems: 1
6862306a36Sopenharmony_ci    maxItems: 3
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci  interrupts:
7162306a36Sopenharmony_ci    maxItems: 1
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci  power-domains:
7462306a36Sopenharmony_ci    maxItems: 1
7562306a36Sopenharmony_ci    description: phandle to the associated power domain
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci  dma-coherent:
7862306a36Sopenharmony_ci    type: boolean
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci  ports:
8162306a36Sopenharmony_ci    $ref: /schemas/graph.yaml#/properties/ports
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci    properties:
8462306a36Sopenharmony_ci      port@0:
8562306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
8662306a36Sopenharmony_ci        description:
8762306a36Sopenharmony_ci          For AM65x DSS, the OLDI output port node from video port 1.
8862306a36Sopenharmony_ci          For AM625 DSS, the internal DPI output port node from video
8962306a36Sopenharmony_ci          port 1.
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci      port@1:
9262306a36Sopenharmony_ci        $ref: /schemas/graph.yaml#/properties/port
9362306a36Sopenharmony_ci        description:
9462306a36Sopenharmony_ci          The DSS DPI output port node from video port 2
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci  ti,am65x-oldi-io-ctrl:
9762306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
9862306a36Sopenharmony_ci    description:
9962306a36Sopenharmony_ci      phandle to syscon device node mapping OLDI IO_CTRL registers.
10062306a36Sopenharmony_ci      The mapped range should point to OLDI_DAT0_IO_CTRL, map it and
10162306a36Sopenharmony_ci      following OLDI_DAT1_IO_CTRL, OLDI_DAT2_IO_CTRL, OLDI_DAT3_IO_CTRL,
10262306a36Sopenharmony_ci      and OLDI_CLK_IO_CTRL registers. This property is needed for OLDI
10362306a36Sopenharmony_ci      interface to work.
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci  max-memory-bandwidth:
10662306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
10762306a36Sopenharmony_ci    description:
10862306a36Sopenharmony_ci      Input memory (from main memory to dispc) bandwidth limit in
10962306a36Sopenharmony_ci      bytes per second
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_cirequired:
11262306a36Sopenharmony_ci  - compatible
11362306a36Sopenharmony_ci  - reg
11462306a36Sopenharmony_ci  - reg-names
11562306a36Sopenharmony_ci  - clocks
11662306a36Sopenharmony_ci  - clock-names
11762306a36Sopenharmony_ci  - interrupts
11862306a36Sopenharmony_ci  - ports
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ciadditionalProperties: false
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciexamples:
12362306a36Sopenharmony_ci  - |
12462306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
12562306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
12662306a36Sopenharmony_ci    #include <dt-bindings/soc/ti,sci_pm_domain.h>
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci    dss: dss@4a00000 {
12962306a36Sopenharmony_ci            compatible = "ti,am65x-dss";
13062306a36Sopenharmony_ci            reg =   <0x04a00000 0x1000>, /* common */
13162306a36Sopenharmony_ci                    <0x04a02000 0x1000>, /* vidl1 */
13262306a36Sopenharmony_ci                    <0x04a06000 0x1000>, /* vid */
13362306a36Sopenharmony_ci                    <0x04a07000 0x1000>, /* ovr1 */
13462306a36Sopenharmony_ci                    <0x04a08000 0x1000>, /* ovr2 */
13562306a36Sopenharmony_ci                    <0x04a0a000 0x1000>, /* vp1 */
13662306a36Sopenharmony_ci                    <0x04a0b000 0x1000>; /* vp2 */
13762306a36Sopenharmony_ci            reg-names = "common", "vidl1", "vid",
13862306a36Sopenharmony_ci                    "ovr1", "ovr2", "vp1", "vp2";
13962306a36Sopenharmony_ci            ti,am65x-oldi-io-ctrl = <&dss_oldi_io_ctrl>;
14062306a36Sopenharmony_ci            power-domains = <&k3_pds 67 TI_SCI_PD_EXCLUSIVE>;
14162306a36Sopenharmony_ci            clocks =        <&k3_clks 67 1>,
14262306a36Sopenharmony_ci                            <&k3_clks 216 1>,
14362306a36Sopenharmony_ci                            <&k3_clks 67 2>;
14462306a36Sopenharmony_ci            clock-names = "fck", "vp1", "vp2";
14562306a36Sopenharmony_ci            interrupts = <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>;
14662306a36Sopenharmony_ci            ports {
14762306a36Sopenharmony_ci                    #address-cells = <1>;
14862306a36Sopenharmony_ci                    #size-cells = <0>;
14962306a36Sopenharmony_ci                    port@0 {
15062306a36Sopenharmony_ci                            reg = <0>;
15162306a36Sopenharmony_ci                            oldi_out0: endpoint {
15262306a36Sopenharmony_ci                                    remote-endpoint = <&lcd_in0>;
15362306a36Sopenharmony_ci                            };
15462306a36Sopenharmony_ci                    };
15562306a36Sopenharmony_ci            };
15662306a36Sopenharmony_ci    };
157