From 98bb3772e058f1200a95c1da734d240e61de49c0 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Wed, 5 Feb 2020 17:28:18 +0100 Subject: [PATCH] soc: spi_flash LL fixes --- components/soc/esp32s2/include/hal/spi_flash_ll.h | 2 +- components/soc/src/hal/spi_flash_hal_common.inc | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/components/soc/esp32s2/include/hal/spi_flash_ll.h b/components/soc/esp32s2/include/hal/spi_flash_ll.h index bc9e952005..79a83dc810 100644 --- a/components/soc/esp32s2/include/hal/spi_flash_ll.h +++ b/components/soc/esp32s2/include/hal/spi_flash_ll.h @@ -83,7 +83,7 @@ typedef union { #define spi_flash_ll_set_mosi_bitlen(dev, bitlen) spimem_flash_ll_set_mosi_bitlen((spi_mem_dev_t*)dev, bitlen) #define spi_flash_ll_set_command8(dev, cmd) spimem_flash_ll_set_command8((spi_mem_dev_t*)dev, cmd) #define spi_flash_ll_set_addr_bitlen(dev, bitlen) spimem_flash_ll_set_addr_bitlen((spi_mem_dev_t*)dev, bitlen) -#define spi_flash_ll_get_addr_bitlen(dev) spimem_flash_ll_get_addr_bitlen(spi_mem_dev_t *dev) +#define spi_flash_ll_get_addr_bitlen(dev) spimem_flash_ll_get_addr_bitlen((spi_mem_dev_t*) dev) #define spi_flash_ll_set_address(dev, addr) spimem_flash_ll_set_address((spi_mem_dev_t*)dev, addr) #define spi_flash_ll_set_usr_address(dev, addr, bitlen) spimem_flash_ll_set_address((spi_mem_dev_t*)dev, addr) #define spi_flash_ll_set_dummy(dev, dummy) spimem_flash_ll_set_dummy((spi_mem_dev_t*)dev, dummy) diff --git a/components/soc/src/hal/spi_flash_hal_common.inc b/components/soc/src/hal/spi_flash_hal_common.inc index e2b47e1850..9bf06f31aa 100644 --- a/components/soc/src/hal/spi_flash_hal_common.inc +++ b/components/soc/src/hal/spi_flash_hal_common.inc @@ -93,7 +93,8 @@ esp_err_t spi_flash_hal_common_command(spi_flash_host_driver_t *host, spi_flash_ esp_err_t spi_flash_hal_read(spi_flash_host_driver_t *host, void *buffer, uint32_t address, uint32_t read_len) { spi_dev_t *dev = get_spi_dev(host); - spi_flash_ll_set_usr_address(dev, address, spi_flash_ll_get_addr_bitlen(dev)); + int bitlen = spi_flash_ll_get_addr_bitlen(dev); + spi_flash_ll_set_usr_address(dev, address << (bitlen - 24), bitlen); spi_flash_ll_set_miso_bitlen(dev, read_len * 8); spi_flash_ll_user_start(dev); host->poll_cmd_done(host);