# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 Texas Instruments Incorporated
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/ti/ti,k2g-dss.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Texas Instruments K2G Display Subsystem

maintainers:
  - Jyri Sarha <jsarha@ti.com>
  - Tomi Valkeinen <tomi.valkeinen@ti.com>

description: |
  The K2G DSS is an ultra-light version of TI Keystone Display
  SubSystem. It has only one output port and video plane. The
  output is DPI.

properties:
  compatible:
    const: ti,k2g-dss

  reg:
    items:
      - description: cfg DSS top level
      - description: common DISPC common
      - description: VID1 video plane 1
      - description: OVR1 overlay manager for vp1
      - description: VP1 video port 1

  reg-names:
    items:
      - const: cfg
      - const: common
      - const: vid1
      - const: ovr1
      - const: vp1

  clocks:
    items:
      - description: fck DSS functional clock
      - description: vp1 Video Port 1 pixel clock

  clock-names:
    items:
      - const: fck
      - const: vp1

  interrupts:
    maxItems: 1

  power-domains:
    maxItems: 1
    description: phandle to the associated power domain

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description:
      The DSS DPI output port node

  max-memory-bandwidth:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Input memory (from main memory to dispc) bandwidth limit in
      bytes per second

required:
  - compatible
  - reg
  - reg-names
  - clocks
  - clock-names
  - interrupts
  - port

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    dss: dss@2540000 {
            compatible = "ti,k2g-dss";
            reg =   <0x02540000 0x400>,
                    <0x02550000 0x1000>,
                    <0x02557000 0x1000>,
                    <0x0255a800 0x100>,
                    <0x0255ac00 0x100>;
            reg-names = "cfg", "common", "vid1", "ovr1", "vp1";
            clocks =        <&k2g_clks 0x2 0>,
                            <&k2g_clks 0x2 1>;
            clock-names = "fck", "vp1";
            interrupts = <GIC_SPI 247 IRQ_TYPE_EDGE_RISING>;

            power-domains = <&k2g_pds 0x2>;

            max-memory-bandwidth = <230000000>;

            port {
                    dpi_out: endpoint {
                            remote-endpoint = <&sii9022_in>;
                    };
            };
    };
