# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 Bootlin
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/xylon,logicvc-display.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Xylon LogiCVC display controller

maintainers:
  - Paul Kocialkowski <paul.kocialkowski@bootlin.com>

description: |
  The Xylon LogiCVC is a display controller that supports multiple layers.
  It is usually implemented as programmable logic and was optimized for use
  with Xilinx Zynq-7000 SoCs and Xilinx FPGAs.

  Because the controller is intended for use in a FPGA, most of the
  configuration of the controller takes place at logic configuration bitstream
  synthesis time. As a result, many of the device-tree bindings are meant to
  reflect the synthesis configuration and must not be configured differently.
  Matching synthesis parameters are provided when applicable.

  Layers are declared in the "layers" sub-node and have dedicated configuration.
  In version 3 of the controller, each layer has fixed memory offset and address
  starting from the video memory base address for its framebuffer. In version 4,
  framebuffers are configured with a direct memory address instead.

properties:
  compatible:
    enum:
      - xylon,logicvc-3.02.a-display
      - xylon,logicvc-4.01.a-display

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 4

  clock-names:
    minItems: 1
    items:
      # vclk is required and must be provided as first item.
      - const: vclk
      # Other clocks are optional and can be provided in any order.
      - enum:
          - vclk2
          - lvdsclk
          - lvdsclkn
      - enum:
          - vclk2
          - lvdsclk
          - lvdsclkn
      - enum:
          - vclk2
          - lvdsclk
          - lvdsclkn

  interrupts:
    maxItems: 1

  memory-region:
    maxItems: 1

  xylon,display-interface:
    enum:
      # Parallel RGB interface (C_DISPLAY_INTERFACE == 0)
      - parallel-rgb
      # ITU-T BR656 interface (C_DISPLAY_INTERFACE == 1)
      - bt656
      # 4-bit LVDS interface (C_DISPLAY_INTERFACE == 2)
      - lvds-4bits
      # 3-bit LVDS interface (C_DISPLAY_INTERFACE == 4)
      - lvds-3bits
      # DVI interface (C_DISPLAY_INTERFACE == 5)
      - dvi
    description: Display output interface (C_DISPLAY_INTERFACE).

  xylon,display-colorspace:
    enum:
      # RGB colorspace (C_DISPLAY_COLOR_SPACE == 0)
      - rgb
      # YUV 4:2:2 colorspace (C_DISPLAY_COLOR_SPACE == 1)
      - yuv422
      # YUV 4:4:4 colorspace (C_DISPLAY_COLOR_SPACE == 2)
      - yuv444
    description: Display output colorspace (C_DISPLAY_COLOR_SPACE).

  xylon,display-depth:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Display output depth (C_PIXEL_DATA_WIDTH).

  xylon,row-stride:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: Fixed number of pixels in a framebuffer row (C_ROW_STRIDE).

  xylon,dithering:
    $ref: /schemas/types.yaml#/definitions/flag
    description: Dithering module is enabled (C_XCOLOR)

  xylon,background-layer:
    $ref: /schemas/types.yaml#/definitions/flag
    description: |
      The last layer is used to display a black background (C_USE_BACKGROUND).
      The layer must still be registered.

  xylon,layers-configurable:
    $ref: /schemas/types.yaml#/definitions/flag
    description: |
      Configuration of layers' size, position and offset is enabled
      (C_USE_SIZE_POSITION).

  layers:
    type: object

    properties:
      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

    patternProperties:
      "^layer@[0-9]+$":
        type: object

        properties:
          reg:
            maxItems: 1

          xylon,layer-depth:
            $ref: /schemas/types.yaml#/definitions/uint32
            description: Layer depth (C_LAYER_X_DATA_WIDTH).

          xylon,layer-colorspace:
            enum:
              # RGB colorspace (C_LAYER_X_TYPE == 0)
              - rgb
              # YUV packed colorspace (C_LAYER_X_TYPE == 0)
              - yuv
            description: Layer colorspace (C_LAYER_X_TYPE).

          xylon,layer-alpha-mode:
            enum:
              # Alpha is configured layer-wide (C_LAYER_X_ALPHA_MODE == 0)
              - layer
              # Alpha is configured per-pixel (C_LAYER_X_ALPHA_MODE == 1)
              - pixel
            description: Alpha mode for the layer (C_LAYER_X_ALPHA_MODE).

          xylon,layer-base-offset:
            $ref: /schemas/types.yaml#/definitions/uint32
            description: |
              Offset in number of lines (C_LAYER_X_OFFSET) starting from the
              video RAM base (C_VMEM_BASEADDR), only for version 3.

          xylon,layer-buffer-offset:
            $ref: /schemas/types.yaml#/definitions/uint32
            description: |
              Offset in number of lines (C_BUFFER_*_OFFSET) starting from the
              layer base offset for the second buffer used in double-buffering.

          xylon,layer-primary:
            $ref: /schemas/types.yaml#/definitions/flag
            description: |
              Layer should be registered as a primary plane (exactly one is
              required).

        additionalProperties: false

        required:
          - reg
          - xylon,layer-depth
          - xylon,layer-colorspace
          - xylon,layer-alpha-mode

    required:
      - "#address-cells"
      - "#size-cells"
      - layer@0

    additionalProperties: false

    description: |
      The description of the display controller layers, containing layer
      sub-nodes that each describe a registered layer.

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description: |
      Video output port, typically connected to a panel or bridge.

