# Copyright (c) 2023 Mr Beam Lasers GmbH.
# Copyright (c) 2023 Amrith Venkat Kesavamoorthi <amrith@mr-beam.org>
# Copyright (c) 2023 Martin Kiepfer <mrmarteng@teleschirm.org>
# SPDX-License-Identifier: Apache-2.0

description: |
  GC9X01X display driver.

  This driver implements support for various GC9X01X graphics
  controllers and different display sizes. It has been validated
  for following controllers:
   - GC9101A: (Waveshare 240x240, 1.28inch round lcd display 240x240)

  Here is an example to define a display interface:

  &spi2 {
    gc9a01a_lcd: gc9a01a_lcd@0 {
      compatible = "galaxycore,gc9x01x";
      reg = <0>;
      spi-max-frequency = <100000000>;
      cmd-data-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
      reset-gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
      pixel-format = <PANEL_PIXEL_FORMAT_RGB_565>;
      width = <240>;
      height = <240>;
    };
  };


compatible: "galaxycore,gc9x01x"

include: [spi-device.yaml, display-controller.yaml, lcd-controller.yaml]

properties:
  reset-gpios:
    type: phandle-array
    required: true
    description: |
      RESET pin of the GC9X01X.
      If connected directly the MCU pin should be configured
      as active low.

  cmd-data-gpios:
    type: phandle-array
    required: true
    description: |
      Data/Command pin of the GC9X01X is to be configured
      high(1) for data, low(0) for command.

  orientation:
    type: string
    default: "normal"
    enum:
      - "normal"
      - "90"
      - "180"
      - "270"
    description: Display orientation (CW) in degrees.

  display-inversion:
    type: boolean
    description: |
      Display inversion mode. Every bit is inverted from the frame memory to
      the display.

  pwrctrl1:
    type: uint8-array
    default: [
      0x00
    ]
    description: Power-control 1 register value

  pwrctrl2:
    type: uint8-array
    default: [
      0x13
    ]
    description: Power-control 2 register value

  pwrctrl3:
    type: uint8-array
    default: [
      0x13
    ]
    description: Power-control 3 register value

  pwrctrl4:
    type: uint8-array
    default: [
      0x22
    ]
    description: Power-control 4 register value

  gamma1:
    type: uint8-array
    default: [
      0x45,
      0x09,
      0x08,
      0x08,
      0x26,
      0x2A
    ]
    description: Gamma correction 1 register values (negative polarity)

  gamma2:
    type: uint8-array
    default: [
      0x43,
      0x70,
      0x72,
      0x36,
      0x37,
      0x6F
    ]
    description: Gamma correction 3 register values

  gamma3:
    type: uint8-array
    default: [
      0x45,
      0x09,
      0x08,
      0x08,
      0x26,
      0x2A
    ]
    description: Gamma correction 3 register values (positive polarity)

  gamma4:
    type: uint8-array
    default: [
      0x43,
      0x70,
      0x72,
      0x36,
      0x37,
      0x6F
    ]
    description: Gamma correction 4 register values

  framerate:
    type: uint8-array
    default: [
      0x34
    ]
    description: Framerate register value
