# Copyright (c) 2022 Andreas Sandberg
# Copyright (c) 2020, Phytec Messtechnik GmbH
# Copyright 2024 NXP
# SPDX-License-Identifier: Apache-2.0

description: UltraChip UC81xx EPD display controller common properties

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

properties:
  busy-gpios:
    type: phandle-array
    required: true
    description: BUSY pin.

      The BUSY pin of UC81xx is active low.
      If connected directly the MCU pin should be configured
      as active low.

  softstart:
    type: uint8-array
    description: Booster Soft Start (BTST) values

child-binding:
  description: |
    Child nodes describe refresh profiles. Each refresh profile
    specifies a set of voltages used to drive the refresh
    cycle. Refresh nodes are optional and are used to override
    defaults loaded from the controllers OTP memory.

    The partial refresh profile is used when performing a partial
    refresh (writes while blanking is off). Since the controller
    always supports partial updates, the driver uses the full refresh
    profile and scans the partial window corresponding to the write if
    no partial profile has been provided. An empty profile can be used
    to use the reset values from OTP instead of the values specified
    in the full profile.

    The driver typically looks for the following child nodes:

      - 'full' - Normal / full refresh.
      - 'partial' - Partial refresh, defaults to the values in the
        full profile if not present.

  properties:
    pwr:
      type: uint8-array
      description: Power Setting (PWR) values

    cdi:
      type: int
      description: |
        VCOM and data interval value. This value is optional but must
        be provided to enable border refresh control.

    tcon:
      type: int
      description: TCON setting value

    pll:
      type: int
      description: PLL / frame rate control

    vdcs:
      type: int
      description: VCOM DC settings

    lutc:
      type: uint8-array
      description: VCOM LUT

    lutww:
      type: uint8-array
      description: White-to-white LUT

    lutkw:
      type: uint8-array
      description: Black-to-white LUT

    lutwk:
      type: uint8-array
      description: White-to-black LUT

    lutkk:
      type: uint8-array
      description: White-to-black LUT

    lutbd:
      type: uint8-array
      description: Border LUT
