From 5b88c8c207268cb74d5cc69654787d2c26c2f1a9 Mon Sep 17 00:00:00 2001 From: Chen Wang Date: Mon, 24 Mar 2025 10:16:32 +0800 Subject: [PATCH] bsp: cvitek: fix build warnings for spi See https://github.com/RT-Thread/rt-thread/issues/10138. Signed-off-by: Chen Wang --- bsp/cvitek/drivers/drv_spi.c | 17 ++++++++++------- bsp/cvitek/drivers/libraries/spi/dw_spi.c | 8 ++++++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/bsp/cvitek/drivers/drv_spi.c b/bsp/cvitek/drivers/drv_spi.c index 81c307ff1c..db082c3121 100644 --- a/bsp/cvitek/drivers/drv_spi.c +++ b/bsp/cvitek/drivers/drv_spi.c @@ -73,7 +73,6 @@ static rt_err_t spi_configure(struct rt_spi_device *device, struct rt_spi_config RT_ASSERT(device->bus->parent.user_data != RT_NULL); RT_ASSERT(cfg != RT_NULL); - rt_err_t ret = RT_EOK; struct _device_spi *spi = (struct _device_spi *)device->bus->parent.user_data; struct dw_spi *dws = &spi->dws; @@ -139,9 +138,6 @@ static rt_err_t spi_configure(struct rt_spi_device *device, struct rt_spi_config static rt_err_t dw_spi_transfer_one(struct dw_spi *dws, const void *tx_buf, void *rx_buf, uint32_t len, enum transfer_type tran_type) { - uint8_t imask = 0; - uint16_t txlevel = 0; - dws->tx = NULL; dws->tx_end = NULL; dws->rx = NULL; @@ -198,7 +194,7 @@ static rt_ssize_t spi_xfer(struct rt_spi_device *device, struct rt_spi_message * struct _device_spi *spi = (struct _device_spi *)device->bus->parent.user_data; struct dw_spi *dws = &spi->dws; - int32_t ret = 0; + int32_t ret = RT_EOK; if (message->send_buf && message->recv_buf) { @@ -214,6 +210,14 @@ static rt_ssize_t spi_xfer(struct rt_spi_device *device, struct rt_spi_message * { ret = dw_spi_transfer_one(dws, RT_NULL, message->recv_buf, message->length, POLL_TRAN); + } else { + return 0; + } + + if (ret != RT_EOK) + { + LOG_E("spi transfer error : %d", ret); + return 0; } return message->length; @@ -329,13 +333,12 @@ static void rt_hw_spi_pinmux_config() int rt_hw_spi_init(void) { rt_err_t ret = RT_EOK; - struct dw_spi *dws; rt_hw_spi_pinmux_config(); for (rt_size_t i = 0; i < sizeof(_spi_obj) / sizeof(struct _device_spi); i++) { - _spi_obj[i].dws.regs = (rt_ubase_t)DRV_IOREMAP((void *)_spi_obj[i].dws.regs, 0x1000); + _spi_obj[i].dws.regs = (void *)DRV_IOREMAP((void *)_spi_obj[i].dws.regs, 0x1000); _spi_obj[i].spi_bus.parent.user_data = (void *)&_spi_obj[i]; ret = rt_spi_bus_register(&_spi_obj[i].spi_bus, _spi_obj[i].device_name, &_spi_ops); diff --git a/bsp/cvitek/drivers/libraries/spi/dw_spi.c b/bsp/cvitek/drivers/libraries/spi/dw_spi.c index 1c098e15ba..a1a40a93d5 100644 --- a/bsp/cvitek/drivers/libraries/spi/dw_spi.c +++ b/bsp/cvitek/drivers/libraries/spi/dw_spi.c @@ -14,6 +14,7 @@ * limitations under the License. */ #include +#include #include #include @@ -23,9 +24,12 @@ #include #ifdef SPI_DEBUG -#define SP_DEBUG_LOG printf +#define SP_DEBUG_LOG(fmt, ...) \ + do { \ + rt_kprintf(fmt, ##__VA_ARGS__); \ + } while(0) #else -#define SP_DEBUG_LOG +#define SP_DEBUG_LOG(fmt, ...) #endif /* Restart the controller, disable all interrupts, clean rx fifo */