# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/sitronix,st7571.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Sitronix ST7571 Display Controller

maintainers:
  - Marcus Folkesson <marcus.folkesson@gmail.com>

description:
  Sitronix ST7571 is a driver and controller for 4-level gray
  scale and monochrome dot matrix LCD panels.

allOf:
  - $ref: panel/panel-common.yaml#

properties:
  compatible:
    const: sitronix,st7571

  reg:
    maxItems: 1

  sitronix,grayscale:
    type: boolean
    description:
      Display supports 4-level grayscale.

  sitronix,inverted:
    type: boolean
    description:
      Display pixels are inverted, i.e. 0 is white and 1 is black.

  reset-gpios: true
  width-mm: true
  height-mm: true
  panel-timing: true

required:
  - compatible
  - reg
  - reset-gpios
  - width-mm
  - height-mm
  - panel-timing

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

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

      display@3f {
        compatible = "sitronix,st7571";
        reg = <0x3f>;
        reset-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
        width-mm = <37>;
        height-mm = <27>;

        panel-timing {
          hactive = <128>;
          vactive = <96>;
          hback-porch = <0>;
          vback-porch = <0>;
          clock-frequency = <0>;
          hfront-porch = <0>;
          hsync-len = <0>;
          vfront-porch = <0>;
          vsync-len = <0>;
        };
      };
    };

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

      display@0 {
        compatible = "sitronix,st7571";
        reg = <0>;
        reset-gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
        width-mm = <37>;
        height-mm = <27>;

        panel-timing {
          hactive = <128>;
          vactive = <96>;
          hback-porch = <0>;
          vback-porch = <0>;
          clock-frequency = <0>;
          hfront-porch = <0>;
          hsync-len = <0>;
          vfront-porch = <0>;
          vsync-len = <0>;
        };
      };
    };
