# Copyright (c) 2018, Jan Van Winkel <jan.van_winkel@dxplore.eu>
# Copyright (c) 2020, Teslabs Engineering S.L.
# Copyright (c) 2021, Krivorot Oleg <krivorot.oleg@gmail.com>
# SPDX-License-Identifier: Apache-2.0

description: ILI9341 320x240 display controller

compatible: "ilitek,ili9341"

include: ilitek,ili9xxx-common.yaml

properties:
    pwctrla:
      type: uint8-array
      default: [0x39, 0x2c, 0x00, 0x34, 0x02]
      description:
        Power control A (PWCTRLA) register value.

    pwctrlb:
      type: uint8-array
      default: [0x00, 0x8b, 0x30]
      description:
        Power control B (PWCTRLB) register value.

    pwseqctrl:
      type: uint8-array
      default: [0x55, 0x01, 0x23, 0x01]
      description:
        Power on sequence control (PWSEQCTRL) register value.

    timctrla:
      type: uint8-array
      default: [0x84, 0x11, 0x7a]
      description:
        Driver timing control A (TIMCTRLA) register value.

    timctrlb:
      type: uint8-array
      default: [0x00, 0x00]
      description:
        Driver timing control B (TIMCTRLB) register value.

    pumpratioctrl:
      type: uint8-array
      default: [0x10]
      description:
        Pump ratio control (PUMPRATIOCTRL) register value.

    enable3g:
      type: uint8-array
      default: [0x02]
      description:
        Enable 3G (ENABLE3G) register value.

    etmod:
      type: uint8-array
      default: [ 0x06 ]
      description:
        Entry Mode Set (ETMOD) register value.

    gamset:
      type: uint8-array
      default: [0x01]
      description:
        Gamma set (GAMSET) register value.

    frmctr1:
      type: uint8-array
      default: [0x00, 0x1b]
      description:
        Frame rate control (in normal mode / full colors) (FRMCTR1) register value.

    disctrl:
      type: uint8-array
      default: [0x0a, 0x82, 0x27]
      description:
        Display function control (DISCTRL) register value. Note that changing
        default SS bit value (0) may interfere with display rotation.

    pwctrl1:
      type: uint8-array
      default: [0x21]
      description:
        Power control 1 (PWCTRL1) register values.

    pwctrl2:
      type: uint8-array
      default: [0x10]
      description:
        Power control 2 (PWCTRL2) register values.

    vmctrl1:
      type: uint8-array
      default: [0x31, 0x3c]
      description:
        VCOM control 1 (VMCTRL1) register values.

    vmctrl2:
      type: uint8-array
      default: [0xc0]
      description:
        VCOM control 2 (VMCTRL2) register values.

    pgamctrl:
      type: uint8-array
      default: [
        0x0f,
        0x22,
        0x1f,
        0x0a,
        0x0e,
        0x06,
        0x4d,
        0x76,
        0x3b,
        0x03,
        0x0e,
        0x04,
        0x13,
        0x0e,
        0x0c
      ]
      description:
        Positive gamma correction (PGAMCTRL) register values.

    ngamctrl:
      type: uint8-array
      default: [
        0x0c,
        0x23,
        0x26,
        0x04,
        0x10,
        0x04,
        0x39,
        0x24,
        0x4b,
        0x03,
        0x0b,
        0x0b,
        0x33,
        0x37,
        0x0f
      ]
      description:
        Negative gamma correction (NGAMCTRL) register values.
