# Copyright (c) 2023 Renesas Electronics Corporation # SPDX-License-Identifier: Apache-2.0 description: Renesas Smartbond(tm) NOR/PSRAM controller include: base.yaml compatible: "renesas,smartbond-nor-psram" properties: reg: required: true is-ram: type: boolean description: | If present, the memory controller will be configured to drive PSRAM devices. dev-size: type: int required: true description: | Memory size/capacity in bits. dev-type: type: int required: true description: | Device type, part of device ID, used to verify the memory device used. dev-density: type: int required: true description: | Device density, part of device ID, used to verify the memory device used. [7:0] should reflect the density value itself and [15:8] should reflect the mask that should be applied to the returned device ID value. This is because part of its byte value might contain invalid bits. dev-id: type: int required: true description: | Manufacturer ID, part of device ID, used to verify the memory device used. reset-delay-us: type: int required: true description: | Time in microseconds (us) the memory device can accept the next command following a SW reset. read-cs-idle-min-ns: type: int required: true description: | Min. time, in nanoseconds, the #CS line should remain inactive between the transmission of two different instructions. erase-cs-idle-min-ns: type: int description: | Min. time, in nanoseconds, the #CS line should remain inactive after the execution of a write enable, erase, erase suspend or erase resume instruction. This setting is not used if is-ram property is present. enter-qpi-cmd: type: int description: | Command to enter the QPI mode supported by a memory device (should be transmitted in single bus mode). exit-qpi-cmd: type: int description: | Command to exit the QPI mode supported by a memory device (should be transmitted in quad bus mode). enter-qpi-mode: type: boolean description: | If present, the memory device will enter the QPI mode which typically reflects that all bytes be sent in quad bus mode. It's a pre-requisite that read and write commands, that should be read-cmd and write-cmd respectively, reflect the QPI mode. read-cmd: type: int default: 0x03 description: | Read command for single/burst read accesses in auto mode. Default value is the opcode for single mode which is supported by all memory devices. write-cmd: type: int default: 0x02 description: | Write command for single/burst write accesses in auto mode. Default value is the opcode for single mode which is supported by all memory devices. clock-mode: type: string enum: - "spi-mode0" - "spi-mode3" default: "spi-mode0" description: | Clock mode when #CS is idle/inactive - Mode0: #CLK is low when #CS is inactive - Mode3: #CLK is high when #CS is inactive Mode0 is selected by default as it should be supported by all memory devices. addr-range: type: string enum: - "addr-range-24bit" - "addr-range-32bit" default: "addr-range-24bit" description: | Address size to use in auto mode. In 24-bit mode up to 16MB can be accessed whilst in 32-bit mode up to 32MB can be accessed which is the max. address space supported by QSPICx. Default value is 24-bit mode which is supported by all memory devices. clock-div: type: int description: | Clock divider for QSPIC2 controller. The clock path of this block is always DIV1 which reflects the current system clock. tcem-max-us: type: int description: | If a non zero value is applied, then Tcem should be taken into consideration by QSPIC2 so that it can split a burst read/write access in case the total time exceeds the defined value (at the cost of extra cycles required for re-sending the instruction, address and dummy bytes, if any). This setting is meaningful only if is-ram is present. This value reflects the max. time in microseconds the #CS line can be driven low in a write/read burst access (required for the auto-refresh mechanism, when supported). dummy-bytes-count: type: string required: true enum: - "dummy-bytes-count0" - "dummy-bytes-count1" - "dummy-bytes-count2" - "dummy-bytes-count4" description: | Number of dummy bytes to send for single/burst read access in auto mode. extra-byte-enable: type: boolean description: | If present, the extra byte will be sent after the dummy bytes, if any. This should be useful if 3 dummy bytes are required. In such a case, dummy-bytes-count should be set to 2. extra-byte: type: int description: | Extra byte to be sent, if extra-byte-enable is present. rx-addr-mode: type: string enum: - "single-spi" - "dual-spi" - "quad-spi" default: "single-spi" description: | Describes the mode of SPI bus during the address phase for single/burst read accesses in auto mode. Default value is single mode which should be supported by all memory devices. rx-inst-mode: type: string enum: - "single-spi" - "dual-spi" - "quad-spi" default: "single-spi" description: | Describes the mode of SPI bus during the instruction phase for single/burst read accesses in auto mode. Default value is single mode which should be supported by all memory devices. rx-data-mode: type: string enum: - "single-spi" - "dual-spi" - "quad-spi" default: "single-spi" description: | Describes the mode of SPI bus during the data phase for single/burst read accesses in auto mode. Default value is single mode which should be supported by all memory devices. rx-dummy-mode: type: string enum: - "single-spi" - "dual-spi" - "quad-spi" default: "single-spi" description: | Describes the mode of SPI bus during the dummy bytes phase for single/burst read accesses in auto mode. The single mode should be supported by all memory devices. rx-extra-mode: type: string enum: - "single-spi" - "dual-spi" - "quad-spi" description: | Describes the mode of SPI bus during the extra byte phase for single/burst read accesses in auto mode. Default value is single mode which should be supported by all memory devices. tx-addr-mode: type: string enum: - "single-spi" - "dual-spi" - "quad-spi" default: "single-spi" description: | Describes the mode of SPI bus during the address phase for single/burst write accesses in auto mode. Default value is single mode which should be supported by all memory devices. tx-inst-mode: type: string enum: - "single-spi" - "dual-spi" - "quad-spi" default: "single-spi" description: | Describes the mode of SPI bus during the instruction phase for single/burst write accesses in auto mode. The single mode should be supported by all memory devices. tx-data-mode: type: string enum: - "single-spi" - "dual-spi" - "quad-spi" default: "single-spi" description: | Describes the mode of SPI bus during the data phase for single/burst write accesses in auto mode. Default value is single mode which should be supported by all memory devices.