# Copyright (c) 2018 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

menuconfig SPI_FLASH_W25QXXDV
	bool "SPI NOR Flash Winbond W25QXXDV"
	select FLASH_HAS_DRIVER_ENABLED
	depends on SPI

if SPI_FLASH_W25QXXDV

config SPI_FLASH_W25QXXDV_DRV_NAME
	string "SPI flash device name"
	default "W25QXXDV"

config SPI_FLASH_W25QXXDV_INIT_PRIORITY
	int
	default 80
	help
	  Device driver initialization priority.
	  Device is connected to SPI bus, it has to
	  be initialized after SPI driver.

config SPI_FLASH_W25QXXDV_GPIO_SPI_CS
	bool "Manage SPI CS through a GPIO pin"
	help
	  This option is useful if one needs to manage SPI CS through a GPIO
	  pin to by-pass the SPI controller's CS logic.

config SPI_FLASH_W25QXXDV_GPIO_CS_WAIT_DELAY
	int "Delay time in us"
	default 0
	depends on SPI_FLASH_W25QXXDV_GPIO_SPI_CS
	help
	  This is the wait delay (in us) to allow for CS switching to take effect

config SPI_FLASH_W25QXXDV_FLASH_SIZE
	int "Flash size in bytes"
	default 2097152
	help
	  This is the flash capacity in bytes.

config SPI_FLASH_W25QXXDV_DEVICE_ID
	hex "Device ID in hex"
	default 0x00ef4015
	help
	  This is the device ID of the flash chip to use, which is 0x00ef4015 for
	  the W25QXXDV

config SPI_FLASH_W25QXXDV_PAGE_PROGRAM_SIZE
	int "Page Program Size in bytes"
	default 256
	help
	  This is the maximum size of a page program operation. Writing data
	  over this page boundary will split the write operation into two
	  pages.

endif # SPI_FLASH_W25QXXDV
