This is an automated email from the ASF dual-hosted git repository.

jerzy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git


The following commit(s) were added to refs/heads/master by this push:
     new 0fe8c1b71 hw/drivers/flash/spiflash: Make SPI mode configurable
0fe8c1b71 is described below

commit 0fe8c1b712d1b2ae3e4e6129e7d61146a668a553
Author: Jerzy Kasenberg <[email protected]>
AuthorDate: Fri Jul 14 08:46:16 2023 +0200

    hw/drivers/flash/spiflash: Make SPI mode configurable
    
    SPI mode for hardcoded to HAL_SPI_MODE3, most SPI flashes
    also support HAL_SPI_MODE0.
    Now user can specify which mode to use.
    
    Signed-off-by: Jerzy Kasenberg <[email protected]>
---
 hw/bsp/black_vet6/src/hal_bsp.c          | 2 +-
 hw/bsp/hifive1/src/hal_bsp.c             | 2 +-
 hw/bsp/nucleo-h723zg/src/hal_bsp.c       | 2 +-
 hw/bsp/nucleo-l073rz/src/hal_bsp.c       | 2 +-
 hw/bsp/nucleo-u575zi-q/src/hal_bsp.c     | 2 +-
 hw/bsp/olimex-pic32-emz64/src/hal_bsp.c  | 2 +-
 hw/bsp/olimex-pic32-hmz144/src/hal_bsp.c | 2 +-
 hw/bsp/pinetime/src/hal_bsp.c            | 2 +-
 hw/drivers/flash/spiflash/src/spiflash.c | 2 +-
 hw/drivers/flash/spiflash/syscfg.yml     | 7 +++++++
 10 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/hw/bsp/black_vet6/src/hal_bsp.c b/hw/bsp/black_vet6/src/hal_bsp.c
index 28caccdc2..589b73d66 100644
--- a/hw/bsp/black_vet6/src/hal_bsp.c
+++ b/hw/bsp/black_vet6/src/hal_bsp.c
@@ -290,7 +290,7 @@ extern const struct hal_flash stm32_flash_dev;
 struct bus_spi_node_cfg flash_spi_cfg = {
     .node_cfg.bus_name = MYNEWT_VAL(BSP_FLASH_SPI_BUS),
     .pin_cs = MYNEWT_VAL(SPIFLASH_SPI_CS_PIN),
-    .mode = BUS_SPI_MODE_3,
+    .mode = MYNEWT_VAL(SPIFLASH_SPI_MODE),
     .data_order = HAL_SPI_MSB_FIRST,
     .freq = MYNEWT_VAL(SPIFLASH_BAUDRATE),
 };
