diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index 2015ac9ea34..0467ae98a76 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig @@ -1165,6 +1165,38 @@ config GD25_SLOWREAD bool default n +config GD25_START_DELAY + int "GD25 startdelay" + ---help--- + The delay between CS active and first CLK. In ns. + depends on SPI_DELAY_CONTROL + range 0 1000000 + default 5000 + +config GD25_STOP_DELAY + int "GD25 stopdelay" + ---help--- + The delay between last CLK and CS inactive. In ns. + depends on SPI_DELAY_CONTROL + range 0 1000000 + default 5000 + +config GD25_CS_DELAY + int "GD25 csdelay" + ---help--- + The delay between CS inactive and CS active again. In ns. + depends on SPI_DELAY_CONTROL + range 0 1000000 + default 5000 + +config GD25_IFDELAY + int "GD25 ifdelay" + ---help--- + The delay between frames. In ns. + depends on SPI_DELAY_CONTROL + range 0 1000000 + default 5000 + endif # MTD_GD25 config MTD_GD5F diff --git a/drivers/mtd/gd25.c b/drivers/mtd/gd25.c index 01f5a346c4a..5e599f749ed 100644 --- a/drivers/mtd/gd25.c +++ b/drivers/mtd/gd25.c @@ -230,6 +230,10 @@ static void gd25_lock(FAR struct spi_dev_s *spi) SPI_SETBITS(spi, 8); SPI_HWFEATURES(spi, 0); SPI_SETFREQUENCY(spi, CONFIG_GD25_SPIFREQUENCY); +#ifdef CONFIG_SPI_DELAY_CONTROL + SPI_SETDELAY(spi, CONFIG_GD25_START_DELAY, CONFIG_GD25_STOP_DELAY, + CONFIG_GD25_CS_DELAY, CONFIG_GD25_IFDELAY); +#endif } /***************************************************************************