From be55ea7869daa1a2ebbe3015e8a812261c7440af Mon Sep 17 00:00:00 2001 From: Radek Pesina Date: Fri, 5 May 2023 10:23:32 +1000 Subject: [PATCH] spitool: add support for 32-bit SPI BUS width Link: https://git.motec.com.au/id/I62920d28ab9804d52d25af3bcdd0f1ceb87be93f --- system/spi/spi_common.c | 2 +- system/spi/spi_exch.c | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/system/spi/spi_common.c b/system/spi/spi_common.c index 0f9cc4dba..906b4d1f0 100644 --- a/system/spi/spi_common.c +++ b/system/spi/spi_common.c @@ -192,7 +192,7 @@ int spitool_common_args(FAR struct spitool_s *spitool, FAR char **arg) case 'w': ret = arg_decimal(arg, &value); - if (value != 8 && value != 16) + if (value != 8 && value != 16 && value != 32) { goto out_of_range; } diff --git a/system/spi/spi_exch.c b/system/spi/spi_exch.c index 4d8d10c8f..31db5d83e 100644 --- a/system/spi/spi_exch.c +++ b/system/spi/spi_exch.c @@ -124,10 +124,14 @@ int spicmd_exch(FAR struct spitool_s *spitool, int argc, FAR char **argv) { spitool_printf(spitool, "%02X ", txdata[d]); } - else + else if (spitool->width <= 16) { spitool_printf(spitool, "%04X ", ((uint16_t *)txdata)[d]); } + else + { + spitool_printf(spitool, "%08" PRIX32 " ", ((uint32_t *)txdata)[d]); + } } spitool_printf(spitool, "\n"); @@ -175,10 +179,14 @@ int spicmd_exch(FAR struct spitool_s *spitool, int argc, FAR char **argv) { spitool_printf(spitool, "%02X ", rxdata[d]); } - else + else if (spitool->width <= 16) { spitool_printf(spitool, "%04X ", ((uint16_t *)rxdata)[d]); } + else + { + spitool_printf(spitool, "%08" PRIX32 " ", ((uint32_t *)rxdata)[d]); + } } spitool_printf(spitool, "\n");