# Copyright (c) 2018, Google LLC.
# Copyright (c) 2022, Microchip Technology Inc.
# SPDX-License-Identifier: Apache-2.0

description: Microchip XEC QMSPI controller V2

include: [spi-controller.yaml, pinctrl-device.yaml]

properties:
  reg:
    required: true

  girqs:
    type: array
    required: true
    description: |
      An array of integers encoding each interrupt signal connection.
      This information includes the aggregated GIRQ number, GIRQ bit
      position, aggregated GIRQ NVIC connection, and direct NVIC
      connection of the GIRQ bit.

  pcrs:
    type: array
    required: true
    description: |
      A two entry integer array containing the QMSPI PCR sleep register
      index and bit position.

  pinctrl-0:
    required: true

  pinctrl-names:
    required: true

  lines:
    type: int
    description: |
      QMSPI data lines 1, 2, or 4. 1 data line is full-duplex
      MOSI and MISO or half-duplex on MOSI only. Lines set to 2
      or 4 indicate dual or quad I/O modes.
      Defaults to 1 for full duplex driver's support for full-duplex spi.
    enum:
      - 1
      - 2
      - 4

  port-sel:
    type: int
    description: |
      SPI Port 0, 1, or 2. Port 0 is the shared SPI, port 1 is
      the private SPI, and port 2 is the internal SPI port for
      chip configurations with an embedded SPI flash. Defaults
      to port 0 (shared SPI port).

  chip-select:
    type: int
    description: |
      Use QMSPI CS0# or CS1#. Port 0 supports both chip selects.
      Ports 1 and 2 implement CS0# only. Defaults to CS0#.

  dcsckon:
    type: int
    description: |
      Delay in QMSPI main clocks from CS# assertion to first clock edge.
      If not present use hardware default value. Refer to chip documention
      for QMSPI input clock frequency.

  dckcsoff:
    type: int
    description: |
      Delay in QMSPI main clocks from last clock edge to CS# de-assertion.
      If not presetn use hardware default value. Refer to chip documention
      for QMSPI input clock frequency.

  dldh:
    type: int
    description: |
      Delay in QMSPI main clocks from CS# de-assertion to driving HOLD#
      and WP#. If not present use hardware default value. Refer to chip
      documention for QMSPI input clock frequency.

  dcsda:
    type: int
    description: |
      Delay in QMSPI main clocks from CS# de-assertion to CS# assertion.
      If not present use hardware default value. Refer to chip documention
      for QMSPI input clock frequency.

  cs1-freq:
    type: int
    description: |
      Allows different frequencies for CS#0 and CS1# devices. This applies
      to ports implementing CS1#.

  tctradj:
    type: int
    description: |
      An optional signed 8-bit value for adjusting the QMSPI control signal
      timing tap.

  tsckadj:
    type: int
    description: |
      An optional signed 8-bit value for adjusting the QMSPI clock signal
      timing tap.
