# 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_CS_WAIT_DELAY
	int "Delay time in us"
	default 0
	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
