mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 06:11:06 +00:00 
			
		
		
		
	feat(spi_flash): Add config for adding auto check status after suspend to improve performance
This commit is contained in:
		@@ -239,13 +239,14 @@ static inline void spimem_flash_set_cs_hold_delay(spi_mem_dev_t *dev, uint32_t c
 | 
			
		||||
 * Initialize auto wait idle mode
 | 
			
		||||
 *
 | 
			
		||||
 * @param dev Beginning address of the peripheral registers.
 | 
			
		||||
 * @param auto_waiti Enable/disable auto wait-idle function
 | 
			
		||||
 * @param per_waiti Enable wait-idle with time delay function after resume.
 | 
			
		||||
 * @param pes_waiti Enable wait-idle with time delay function after suspend.
 | 
			
		||||
 */
 | 
			
		||||
static inline void spimem_flash_ll_auto_wait_idle_init(spi_mem_dev_t *dev, bool auto_waiti)
 | 
			
		||||
static inline void spimem_flash_ll_auto_wait_idle_init(spi_mem_dev_t *dev, bool per_waiti, bool pes_waiti)
 | 
			
		||||
{
 | 
			
		||||
    HAL_FORCE_MODIFY_U32_REG_FIELD(dev->flash_waiti_ctrl, waiti_cmd, 0x05);
 | 
			
		||||
    dev->flash_sus_ctrl.flash_per_wait_en = auto_waiti;
 | 
			
		||||
    dev->flash_sus_ctrl.flash_pes_wait_en = auto_waiti;
 | 
			
		||||
    dev->flash_sus_ctrl.flash_per_wait_en = per_waiti;
 | 
			
		||||
    dev->flash_sus_ctrl.flash_pes_wait_en = pes_waiti;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -521,11 +522,8 @@ static inline void spimem_flash_ll_set_mosi_bitlen(spi_mem_dev_t *dev, uint32_t
 | 
			
		||||
static inline void spimem_flash_ll_set_command(spi_mem_dev_t *dev, uint32_t command, uint32_t bitlen)
 | 
			
		||||
{
 | 
			
		||||
    dev->user.usr_command = 1;
 | 
			
		||||
    typeof(dev->user2) user2 = {
 | 
			
		||||
        .usr_command_value = command,
 | 
			
		||||
        .usr_command_bitlen = (bitlen - 1),
 | 
			
		||||
    };
 | 
			
		||||
    dev->user2.val = user2.val;
 | 
			
		||||
    HAL_FORCE_MODIFY_U32_REG_FIELD(dev->user2, usr_command_value, command);
 | 
			
		||||
    HAL_FORCE_MODIFY_U32_REG_FIELD(dev->user2, usr_command_bitlen, (bitlen - 1));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -561,7 +559,7 @@ static inline void spimem_flash_ll_set_addr_bitlen(spi_mem_dev_t *dev, uint32_t
 | 
			
		||||
static inline void spimem_flash_ll_set_extra_address(spi_mem_dev_t *dev, uint32_t extra_addr)
 | 
			
		||||
{
 | 
			
		||||
    dev->cache_fctrl.usr_addr_4byte = 0;
 | 
			
		||||
    dev->rd_status.wb_mode = extra_addr;
 | 
			
		||||
    HAL_FORCE_MODIFY_U32_REG_FIELD(dev->rd_status, wb_mode, extra_addr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user