additionalProperties: false

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts
  - xylon,display-interface
  - xylon,display-colorspace
  - xylon,display-depth
  - xylon,row-stride
  - layers
  - port

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

    logicvc: logicvc@43c00000 {
      compatible = "xylon,logicvc-3.02.a", "syscon", "simple-mfd";
      reg = <0x43c00000 0x6000>;

      #address-cells = <1>;
      #size-cells = <1>;

      logicvc_display: display@0 {
        compatible = "xylon,logicvc-3.02.a-display";
        reg = <0x0 0x6000>;

        memory-region = <&logicvc_cma>;

        clocks = <&logicvc_vclk 0>, <&logicvc_lvdsclk 0>;
        clock-names = "vclk", "lvdsclk";

        interrupt-parent = <&intc>;
        interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;

        xylon,display-interface = "lvds-4bits";
        xylon,display-colorspace = "rgb";
        xylon,display-depth = <16>;
        xylon,row-stride = <1024>;

        xylon,layers-configurable;

        layers {
          #address-cells = <1>;
          #size-cells = <0>;

          layer@0 {
            reg = <0>;
            xylon,layer-depth = <16>;
            xylon,layer-colorspace = "rgb";
            xylon,layer-alpha-mode = "layer";
            xylon,layer-base-offset = <0>;
            xylon,layer-buffer-offset = <480>;
            xylon,layer-primary;
          };

          layer@1 {
            reg = <1>;
            xylon,layer-depth = <16>;
            xylon,layer-colorspace = "rgb";
            xylon,layer-alpha-mode = "layer";
            xylon,layer-base-offset = <2400>;
            xylon,layer-buffer-offset = <480>;
          };

          layer@2 {
            reg = <2>;
            xylon,layer-depth = <16>;
            xylon,layer-colorspace = "rgb";
            xylon,layer-alpha-mode = "layer";
            xylon,layer-base-offset = <960>;
            xylon,layer-buffer-offset = <480>;
          };

          layer@3 {
            reg = <3>;
            xylon,layer-depth = <16>;
            xylon,layer-colorspace = "rgb";
            xylon,layer-alpha-mode = "layer";
            xylon,layer-base-offset = <480>;
            xylon,layer-buffer-offset = <480>;
          };

          layer@4 {
            reg = <4>;
            xylon,layer-depth = <16>;
            xylon,layer-colorspace = "rgb";
            xylon,layer-alpha-mode = "layer";
            xylon,layer-base-offset = <8192>;
            xylon,layer-buffer-offset = <480>;
          };
        };

        port {
          #address-cells = <1>;
          #size-cells = <0>;

          logicvc_output: endpoint@0 {
            reg = <0>;
            remote-endpoint = <&panel_input>;
          };
        };
      };
    };
