# Copyright (c) 2018, Phytec Messtechnik GmbH
# SPDX-License-Identifier: Apache-2.0

include: display-controller.yaml

properties:
    segment-offset:
      type: int
      required: true
      description: 8-bit column start address for Page Addressing Mode

    page-offset:
      type: int
      required: true
      description: Start address for Page Addressing Mode

    display-offset:
      type: int
      required: true
      description: mapping of the display start line to one of COM0 .. COM63

    multiplex-ratio:
      type: int
      required: true
      description: Multiplex Ratio

    segment-remap:
      type: boolean
      required: false
      description: Last column address is mapped to first segment

    com-invdir:
      type: boolean
      required: false
      description: Scan direction is from last COM output to first COM output

    com-sequential:
      type: boolean
      required: false
      description: Sequential COM pin configuration

    prechargep:
      type: int
      required: true
      description: Duration of the pre-charge period

    reset-gpios:
      type: phandle-array
      required: false
      description: RESET pin.

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