diff --git a/hw/bsp/hifive1/src/hal_bsp.c b/hw/bsp/hifive1/src/hal_bsp.c
index d3e64a980..e7b7de36a 100644
--- a/hw/bsp/hifive1/src/hal_bsp.c
+++ b/hw/bsp/hifive1/src/hal_bsp.c
@@ -47,7 +47,7 @@ static const struct hal_bsp_mem_dump dump_cfg[] = {
 struct bus_spi_node_cfg flash_spi_cfg = {
     .node_cfg.bus_name = MYNEWT_VAL(BSP_FLASH_SPI_BUS),
     .pin_cs = MYNEWT_VAL(SPIFLASH_SPI_CS_PIN),
-    .mode = BUS_SPI_MODE_3,
+    .mode = MYNEWT_VAL(SPIFLASH_SPI_MODE),
     .data_order = HAL_SPI_MSB_FIRST,
     .freq = MYNEWT_VAL(SPIFLASH_BAUDRATE),
 };
diff --git a/hw/bsp/nucleo-h723zg/src/hal_bsp.c 
b/hw/bsp/nucleo-h723zg/src/hal_bsp.c
index 65f213d9b..130d3293b 100644
--- a/hw/bsp/nucleo-h723zg/src/hal_bsp.c
+++ b/hw/bsp/nucleo-h723zg/src/hal_bsp.c
@@ -204,7 +204,7 @@ extern const struct hal_flash stm32_flash_dev;
 struct bus_spi_node_cfg flash_spi_cfg = {
     .node_cfg.bus_name = MYNEWT_VAL(BSP_FLASH_SPI_BUS),
     .pin_cs = MYNEWT_VAL(SPIFLASH_SPI_CS_PIN),
-    .mode = BUS_SPI_MODE_0,
+    .mode = MYNEWT_VAL(SPIFLASH_SPI_MODE),
     .data_order = HAL_SPI_MSB_FIRST,
     .freq = MYNEWT_VAL(SPIFLASH_BAUDRATE),
 };
diff --git a/hw/bsp/nucleo-l073rz/src/hal_bsp.c 
b/hw/bsp/nucleo-l073rz/src/hal_bsp.c
index 198874d67..d9f07db3b 100644
--- a/hw/bsp/nucleo-l073rz/src/hal_bsp.c
+++ b/hw/bsp/nucleo-l073rz/src/hal_bsp.c
@@ -116,7 +116,7 @@ extern const struct hal_flash stm32_flash_dev;
 struct bus_spi_node_cfg flash_spi_cfg = {
     .node_cfg.bus_name = MYNEWT_VAL(BSP_FLASH_SPI_BUS),
     .pin_cs = MYNEWT_VAL(SPIFLASH_SPI_CS_PIN),
-    .mode = BUS_SPI_MODE_3,
+    .mode = MYNEWT_VAL(SPIFLASH_SPI_MODE),
     .data_order = HAL_SPI_MSB_FIRST,
     .freq = MYNEWT_VAL(SPIFLASH_BAUDRATE),
 };
diff --git a/hw/bsp/nucleo-u575zi-q/src/hal_bsp.c 
b/hw/bsp/nucleo-u575zi-q/src/hal_bsp.c
index 802edb1af..6982e3fe5 100644
--- a/hw/bsp/nucleo-u575zi-q/src/hal_bsp.c
+++ b/hw/bsp/nucleo-u575zi-q/src/hal_bsp.c
@@ -154,7 +154,7 @@ extern const struct hal_flash stm32_flash_dev;
 struct bus_spi_node_cfg flash_spi_cfg = {
     .node_cfg.bus_name = MYNEWT_VAL(BSP_FLASH_SPI_BUS),
     .pin_cs = MYNEWT_VAL(SPIFLASH_SPI_CS_PIN),
-    .mode = BUS_SPI_MODE_0,
+    .mode = MYNEWT_VAL(SPIFLASH_SPI_MODE),
     .data_order = HAL_SPI_MSB_FIRST,
     .freq = MYNEWT_VAL(SPIFLASH_BAUDRATE),
 };
diff --git a/hw/bsp/olimex-pic32-emz64/src/hal_bsp.c 
b/hw/bsp/olimex-pic32-emz64/src/hal_bsp.c
index 7ee78b87a..b22777c23 100644
--- a/hw/bsp/olimex-pic32-emz64/src/hal_bsp.c
+++ b/hw/bsp/olimex-pic32-emz64/src/hal_bsp.c
@@ -97,7 +97,7 @@
 struct bus_spi_node_cfg flash_spi_cfg = {
     .node_cfg.bus_name = MYNEWT_VAL(BSP_FLASH_SPI_BUS),
     .pin_cs = MYNEWT_VAL(SPIFLASH_SPI_CS_PIN),
-    .mode = BUS_SPI_MODE_3,
+    .mode = MYNEWT_VAL(SPIFLASH_SPI_MODE),
     .data_order = HAL_SPI_MSB_FIRST,
     .freq = MYNEWT_VAL(SPIFLASH_BAUDRATE),
 };
diff --git a/hw/bsp/olimex-pic32-hmz144/src/hal_bsp.c 
b/hw/bsp/olimex-pic32-hmz144/src/hal_bsp.c
index 897304448..b1db84106 100644
--- a/hw/bsp/olimex-pic32-hmz144/src/hal_bsp.c
+++ b/hw/bsp/olimex-pic32-hmz144/src/hal_bsp.c
@@ -96,7 +96,7 @@
 struct bus_spi_node_cfg flash_spi_cfg = {
     .node_cfg.bus_name = MYNEWT_VAL(BSP_FLASH_SPI_BUS),
     .pin_cs = MYNEWT_VAL(SPIFLASH_SPI_CS_PIN),
-    .mode = BUS_SPI_MODE_3,
+    .mode = MYNEWT_VAL(SPIFLASH_SPI_MODE),
     .data_order = HAL_SPI_MSB_FIRST,
     .freq = MYNEWT_VAL(SPIFLASH_BAUDRATE),
 };
diff --git a/hw/bsp/pinetime/src/hal_bsp.c b/hw/bsp/pinetime/src/hal_bsp.c
index 195f2d221..723916cb7 100644
--- a/hw/bsp/pinetime/src/hal_bsp.c
+++ b/hw/bsp/pinetime/src/hal_bsp.c
@@ -61,7 +61,7 @@ hal_bsp_core_dump(int *area_cnt)
 struct bus_spi_node_cfg flash_spi_cfg = {
     .node_cfg.bus_name = MYNEWT_VAL(BSP_FLASH_SPI_BUS),
     .pin_cs = MYNEWT_VAL(SPIFLASH_SPI_CS_PIN),
-    .mode = BUS_SPI_MODE_3,
+    .mode = MYNEWT_VAL(SPIFLASH_SPI_MODE),
     .data_order = HAL_SPI_MSB_FIRST,
     .freq = MYNEWT_VAL(SPIFLASH_BAUDRATE),
 };
diff --git a/hw/drivers/flash/spiflash/src/spiflash.c 
b/hw/drivers/flash/spiflash/src/spiflash.c
index 4a59ee0e6..5ed115d24 100644
--- a/hw/drivers/flash/spiflash/src/spiflash.c
+++ b/hw/drivers/flash/spiflash/src/spiflash.c
@@ -655,7 +655,7 @@ struct spiflash_dev spiflash_dev = {
     /* SPI settings */
     .spi_settings = {
         .data_order = HAL_SPI_MSB_FIRST,
-        .data_mode  = HAL_SPI_MODE3,
+        .data_mode  = MYNEWT_VAL(SPIFLASH_SPI_MODE),
         .baudrate   = MYNEWT_VAL(SPIFLASH_BAUDRATE),
         .word_size  = HAL_SPI_WORD_SIZE_8BIT,
     },
diff --git a/hw/drivers/flash/spiflash/syscfg.yml 
b/hw/drivers/flash/spiflash/syscfg.yml
index 205fb3f6a..5d0b19003 100644
--- a/hw/drivers/flash/spiflash/syscfg.yml
+++ b/hw/drivers/flash/spiflash/syscfg.yml
@@ -28,6 +28,13 @@ syscfg.defs:
         description: 'SPI interface CS pin'
         value:  -1
 
+    SPIFLASH_SPI_MODE:
+        description: >
+            SPI clock mode. Most devices support HAL_SPI_MODE0 (clock low when 
idle,
+            first edge latches data) and HAL_SPI_MODE3 (clock high when idle,
+            second clock edge latches data).
+        value: HAL_SPI_MODE3
+
     SPIFLASH_SECTOR_COUNT:
         description: 'Number of sectors'
         value:  0

Reply via email to