# Copyright (c) 2018 Peter Bigot Consulting, LLC
# SPDX-License-Identifier: Apache-2.0

description: SPI NOR flash that supports the JEDEC CFI interface

compatible: "jedec,spi-nor"

include: spi-device.yaml

properties:
  jedec-id:
    type: uint8-array
    required: true
    description: JEDEC ID as manufacturer ID, memory type, memory density

  has-be32k:
    type: boolean
    required: false
    description: Indicates the device supports the BE32K (0xD8) command

  requires-ulbpr:
    type: boolean
    required: false
    description: |
      Indicates the device requires the ULBPR (0x98) command.

      Some flash chips such as the Microchip SST26VF series have a block
      protection register that initializes to write-protected.  Use this
      property to indicate that the BPR must be unlocked before write
      operations can proceed.

  has-dpd:
    type: boolean
    required: false
    description: |
      Indicates the device supports the DPD (0xB9) command.

      Use this property to indicate the flash chip supports the Deep
      Power-Down mode that is entered by command 0xB9 to reduce power
      consumption below normal standby levels.  Use of this property
      implies that the RDPD (0xAB) Release from Deep Power Down command
      is also supported.  (On some chips this command functions as Read
      Electronic Signature; see t-enter-dpd).

  dpd-wakeup-sequence:
    type: array
    required: false
    description: |
      Specifies wakeup durations for devices without RDPD.

      Some devices (Macronix MX25R in particular) wake from deep power
      down by a timed sequence of CSn toggles rather than the RDPD
      command.  This property specifies three durations measured in
      nanoseconds, in this order:
      (1) tDPDD (Delay Time for Release from Deep Power-Down Mode)
      (2) tCDRP (CSn Toggling Time before Release from Deep Power-Down Mode)
      (3) tRDP (Recovery Time for Release from Deep Power-Down Mode)

      Absence of this property indicates that the RDPD command should be
      used to wake the chip from Deep Power-Down mode.

  t-enter-dpd:
    type: int
    required: false
    description: |
      Duration required to complete the DPD command.

      This provides the duration, in nanoseconds, that CSn must be
      remain deasserted after issuing DPD before the chip will enter
      deep power down.

      If not provided the driver does not enforce a delay.

  t-exit-dpd:
    type: int
    required: false
    description: |
      Duration required to complete the RDPD command.

      This provides the duration, in nanoseconds, that CSn must be
      remain deasserted after issuing RDPD before the chip will exit
      deep power down and be ready to receive additional commands.

      If not provided the driver does not enforce a delay.

  size:
    type: int
    required: true
    description: flash capacity in bits

  wp-gpios:
    type: phandle-array
    required: false
    description: WPn pin
  hold-gpios:
    type: phandle-array
    required: false
    description: HOLDn pin
  reset-gpios:
    type: phandle-array
    required: false
    description: RESETn pin
