Hello, I'm currently working on adding SPI driver for AM335X. The MCSPI controller of AM335X supports the transfer of up to 32-bits long SPI words. Currently, SPI driver in Nuttx supports up to 16-bits long words transfer. The attached patch extends it to 32-bit long words.
Regards, Petro Karashchenko
diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html index c9e2d0c76d..b362f7522a 100644 --- a/Documentation/NuttxPortingGuide.html +++ b/Documentation/NuttxPortingGuide.html @@ -1751,7 +1751,7 @@ The specific environmental definitions are unique for each board but should incl The definitions in that header file provide the common interface between NuttX and the architecture-specific implementation in <code>arch/</code>. </p> <blockquote><small> - <code>up_</code> is supposed to stand for microprocessor; the <code>u</code> is like the Greek letter micron: <i>µ</i>. So it would be <code>µP</code> which is a common shortening of the word microprocessor. I don't like that name very much. I wish I would have used a more obvious prefix like <code>arch_</code> instead -- then I would not have to answer this question so often. + <code>up_</code> is supposed to stand for microprocessor; the <code>u</code> is like the Greek letter micron: <i>�</i>. So it would be <code>�P</code> which is a common shortening of the word microprocessor. I don't like that name very much. I wish I would have used a more obvious prefix like <code>arch_</code> instead -- then I would not have to answer this question so often. </small></blockquote> </li> <li> @@ -5865,7 +5865,7 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta <code>void setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode);</code><br> <code>void setbits(FAR struct spi_dev_s *dev, int nbits);</code><br> <code>uint8_t status(FAR struct spi_dev_s *dev, uint32_t devid);</code><br> - <code>uint16_t send(FAR struct spi_dev_s *dev, uint16_t wd);</code><br> + <code>uint32_t send(FAR struct spi_dev_s *dev, uint32_t wd);</code><br> <code>void exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords);</code><br> <p><code>int registercallback(FAR struct spi_dev_s *dev, mediachange_t callback, void *arg);</code></p> </ul> diff --git a/arch/arm/src/cxd56xx/cxd56_spi.c b/arch/arm/src/cxd56xx/cxd56_spi.c index 73b89a0dd5..b144cf0268 100644 --- a/arch/arm/src/cxd56xx/cxd56_spi.c +++ b/arch/arm/src/cxd56xx/cxd56_spi.c @@ -148,7 +148,7 @@ static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void __unused spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, @@ -654,7 +654,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct cxd56_spidev_s *priv = (FAR struct cxd56_spidev_s *)dev; register uint32_t regval; @@ -678,7 +678,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Write the byte to the TX FIFO */ - spi_putreg(priv, CXD56_SPI_DR_OFFSET, (uint32_t)wd); + spi_putreg(priv, CXD56_SPI_DR_OFFSET, wd); /* Wait for the RX FIFO not empty */ @@ -700,7 +700,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) cxd56_spi_clock_gate_enable(priv->port); - return (uint16_t)regval; + return regval; } /**************************************************************************** diff --git a/arch/arm/src/efm32/efm32_spi.c b/arch/arm/src/efm32/efm32_spi.c index e9925297c9..3ccc4c77d4 100644 --- a/arch/arm/src/efm32/efm32_spi.c +++ b/arch/arm/src/efm32/efm32_spi.c @@ -194,7 +194,7 @@ static uint8_t spi_status(struct spi_dev_s *dev, uint32_t devid); static int spi_cmddata(struct spi_dev_s *dev, uint32_t devid, bool cmd); #endif -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(struct spi_dev_s *dev, const void *txbuffer, void *rxbuffer, size_t nwords); #ifndef CONFIG_SPI_EXCHANGE @@ -1194,11 +1194,11 @@ static int spi_cmddata(struct spi_dev_s *dev, uint32_t devid, * ****************************************************************************/ -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd) { struct efm32_spidev_s *priv = (struct efm32_spidev_s *)dev; const struct efm32_spiconfig_s *config; - uint16_t ret; + uint32_t ret; DEBUGASSERT(priv && priv->config); config = priv->config; @@ -1213,12 +1213,12 @@ static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) /* Write the data */ - spi_putreg(config, EFM32_USART_TXDATA_OFFSET, (uint32_t)wd); + spi_putreg(config, EFM32_USART_TXDATA_OFFSET, wd); /* Wait for receive data to be available */ spi_wait_status(config, _USART_STATUS_RXDATAV_MASK, USART_STATUS_RXDATAV); - ret = (uint16_t)spi_getreg(config, EFM32_USART_RXDATA_OFFSET); + ret = spi_getreg(config, EFM32_USART_RXDATA_OFFSET); spiinfo("Sent: %04x Return: %04x \n", wd, ret); return ret; diff --git a/arch/arm/src/imx1/imx_spi.c b/arch/arm/src/imx1/imx_spi.c index 8c486050e9..42f8574e8d 100644 --- a/arch/arm/src/imx1/imx_spi.c +++ b/arch/arm/src/imx1/imx_spi.c @@ -173,7 +173,7 @@ static int spi_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); #ifdef CONFIG_SPI_EXCHANGE static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); @@ -900,10 +900,10 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { struct imx_spidev_s *priv = (struct imx_spidev_s *)dev; - uint16_t response = 0; + uint32_t response = 0; spi_transfer(priv, &wd, &response, 1); return response; diff --git a/arch/arm/src/imx6/imx_ecspi.c b/arch/arm/src/imx6/imx_ecspi.c index 17cf2bcfc6..42da86a433 100644 --- a/arch/arm/src/imx6/imx_ecspi.c +++ b/arch/arm/src/imx6/imx_ecspi.c @@ -233,7 +233,7 @@ static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static uint8_t spi_status(FAR struct spi_dev_s *dev, uint32_t devid); #ifdef CONFIG_SPI_CMDDATA static int spi_cmddata(FAR struct spi_dev_s *dev, uint32_t devid, @@ -1013,10 +1013,10 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { struct imx_spidev_s *priv = (struct imx_spidev_s *)dev; - uint16_t response = 0; + uint32_t response = 0; spi_transfer(priv, &wd, &response, 1); return response; diff --git a/arch/arm/src/imxrt/imxrt_lpspi.c b/arch/arm/src/imxrt/imxrt_lpspi.c index d196d27279..3f8cdccd7c 100644 --- a/arch/arm/src/imxrt/imxrt_lpspi.c +++ b/arch/arm/src/imxrt/imxrt_lpspi.c @@ -151,7 +151,7 @@ static inline uint32_t imxrt_lpspi_getreg32(FAR struct imxrt_lpspidev_s *priv, uint8_t offset); static inline void imxrt_lpspi_putreg32(FAR struct imxrt_lpspidev_s *priv, uint8_t offset, uint32_t value); -static inline uint16_t imxrt_lpspi_readword( +static inline uint32_t imxrt_lpspi_readword( FAR struct imxrt_lpspidev_s *priv); static inline void imxrt_lpspi_writeword(FAR struct imxrt_lpspidev_s *priv, uint16_t byte); @@ -177,7 +177,7 @@ static void imxrt_lpspi_setbits(FAR struct spi_dev_s *dev, int nbits); static int imxrt_lpspi_hwfeatures(FAR struct spi_dev_s *dev, imxrt_lpspi_hwfeatures_t features); #endif -static uint16_t imxrt_lpspi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t imxrt_lpspi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void imxrt_lpspi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); @@ -482,7 +482,7 @@ static inline void imxrt_lpspi_putreg32(FAR struct imxrt_lpspidev_s *priv, * *****************************************************************************/ -static inline uint16_t imxrt_lpspi_readword(FAR struct imxrt_lpspidev_s *priv) +static inline uint32_t imxrt_lpspi_readword(FAR struct imxrt_lpspidev_s *priv) { /* Wait until the receive buffer is not empty */ @@ -491,7 +491,7 @@ static inline uint16_t imxrt_lpspi_readword(FAR struct imxrt_lpspidev_s *priv) /* Then return the received byte */ - return (uint16_t) imxrt_lpspi_getreg32(priv, IMXRT_LPSPI_RDR_OFFSET); + return imxrt_lpspi_getreg32(priv, IMXRT_LPSPI_RDR_OFFSET); } /***************************************************************************** @@ -1233,15 +1233,15 @@ static int imxrt_lpspi_hwfeatures(FAR struct spi_dev_s *dev, * *****************************************************************************/ -static uint16_t imxrt_lpspi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t imxrt_lpspi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct imxrt_lpspidev_s *priv = (FAR struct imxrt_lpspidev_s *)dev; uint32_t regval; - uint16_t ret; + uint32_t ret; DEBUGASSERT(priv && priv->spibase); - imxrt_lpspi_writeword(priv, (uint32_t) wd); + imxrt_lpspi_writeword(priv, wd); while ((imxrt_lpspi_getreg32(priv, IMXRT_LPSPI_SR_OFFSET) & LPSPI_SR_RDF) != LPSPI_SR_RDF); @@ -1322,7 +1322,7 @@ static void imxrt_lpspi_exchange_nodma(FAR struct spi_dev_s *dev, /* Exchange one word */ - word = imxrt_lpspi_send(dev, word); + word = (uint16_t) imxrt_lpspi_send(dev, (uint32_t) word); /* Is there a buffer to receive the return value? */ @@ -1355,7 +1355,7 @@ static void imxrt_lpspi_exchange_nodma(FAR struct spi_dev_s *dev, /* Exchange one word */ - word = (uint8_t) imxrt_lpspi_send(dev, (uint16_t) word); + word = (uint8_t) imxrt_lpspi_send(dev, (uint32_t) word); /* Is there a buffer to receive the return value? */ diff --git a/arch/arm/src/kinetis/kinetis_spi.c b/arch/arm/src/kinetis/kinetis_spi.c index 07229ec8f9..4e8eb4b124 100644 --- a/arch/arm/src/kinetis/kinetis_spi.c +++ b/arch/arm/src/kinetis/kinetis_spi.c @@ -157,7 +157,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); static int spi_hwfeatures(FAR struct spi_dev_s *dev, spi_hwfeatures_t features); #endif -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); @@ -937,11 +937,11 @@ static uint16_t spi_send_data(FAR struct kinetis_spidev_s *priv, uint16_t wd, * ************************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct kinetis_spidev_s *priv = (FAR struct kinetis_spidev_s *)dev; - return spi_send_data(priv, wd, true); + return (uint32_t)spi_send_data(priv, (uint16_t)wd, true); } /************************************************************************************ diff --git a/arch/arm/src/kl/kl_spi.c b/arch/arm/src/kl/kl_spi.c index bb9608fc67..cb5cc487cd 100644 --- a/arch/arm/src/kl/kl_spi.c +++ b/arch/arm/src/kl/kl_spi.c @@ -91,7 +91,7 @@ static int spi_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); #ifndef CONFIG_SPI_EXCHANGE @@ -287,7 +287,7 @@ static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency) * divisor in the range {2, 4, 8, 16, 32, 64, 128, 256, or 512). * * - * BaudRateDivisor = (SPPR + 1) × 2^(SPR + 1) + * BaudRateDivisor = (SPPR + 1) × 2^(SPR + 1) * BaudRate = BusClock / BaudRateDivisor * * The strategy is to pick the smallest divisor that yields an in-range @@ -438,7 +438,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ************************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct kl_spidev_s *priv = (FAR struct kl_spidev_s *)dev; @@ -459,7 +459,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Return the data */ - return (uint16_t)spi_getreg(priv, KL_SPI_D_OFFSET); + return (uint32_t)spi_getreg(priv, KL_SPI_D_OFFSET); } /************************************************************************************ diff --git a/arch/arm/src/lc823450/lc823450_spi.c b/arch/arm/src/lc823450/lc823450_spi.c index 6c681f3862..d89a69c2e3 100644 --- a/arch/arm/src/lc823450/lc823450_spi.c +++ b/arch/arm/src/lc823450/lc823450_spi.c @@ -104,7 +104,7 @@ static int spi_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); #ifndef CONFIG_SPI_EXCHANGE static void spi_sndblock(FAR struct spi_dev_s *dev, FAR const void *buffer, size_t nwords); static void spi_recvblock(FAR struct spi_dev_s *dev, FAR void *buffer, size_t nwords); @@ -333,15 +333,15 @@ static void spi_dma_callback(DMA_HANDLE hdma, void *arg, int result) ****************************************************************************/ #ifdef CONFIG_LC823450_SPI_DMA -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { spi_sndblock(dev, &wd, 1); return 0; } #else /* CONFIG_LC823450_SPI_DMA */ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { - putreg16(wd, LC823450_SPI_STR); + putreg16((uint16_t)wd, LC823450_SPI_STR); modifyreg32(LC823450_SPI_ISR, 0, SPI_ISR_SPIF); @@ -352,7 +352,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) while ((getreg32(LC823450_SPI_ISR) & SPI_ISR_SPIF) == 0) ; - return getreg16(LC823450_SPI_SRR); + return (uint32_t)getreg16(LC823450_SPI_SRR); } #endif @@ -431,14 +431,14 @@ static void spi_sndblock(FAR struct spi_dev_s *dev, FAR const void *buffer, { for (i = 0; i < nwords; i++) { - spi_send(dev, *buf16++); + spi_send(dev, (uint32_t)*buf16++); } } else { for (i = 0; i < nwords; i++) { - spi_send(dev, *buf++); + spi_send(dev, (uint32_t)*buf++); } } #endif /* CONFIG_LC823450_SPI_DMA */ @@ -476,14 +476,14 @@ static void spi_recvblock(FAR struct spi_dev_s *dev, FAR void *buffer, size_t nw { for (i = 0; i < nwords; i++) { - *buf16++ = spi_send(dev, 0xffff); + *buf16++ = (uint16_t)spi_send(dev, 0xffff); } } else { for (i = 0; i < nwords; i++) { - *buf++ = spi_send(dev, 0xffff); + *buf++ = (uint8_t)spi_send(dev, 0xffff); } } } diff --git a/arch/arm/src/lpc17xx_40xx/lpc17_40_spi.c b/arch/arm/src/lpc17xx_40xx/lpc17_40_spi.c index 843f8d59b8..37610a31bf 100644 --- a/arch/arm/src/lpc17xx_40xx/lpc17_40_spi.c +++ b/arch/arm/src/lpc17xx_40xx/lpc17_40_spi.c @@ -114,7 +114,7 @@ static int spi_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_sndblock(FAR struct spi_dev_s *dev, FAR const void *buffer, size_t nwords); static void spi_recvblock(FAR struct spi_dev_s *dev, FAR void *buffer, size_t nwords); @@ -380,11 +380,11 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { /* Write the data to transmitted to the SPI Data Register */ - putreg32((uint32_t)wd, LPC17_40_SPI_DR); + putreg32(wd, LPC17_40_SPI_DR); /* Wait for the SPIF bit in the SPI Status Register to be set to 1. The * SPIF bit will be set after the last sampling clock edge of the SPI @@ -396,7 +396,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Read the SPI Status Register again to clear the status bit */ getreg32(LPC17_40_SPI_SR); - return (uint16_t)getreg32(LPC17_40_SPI_DR); + return getreg32(LPC17_40_SPI_DR); } /**************************************************************************** diff --git a/arch/arm/src/lpc17xx_40xx/lpc17_40_ssp.c b/arch/arm/src/lpc17xx_40xx/lpc17_40_ssp.c index 197e11f358..011b38a2c1 100644 --- a/arch/arm/src/lpc17xx_40xx/lpc17_40_ssp.c +++ b/arch/arm/src/lpc17xx_40xx/lpc17_40_ssp.c @@ -138,7 +138,7 @@ static int ssp_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t ssp_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void ssp_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void ssp_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t ssp_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t ssp_send(FAR struct spi_dev_s *dev, uint32_t wd); static void ssp_sndblock(FAR struct spi_dev_s *dev, FAR const void *buffer, size_t nwords); static void ssp_recvblock(FAR struct spi_dev_s *dev, FAR void *buffer, size_t nwords); @@ -562,7 +562,7 @@ static void ssp_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t ssp_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t ssp_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct lpc17_40_sspdev_s *priv = (FAR struct lpc17_40_sspdev_s *)dev; register uint32_t regval; @@ -573,7 +573,7 @@ static uint16_t ssp_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Write the byte to the TX FIFO */ - ssp_putreg(priv, LPC17_40_SSP_DR_OFFSET, (uint32_t)wd); + ssp_putreg(priv, LPC17_40_SSP_DR_OFFSET, wd); /* Wait for the RX FIFO not empty */ @@ -583,7 +583,7 @@ static uint16_t ssp_send(FAR struct spi_dev_s *dev, uint16_t wd) regval = ssp_getreg(priv, LPC17_40_SSP_DR_OFFSET); spiinfo("%04x->%04x\n", wd, regval); - return (uint16_t)regval; + return regval; } /**************************************************************************** diff --git a/arch/arm/src/lpc2378/lpc23xx_spi.c b/arch/arm/src/lpc2378/lpc23xx_spi.c index 251b9bf886..97de91a755 100644 --- a/arch/arm/src/lpc2378/lpc23xx_spi.c +++ b/arch/arm/src/lpc2378/lpc23xx_spi.c @@ -120,7 +120,7 @@ static int spi_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_sndblock(FAR struct spi_dev_s *dev, FAR const void *buffer, size_t nwords); static void spi_recvblock(FAR struct spi_dev_s *dev, FAR void *buffer, size_t nwords); @@ -387,11 +387,11 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { /* Write the data to transmitted to the SPI Data Register */ - putreg32((uint32_t)wd, SPI_DR); + putreg32(wd, SPI_DR); /* Wait for the SPIF bit in the SPI Status Register to be set to 1. The * SPIF bit will be set after the last sampling clock edge of the SPI @@ -403,7 +403,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Read the SPI Status Register again to clear the status bit */ getreg32(SPI_SR); - return (uint16_t)getreg32(SPI_DR); + return getreg32(SPI_DR); } /**************************************************************************** diff --git a/arch/arm/src/lpc31xx/lpc31_spi.c b/arch/arm/src/lpc31xx/lpc31_spi.c index 3a08508281..b62be850d2 100644 --- a/arch/arm/src/lpc31xx/lpc31_spi.c +++ b/arch/arm/src/lpc31xx/lpc31_spi.c @@ -111,8 +111,8 @@ static uint32_t spi_getreg(uint32_t address); static inline void spi_drive_cs(FAR struct lpc31_spidev_s *priv, uint8_t slave, uint8_t val); static inline void spi_select_slave(FAR struct lpc31_spidev_s *priv, uint8_t slave); -static inline uint16_t spi_readword(FAR struct lpc31_spidev_s *priv); -static inline void spi_writeword(FAR struct lpc31_spidev_s *priv, uint16_t word); +static inline uint32_t spi_readword(FAR struct lpc31_spidev_s *priv); +static inline void spi_writeword(FAR struct lpc31_spidev_s *priv, uint32_t word); static int spi_lock(FAR struct spi_dev_s *dev, bool lock); static void spi_select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected); @@ -120,7 +120,7 @@ static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequenc static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); static uint8_t spi_status(FAR struct spi_dev_s *dev, uint32_t devid); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t word); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t word); static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); #ifndef CONFIG_SPI_EXCHANGE @@ -382,7 +382,7 @@ static inline void spi_select_slave(FAR struct lpc31_spidev_s *priv, uint8_t sla * ************************************************************************************/ -static inline uint16_t spi_readword(FAR struct lpc31_spidev_s *priv) +static inline uint32_t spi_readword(FAR struct lpc31_spidev_s *priv) { /* Wait until the RX FIFO is not empty */ @@ -390,7 +390,7 @@ static inline uint16_t spi_readword(FAR struct lpc31_spidev_s *priv) /* Then return the received word */ - return (uint16_t)spi_getreg(LPC31_SPI_FIFODATA); + return spi_getreg(LPC31_SPI_FIFODATA); } /************************************************************************************ @@ -408,7 +408,7 @@ static inline uint16_t spi_readword(FAR struct lpc31_spidev_s *priv) * ************************************************************************************/ -static inline void spi_writeword(FAR struct lpc31_spidev_s *priv, uint16_t word) +static inline void spi_writeword(FAR struct lpc31_spidev_s *priv, uint32_t word) { /* Wait until the TX FIFO is not full */ @@ -706,7 +706,7 @@ static uint8_t spi_status(FAR struct spi_dev_s *dev, uint32_t devid) * ************************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t word) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t word) { FAR struct lpc31_spidev_s *priv = (FAR struct lpc31_spidev_s *)dev; DEBUGASSERT(priv); @@ -767,7 +767,7 @@ static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, /* Then send the word */ - spi_writeword(priv, word); + spi_writeword(priv, (uint32_t)word); } nwords -= maxtx; @@ -807,7 +807,7 @@ static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, /* Then send the word */ - spi_writeword(priv, (uint16_t)word); + spi_writeword(priv, (uint32_t)word); } nwords -= maxtx; diff --git a/arch/arm/src/lpc43xx/lpc43_spi.c b/arch/arm/src/lpc43xx/lpc43_spi.c index d884dd7491..a935fba6fd 100644 --- a/arch/arm/src/lpc43xx/lpc43_spi.c +++ b/arch/arm/src/lpc43xx/lpc43_spi.c @@ -107,7 +107,7 @@ static void spi_select(FAR struct spi_dev_s *dev, uint32_t devid, bool selec static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_sndblock(FAR struct spi_dev_s *dev, FAR const void *buffer, size_t nwords); static void spi_recvblock(FAR struct spi_dev_s *dev, FAR void *buffer, size_t nwords); @@ -371,11 +371,11 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { /* Write the data to transmitted to the SPI Data Register */ - putreg32((uint32_t)wd, LPC43_SPI_DR); + putreg32(wd, LPC43_SPI_DR); /* Wait for the SPIF bit in the SPI Status Register to be set to 1. The * SPIF bit will be set after the last sampling clock edge of the SPI @@ -387,7 +387,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Read the SPI Status Register again to clear the status bit */ getreg32(LPC43_SPI_SR); - return (uint16_t)getreg32(LPC43_SPI_DR); + return getreg32(LPC43_SPI_DR); } /**************************************************************************** diff --git a/arch/arm/src/lpc43xx/lpc43_ssp.c b/arch/arm/src/lpc43xx/lpc43_ssp.c index 0da6da5ef0..a66f946498 100644 --- a/arch/arm/src/lpc43xx/lpc43_ssp.c +++ b/arch/arm/src/lpc43xx/lpc43_ssp.c @@ -101,7 +101,7 @@ static int ssp_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t ssp_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void ssp_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void ssp_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t ssp_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t ssp_send(FAR struct spi_dev_s *dev, uint32_t wd); static void ssp_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); #ifndef CONFIG_SPI_EXCHANGE @@ -468,7 +468,7 @@ static void ssp_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t ssp_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t ssp_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct lpc43_sspdev_s *priv = (FAR struct lpc43_sspdev_s *)dev; register uint32_t regval; @@ -479,7 +479,7 @@ static uint16_t ssp_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Write the byte to the TX FIFO */ - ssp_putreg(priv, LPC43_SSP_DR_OFFSET, (uint32_t)wd); + ssp_putreg(priv, LPC43_SSP_DR_OFFSET, wd); /* Wait for the RX FIFO not empty */ @@ -489,7 +489,7 @@ static uint16_t ssp_send(FAR struct spi_dev_s *dev, uint16_t wd) regval = ssp_getreg(priv, LPC43_SSP_DR_OFFSET); spiinfo("%04x->%04x\n", wd, regval); - return (uint16_t)regval; + return regval; } /**************************************************************************** diff --git a/arch/arm/src/lpc54xx/lpc54_spi_master.c b/arch/arm/src/lpc54xx/lpc54_spi_master.c index 9d41d59cef..8f2186f01d 100644 --- a/arch/arm/src/lpc54xx/lpc54_spi_master.c +++ b/arch/arm/src/lpc54xx/lpc54_spi_master.c @@ -209,7 +209,7 @@ static uint32_t lpc54_spi_setfrequency(FAR struct spi_dev_s *dev, static void lpc54_spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void lpc54_spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t lpc54_spi_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t lpc54_spi_send(FAR struct spi_dev_s *dev, uint32_t wd); #ifdef CONFIG_SPI_EXCHANGE static void lpc54_spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, @@ -1445,7 +1445,7 @@ static void lpc54_spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t lpc54_spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t lpc54_spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct lpc54_spidev_s *priv = (FAR struct lpc54_spidev_s *)dev; uint32_t regval; @@ -1473,7 +1473,7 @@ static uint16_t lpc54_spi_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Then read and return the value from the Rx FIFO */ - return (uint16_t)lpc54_spi_getreg(priv, LPC54_SPI_FIFORD_OFFSET); + return lpc54_spi_getreg(priv, LPC54_SPI_FIFORD_OFFSET); } /**************************************************************************** diff --git a/arch/arm/src/max326xx/max32660/max32660_spim.c b/arch/arm/src/max326xx/max32660/max32660_spim.c index 34e65578ad..80552bc34d 100644 --- a/arch/arm/src/max326xx/max32660/max32660_spim.c +++ b/arch/arm/src/max326xx/max32660/max32660_spim.c @@ -193,7 +193,7 @@ static void spi_setbits(struct spi_dev_s *dev, int nbits); static int spi_hwfeatures(struct spi_dev_s *dev, spi_hwfeatures_t features); #endif -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(struct spi_dev_s *dev, const void *txbuffer, void *rxbuffer, size_t nwords); #ifndef CONFIG_SPI_EXCHANGE @@ -1160,9 +1160,9 @@ static int spi_hwfeatures(struct spi_dev_s *dev, spi_hwfeatures_t features) * ****************************************************************************/ -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd) { - uint16_t ret; + uint32_t ret; spiinfo("wd=%04u\n", wd); spi_exchange(dev, &wd, &ret, 1); diff --git a/arch/arm/src/nrf52/nrf52_spi.c b/arch/arm/src/nrf52/nrf52_spi.c index ced714ecfa..48a5929d06 100644 --- a/arch/arm/src/nrf52/nrf52_spi.c +++ b/arch/arm/src/nrf52/nrf52_spi.c @@ -112,7 +112,7 @@ static void nrf52_spi_setbits(FAR struct spi_dev_s *priv, int nbits); static int nrf52_spi_hwfeatures(FAR struct spi_dev_s *dev, spi_hwfeatures_t features); #endif -static uint16_t nrf52_spi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t nrf52_spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void nrf52_spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); @@ -757,9 +757,9 @@ static int nrf52_spi_hwfeatures(FAR struct spi_dev_s *dev, * ****************************************************************************/ -static uint16_t nrf52_spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t nrf52_spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { - uint16_t ret = 0; + uint32_t ret = 0; /* Exchange one word on SPI */ diff --git a/arch/arm/src/s32k1xx/s32k1xx_lpspi.c b/arch/arm/src/s32k1xx/s32k1xx_lpspi.c index 33d9e92248..8c0c4644e8 100644 --- a/arch/arm/src/s32k1xx/s32k1xx_lpspi.c +++ b/arch/arm/src/s32k1xx/s32k1xx_lpspi.c @@ -149,7 +149,7 @@ static inline uint32_t s32k1xx_lpspi_getreg32(FAR struct s32k1xx_lpspidev_s *pri uint8_t offset); static inline void s32k1xx_lpspi_putreg32(FAR struct s32k1xx_lpspidev_s *priv, uint8_t offset, uint32_t value); -static inline uint16_t s32k1xx_lpspi_readword(FAR struct s32k1xx_lpspidev_s *priv); +static inline uint32_t s32k1xx_lpspi_readword(FAR struct s32k1xx_lpspidev_s *priv); static inline void s32k1xx_lpspi_writeword(FAR struct s32k1xx_lpspidev_s *priv, uint16_t byte); static inline bool s32k1xx_lpspi_9to16bitmode(FAR struct s32k1xx_lpspidev_s *priv); @@ -171,7 +171,7 @@ static void s32k1xx_lpspi_setbits(FAR struct spi_dev_s *dev, int nbits); static int s32k1xx_lpspi_hwfeatures(FAR struct spi_dev_s *dev, s32k1xx_lpspi_hwfeatures_t features); #endif -static uint16_t s32k1xx_lpspi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t s32k1xx_lpspi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void s32k1xx_lpspi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); #ifndef CONFIG_SPI_EXCHANGE @@ -428,7 +428,7 @@ static inline void s32k1xx_lpspi_putreg32(FAR struct s32k1xx_lpspidev_s *priv, * ************************************************************************************/ -static inline uint16_t s32k1xx_lpspi_readword(FAR struct s32k1xx_lpspidev_s *priv) +static inline uint32_t s32k1xx_lpspi_readword(FAR struct s32k1xx_lpspidev_s *priv) { /* Wait until the receive buffer is not empty */ @@ -438,7 +438,7 @@ static inline uint16_t s32k1xx_lpspi_readword(FAR struct s32k1xx_lpspidev_s *pri /* Then return the received byte */ - return (uint16_t) s32k1xx_lpspi_getreg32(priv, S32K1XX_LPSPI_RDR_OFFSET); + return (uint32_t) s32k1xx_lpspi_getreg32(priv, S32K1XX_LPSPI_RDR_OFFSET); } /************************************************************************************ @@ -1192,15 +1192,15 @@ static int s32k1xx_lpspi_hwfeatures(FAR struct spi_dev_s *dev, * ************************************************************************************/ -static uint16_t s32k1xx_lpspi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t s32k1xx_lpspi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct s32k1xx_lpspidev_s *priv = (FAR struct s32k1xx_lpspidev_s *)dev; uint32_t regval; - uint16_t ret; + uint32_t ret; DEBUGASSERT(priv && priv->spibase); - s32k1xx_lpspi_writeword(priv, (uint32_t) wd); + s32k1xx_lpspi_writeword(priv, wd); while ((s32k1xx_lpspi_getreg32(priv, S32K1XX_LPSPI_SR_OFFSET) & LPSPI_SR_RDF) != LPSPI_SR_RDF); @@ -1281,7 +1281,7 @@ static void s32k1xx_lpspi_exchange_nodma(FAR struct spi_dev_s *dev, /* Exchange one word */ - word = s32k1xx_lpspi_send(dev, word); + word = (uint16_t) s32k1xx_lpspi_send(dev, (uint32_t) word); /* Is there a buffer to receive the return value? */ @@ -1314,7 +1314,7 @@ static void s32k1xx_lpspi_exchange_nodma(FAR struct spi_dev_s *dev, /* Exchange one word */ - word = (uint8_t) s32k1xx_lpspi_send(dev, (uint16_t) word); + word = (uint8_t) s32k1xx_lpspi_send(dev, (uint32_t) word); /* Is there a buffer to receive the return value? */ diff --git a/arch/arm/src/sam34/sam_spi.c b/arch/arm/src/sam34/sam_spi.c index 53b7915fd7..48258f76cc 100644 --- a/arch/arm/src/sam34/sam_spi.c +++ b/arch/arm/src/sam34/sam_spi.c @@ -278,7 +278,7 @@ static void spi_select(struct spi_dev_s *dev, uint32_t devid, static uint32_t spi_setfrequency(struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd); #ifdef CONFIG_SAM34_SPI_DMA static void spi_exchange_nodma(struct spi_dev_s *dev, const void *txbuffer, void *rxbuffer, size_t nwords); @@ -1194,7 +1194,7 @@ static void spi_setbits(struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd) { uint8_t txbyte; uint8_t rxbyte; @@ -1209,7 +1209,7 @@ static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) spi_exchange(dev, &txbyte, &rxbyte, 1); spiinfo("Sent %02x received %02x\n", txbyte, rxbyte); - return (uint16_t)rxbyte; + return (uint32_t)rxbyte; } /**************************************************************************** diff --git a/arch/arm/src/sama5/sam_spi.c b/arch/arm/src/sama5/sam_spi.c index ef5fa25f20..b52cf4a315 100644 --- a/arch/arm/src/sama5/sam_spi.c +++ b/arch/arm/src/sama5/sam_spi.c @@ -267,7 +267,7 @@ static void spi_select(struct spi_dev_s *dev, uint32_t devid, static uint32_t spi_setfrequency(struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd); #ifdef CONFIG_SAMA5_SPI_DMA static void spi_exchange_nodma(struct spi_dev_s *dev, const void *txbuffer, void *rxbuffer, size_t nwords); @@ -1185,7 +1185,7 @@ static void spi_setbits(struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd) { uint8_t txbyte; uint8_t rxbyte; @@ -1200,7 +1200,7 @@ static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) spi_exchange(dev, &txbyte, &rxbyte, 1); spiinfo("Sent %02x received %02x\n", txbyte, rxbyte); - return (uint16_t)rxbyte; + return (uint32_t)rxbyte; } /**************************************************************************** diff --git a/arch/arm/src/samd2l2/sam_spi.c b/arch/arm/src/samd2l2/sam_spi.c index c2941fb789..9d62114c07 100644 --- a/arch/arm/src/samd2l2/sam_spi.c +++ b/arch/arm/src/samd2l2/sam_spi.c @@ -190,7 +190,7 @@ static int spi_lock(struct spi_dev_s *dev, bool lock); static uint32_t spi_setfrequency(struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(struct spi_dev_s *dev, const void *txbuffer, void *rxbuffer, size_t nwords); #ifndef CONFIG_SPI_EXCHANGE @@ -1072,7 +1072,7 @@ static void spi_setbits(struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd) { uint8_t txbyte; uint8_t rxbyte; @@ -1087,7 +1087,7 @@ static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) spi_exchange(dev, &txbyte, &rxbyte, 1); spiinfo("Sent %02x received %02x\n", txbyte, rxbyte); - return (uint16_t)rxbyte; + return (uint32_t)rxbyte; } /**************************************************************************** diff --git a/arch/arm/src/samd5e5/sam_spi.c b/arch/arm/src/samd5e5/sam_spi.c index 4aaca3dbe1..4a820790a5 100644 --- a/arch/arm/src/samd5e5/sam_spi.c +++ b/arch/arm/src/samd5e5/sam_spi.c @@ -185,7 +185,7 @@ static int spi_lock(struct spi_dev_s *dev, bool lock); static uint32_t spi_setfrequency(struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t ch); static void spi_exchange(struct spi_dev_s *dev, const void *txbuffer, void *rxbuffer, size_t nwords); #ifndef CONFIG_SPI_EXCHANGE @@ -1167,7 +1167,7 @@ static void spi_setbits(struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd) { uint8_t txbyte; uint8_t rxbyte; @@ -1182,7 +1182,7 @@ static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) spi_exchange(dev, &txbyte, &rxbyte, 1); spiinfo("Sent %02x received %02x\n", txbyte, rxbyte); - return (uint16_t)rxbyte; + return (uint32_t)rxbyte; } /**************************************************************************** diff --git a/arch/arm/src/samv7/sam_spi.c b/arch/arm/src/samv7/sam_spi.c index 25f5c57fbf..34479dd38a 100644 --- a/arch/arm/src/samv7/sam_spi.c +++ b/arch/arm/src/samv7/sam_spi.c @@ -272,7 +272,7 @@ static int spi_hwfeatures(struct spi_dev_s *dev, uint8_t features); #endif static void spi_setmode(struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd); #ifdef CONFIG_SAMV7_SPI_DMA static void spi_exchange_nodma(struct spi_dev_s *dev, const void *txbuffer, void *rxbuffer, size_t nwords); @@ -1416,7 +1416,7 @@ static void spi_setbits(struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd) { uint8_t txbyte; uint8_t rxbyte; @@ -1431,7 +1431,7 @@ static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) spi_exchange(dev, &txbyte, &rxbyte, 1); spiinfo("Sent %02x received %02x\n", txbyte, rxbyte); - return (uint16_t)rxbyte; + return (uint32_t)rxbyte; } /**************************************************************************** diff --git a/arch/arm/src/stm32/stm32_spi.c b/arch/arm/src/stm32/stm32_spi.c index 978ea18556..8efedd2dbe 100644 --- a/arch/arm/src/stm32/stm32_spi.c +++ b/arch/arm/src/stm32/stm32_spi.c @@ -232,7 +232,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); static int spi_hwfeatures(FAR struct spi_dev_s *dev, spi_hwfeatures_t features); #endif -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); #ifdef CONFIG_SPI_TRIGGER @@ -1508,16 +1508,16 @@ static int spi_hwfeatures(FAR struct spi_dev_s *dev, spi_hwfeatures_t features) * ************************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct stm32_spidev_s *priv = (FAR struct stm32_spidev_s *)dev; uint32_t regval; - uint16_t ret; + uint32_t ret; DEBUGASSERT(priv && priv->spibase); - spi_writeword(priv, wd); - ret = spi_readword(priv); + spi_writeword(priv, (uin32_t)(wd & 0xffff)); + ret = (uin32_t)spi_readword(priv); /* Check and clear any error flags (Reading from the SR clears the error flags) */ @@ -1592,7 +1592,7 @@ static void spi_exchange_nodma(FAR struct spi_dev_s *dev, FAR const void *txbuff /* Exchange one word */ - word = spi_send(dev, word); + word = (uin16_t)spi_send(dev, (uin32_t)word); /* Is there a buffer to receive the return value? */ @@ -1625,7 +1625,7 @@ static void spi_exchange_nodma(FAR struct spi_dev_s *dev, FAR const void *txbuff /* Exchange one word */ - word = (uint8_t)spi_send(dev, (uint16_t)word); + word = (uint8_t)spi_send(dev, (uint32_t)word); /* Is there a buffer to receive the return value? */ diff --git a/arch/arm/src/stm32f0l0g0/stm32_spi.c b/arch/arm/src/stm32f0l0g0/stm32_spi.c index 421f3d05a6..f2574237f9 100644 --- a/arch/arm/src/stm32f0l0g0/stm32_spi.c +++ b/arch/arm/src/stm32f0l0g0/stm32_spi.c @@ -1214,16 +1214,16 @@ static int spi_hwfeatures(FAR struct spi_dev_s *dev, spi_hwfeatures_t features) * ************************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct stm32_spidev_s *priv = (FAR struct stm32_spidev_s *)dev; uint32_t regval; - uint16_t ret; + uint32_t ret; DEBUGASSERT(priv && priv->spibase); - spi_writeword(priv, wd); - ret = spi_readword(priv); + spi_writeword(priv, (uint16_t)(wd & 0xffff)); + ret = (uint32_t)spi_readword(priv); /* Check and clear any error flags (Reading from the SR clears the error flags) */ @@ -1294,7 +1294,7 @@ static void spi_exchange_nodma(FAR struct spi_dev_s *dev, FAR const void *txbuff /* Exchange one word */ - word = spi_send(dev, word); + word = (uint16_t)spi_send(dev, (uint32_t)word); /* Is there a buffer to receive the return value? */ @@ -1327,7 +1327,7 @@ static void spi_exchange_nodma(FAR struct spi_dev_s *dev, FAR const void *txbuff /* Exchange one word */ - word = (uint8_t)spi_send(dev, (uint16_t)word); + word = (uint8_t)spi_send(dev, (uint32_t)word); /* Is there a buffer to receive the return value? */ diff --git a/arch/arm/src/stm32f7/stm32_spi.c b/arch/arm/src/stm32f7/stm32_spi.c index 90a18bfb3e..4e4b8e2bc7 100644 --- a/arch/arm/src/stm32f7/stm32_spi.c +++ b/arch/arm/src/stm32f7/stm32_spi.c @@ -1473,11 +1473,11 @@ static int spi_hwfeatures(FAR struct spi_dev_s *dev, spi_hwfeatures_t features) * ************************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct stm32_spidev_s *priv = (FAR struct stm32_spidev_s *)dev; uint32_t regval; - uint16_t ret; + uint32_t ret; DEBUGASSERT(priv && priv->spibase); @@ -1488,8 +1488,8 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) if (spi_9to16bitmode(priv)) { - spi_writeword(priv, wd); - ret = spi_readword(priv); + spi_writeword(priv, (uint16_t)(wd & 0xffff)); + ret = (uint32_t)spi_readword(priv); } else { @@ -1576,7 +1576,7 @@ static void spi_exchange_nodma(FAR struct spi_dev_s *dev, FAR const void *txbuff /* Exchange one word */ - word = spi_send(dev, word); + word = (uin16_t)spi_send(dev, (uint32_t)word); /* Is there a buffer to receive the return value? */ @@ -1609,7 +1609,7 @@ static void spi_exchange_nodma(FAR struct spi_dev_s *dev, FAR const void *txbuff /* Exchange one word */ - word = (uint8_t)spi_send(dev, (uint16_t)word); + word = (uint8_t)spi_send(dev, (uint32_t)word); /* Is there a buffer to receive the return value? */ diff --git a/arch/arm/src/stm32h7/stm32_spi.c b/arch/arm/src/stm32h7/stm32_spi.c index 115f2e15a2..591037369d 100644 --- a/arch/arm/src/stm32h7/stm32_spi.c +++ b/arch/arm/src/stm32h7/stm32_spi.c @@ -252,7 +252,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); static int spi_hwfeatures(FAR struct spi_dev_s *dev, spi_hwfeatures_t features); #endif -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); #ifdef CONFIG_SPI_TRIGGER @@ -1508,7 +1508,7 @@ static int spi_hwfeatures(FAR struct spi_dev_s *dev, spi_hwfeatures_t features) * ************************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct stm32_spidev_s *priv = (FAR struct stm32_spidev_s *)dev; uint32_t regval = 0; @@ -1531,7 +1531,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) if (spi_9to16bitmode(priv)) { - spi_writeword(priv, wd); + spi_writeword(priv, (uint16_t)(wd & 0xffff)); ret = spi_readword(priv); } else @@ -1626,7 +1626,7 @@ static void spi_exchange_nodma(FAR struct spi_dev_s *dev, FAR const void *txbuff /* Exchange one word */ - word = spi_send(dev, word); + word = (uint16_t)spi_send(dev, (uint32_t)word); /* Is there a buffer to receive the return value? */ @@ -1659,7 +1659,7 @@ static void spi_exchange_nodma(FAR struct spi_dev_s *dev, FAR const void *txbuff /* Exchange one word */ - word = (uint8_t)spi_send(dev, (uint16_t)word); + word = (uint8_t)spi_send(dev, (uint32_t)word); /* Is there a buffer to receive the return value? */ diff --git a/arch/arm/src/stm32l4/stm32l4_spi.c b/arch/arm/src/stm32l4/stm32l4_spi.c index cd0628cada..0f36a0876f 100644 --- a/arch/arm/src/stm32l4/stm32l4_spi.c +++ b/arch/arm/src/stm32l4/stm32l4_spi.c @@ -223,7 +223,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); static int spi_hwfeatures(FAR struct spi_dev_s *dev, spi_hwfeatures_t features); #endif -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); #ifdef CONFIG_SPI_TRIGGER @@ -1253,11 +1253,11 @@ static int spi_hwfeatures(FAR struct spi_dev_s *dev, spi_hwfeatures_t features) * ************************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct stm32l4_spidev_s *priv = (FAR struct stm32l4_spidev_s *)dev; uint32_t regval; - uint16_t ret; + uint32_t ret; DEBUGASSERT(priv && priv->spibase); @@ -1268,13 +1268,13 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) if (spi_16bitmode(priv)) { - spi_writeword(priv, wd); - ret = spi_readword(priv); + spi_writeword(priv, (uint16_t)(wd & 0xffff)); + ret = (uint32_t)spi_readword(priv); } else { spi_writebyte(priv, (uint8_t)(wd & 0xff)); - ret = (uint16_t)spi_readbyte(priv); + ret = (uint32_t)spi_readbyte(priv); } /* Check and clear any error flags (Reading from the SR clears the error @@ -1355,7 +1355,7 @@ static void spi_exchange_nodma(FAR struct spi_dev_s *dev, FAR const void *txbuff /* Exchange one word */ - word = spi_send(dev, word); + word = (uint16_t)spi_send(dev, (uint32_t)word); /* Is there a buffer to receive the return value? */ @@ -1388,7 +1388,7 @@ static void spi_exchange_nodma(FAR struct spi_dev_s *dev, FAR const void *txbuff /* Exchange one word */ - word = (uint8_t)spi_send(dev, (uint16_t)word); + word = (uint8_t)spi_send(dev, (uint32_t)word); /* Is there a buffer to receive the return value? */ diff --git a/arch/arm/src/tiva/common/tiva_ssi.c b/arch/arm/src/tiva/common/tiva_ssi.c index c17f836b5f..893ae0f0ee 100644 --- a/arch/arm/src/tiva/common/tiva_ssi.c +++ b/arch/arm/src/tiva/common/tiva_ssi.c @@ -281,7 +281,7 @@ static void ssi_setmodeinternal(struct tiva_ssidev_s *priv, static void ssi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void ssi_setbitsinternal(struct tiva_ssidev_s *priv, int nbits); static void ssi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t ssi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t ssi_send(FAR struct spi_dev_s *dev, uint32_t wd); #ifdef CONFIG_SPI_EXCHANGE static void ssi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); @@ -1363,10 +1363,10 @@ static void ssi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t ssi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t ssi_send(FAR struct spi_dev_s *dev, uint32_t wd) { struct tiva_ssidev_s *priv = (struct tiva_ssidev_s *)dev; - uint16_t response = 0; + uint32_t response = 0; ssi_transfer(priv, &wd, &response, 1); return response; diff --git a/arch/arm/src/xmc4/xmc4_spi.c b/arch/arm/src/xmc4/xmc4_spi.c index 34959983f8..038437d377 100644 --- a/arch/arm/src/xmc4/xmc4_spi.c +++ b/arch/arm/src/xmc4/xmc4_spi.c @@ -287,7 +287,7 @@ static void spi_select(struct spi_dev_s *dev, uint32_t devid, static uint32_t spi_setfrequency(struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd); #ifdef CONFIG_XMC4_SPI_DMA static void spi_exchange_nodma(struct spi_dev_s *dev, @@ -1300,7 +1300,7 @@ static void spi_setbits(struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(struct spi_dev_s *dev, uint32_t wd) { uint8_t txbyte; uint8_t rxbyte; @@ -1315,7 +1315,7 @@ static uint16_t spi_send(struct spi_dev_s *dev, uint16_t wd) spi_exchange(dev, &txbyte, &rxbyte, 1); spiinfo("Sent %02x received %02x\n", txbyte, rxbyte); - return (uint16_t)rxbyte; + return (uint32_t)rxbyte; } /**************************************************************************** diff --git a/arch/avr/src/avr/up_spi.c b/arch/avr/src/avr/up_spi.c index bce9f6a0fe..540c284c43 100644 --- a/arch/avr/src/avr/up_spi.c +++ b/arch/avr/src/avr/up_spi.c @@ -85,7 +85,7 @@ static int spi_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_sndblock(FAR struct spi_dev_s *dev, FAR const void *buffer, size_t nwords); static void spi_recvblock(FAR struct spi_dev_s *dev, FAR void *buffer, size_t nwords); @@ -340,7 +340,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { /* Write the data to transmitted to the SPI Data Register */ @@ -352,7 +352,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Then return the received value */ - return (uint16_t)SPDR; + return (uint32_t)SPDR; } /**************************************************************************** diff --git a/arch/mips/src/pic32mx/pic32mx-spi.c b/arch/mips/src/pic32mx/pic32mx-spi.c index 89a22a1d90..57bd293c39 100644 --- a/arch/mips/src/pic32mx/pic32mx-spi.c +++ b/arch/mips/src/pic32mx/pic32mx-spi.c @@ -112,7 +112,7 @@ static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_sndblock(FAR struct spi_dev_s *dev, FAR const void *buffer, size_t nwords); static void spi_recvblock(FAR struct spi_dev_s *dev, FAR void *buffer, @@ -694,7 +694,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct pic32mx_dev_s *priv = (FAR struct pic32mx_dev_s *)dev; @@ -702,7 +702,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Write the data to transmitted to the SPI Data Register */ - spi_putreg(priv, PIC32MX_SPI_BUF_OFFSET, (uint32_t)wd); + spi_putreg(priv, PIC32MX_SPI_BUF_OFFSET, wd); #ifdef CONFIG_PIC32MX_SPI_ENHBUF /* Wait for the SPIRBE bit in the SPI Status Register to be set to 0. In @@ -722,7 +722,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) /* Return the SPI data */ - return (uint16_t)spi_getreg(priv, PIC32MX_SPI_BUF_OFFSET); + return spi_getreg(priv, PIC32MX_SPI_BUF_OFFSET); } /**************************************************************************** diff --git a/arch/mips/src/pic32mz/pic32mz-spi.c b/arch/mips/src/pic32mz/pic32mz-spi.c index ac0d94962a..5eb2dc6d00 100644 --- a/arch/mips/src/pic32mz/pic32mz-spi.c +++ b/arch/mips/src/pic32mz/pic32mz-spi.c @@ -228,7 +228,7 @@ static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); @@ -1434,7 +1434,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct pic32mz_dev_s *priv = (FAR struct pic32mz_dev_s *)dev; @@ -1456,7 +1456,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) spi_exchange16(priv, &txword, &rxword, 1); spiinfo("Sent %04x received %04x\n", txword, rxword); - return rxword; + return (uint32_t)rxword; } else { @@ -1470,7 +1470,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) spi_exchange8(priv, &txbyte, &rxbyte, 1); spiinfo("Sent %02x received %02x\n", txbyte, rxbyte); - return (uint16_t)rxbyte; + return (uint32_t)rxbyte; } } diff --git a/arch/sim/src/sim/up_spiflash.c b/arch/sim/src/sim/up_spiflash.c index 7eb8ee4534..6429b76e86 100644 --- a/arch/sim/src/sim/up_spiflash.c +++ b/arch/sim/src/sim/up_spiflash.c @@ -178,7 +178,7 @@ struct sim_spiflashdev_s FAR char * name; /* Name of the flash type (m25p, w25, etc.) */ int wren; int state; - uint16_t read_data; + uint32_t read_data; uint8_t last_cmd; uint8_t capacity; uint8_t manuf; @@ -197,7 +197,7 @@ static int spiflash_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t spiflash_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spiflash_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spiflash_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spiflash_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t spiflash_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spiflash_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); static void spiflash_select(FAR struct spi_dev_s *dev, uint32_t devid, @@ -214,7 +214,7 @@ static void spiflash_recvblock(FAR struct spi_dev_s *dev, FAR void *rxbuf #endif static void spiflash_writeword(FAR struct sim_spiflashdev_s *priv, uint16_t data); -static uint16_t spiflash_readword(FAR struct sim_spiflashdev_s *priv); +static uint32_t spiflash_readword(FAR struct sim_spiflashdev_s *priv); /************************************************************************************ * Private Data @@ -500,10 +500,10 @@ static uint8_t spiflash_status(FAR struct spi_dev_s *dev, uint32_t devid) * ************************************************************************************/ -static uint16_t spiflash_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spiflash_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct sim_spiflashdev_s *priv = (FAR struct sim_spiflashdev_s *)dev; - uint16_t ret; + uint32_t ret; if (priv->selected) { @@ -897,7 +897,7 @@ static void spiflash_writeword(FAR struct sim_spiflashdev_s *priv, uint16_t data * ************************************************************************************/ -static uint16_t spiflash_readword(FAR struct sim_spiflashdev_s *priv) +static uint32_t spiflash_readword(FAR struct sim_spiflashdev_s *priv) { return priv->read_data; } diff --git a/arch/z16/src/z16f/z16f_espi.c b/arch/z16/src/z16f/z16f_espi.c index 65c811f21b..b6d5498d5a 100644 --- a/arch/z16/src/z16f/z16f_espi.c +++ b/arch/z16/src/z16f/z16f_espi.c @@ -115,7 +115,7 @@ static int spi_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); #ifndef CONFIG_SPI_EXCHANGE @@ -580,7 +580,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { uint8_t txbyte; uint8_t rxbyte; @@ -595,7 +595,7 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) spi_exchange(dev, &txbyte, &rxbyte, 1); spiinfo("Sent %02x received %02x\n", txbyte, rxbyte); - return (uint16_t)rxbyte; + return (uint32_t)rxbyte; } /**************************************************************************** diff --git a/arch/z80/src/ez80/ez80_spi.c b/arch/z80/src/ez80/ez80_spi.c index f46b4a5a06..d74e520cdb 100644 --- a/arch/z80/src/ez80/ez80_spi.c +++ b/arch/z80/src/ez80/ez80_spi.c @@ -74,7 +74,7 @@ static int spi_lock(FAR struct spi_dev_s *dev, bool lock); static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, uint32_t frequency); static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); #ifdef CONFIG_SPI_EXCHANGE static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, @@ -405,7 +405,7 @@ static int spi_transfer(uint8_t chout, FAR uint8_t *chin) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { uint8_t response; int ret; @@ -414,11 +414,11 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) if (ret < 0) { spierr("ERROR: spi_transfer returned %d\n", ret); - return (uint16_t)0xff; + return (uint32_t)0xff; } spiinfo("ch: %04x response: %02x\n", wd, response); - return (uint16_t)response; + return (uint32_t)response; } /**************************************************************************** diff --git a/drivers/spi/spi_bitbang.c b/drivers/spi/spi_bitbang.c index 646c6db4ce..7b957ed915 100644 --- a/drivers/spi/spi_bitbang.c +++ b/drivers/spi/spi_bitbang.c @@ -96,7 +96,7 @@ static uint32_t spi_setfrequency(FAR struct spi_dev_s *dev, static void spi_setmode(FAR struct spi_dev_s *dev, enum spi_mode_e mode); static void spi_setbits(FAR struct spi_dev_s *dev, int nbits); -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t ch); +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd); static void spi_exchange(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer, size_t nwords); @@ -308,12 +308,12 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits) * ****************************************************************************/ -static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd) +static uint32_t spi_send(FAR struct spi_dev_s *dev, uint32_t wd) { FAR struct spi_bitbang_s *priv = (FAR struct spi_bitbang_s *)dev; DEBUGASSERT(priv && priv->low && priv->low->exchange); - return priv->low->exchange(priv, wd); + return priv->low->exchange(priv, (uint16_t)wd); } /**************************************************************************** diff --git a/include/nuttx/spi/spi.h b/include/nuttx/spi/spi.h index aba5de25a7..b840b1d3f4 100644 --- a/include/nuttx/spi/spi.h +++ b/include/nuttx/spi/spi.h @@ -573,7 +573,7 @@ struct spi_ops_s CODE int (*cmddata)(FAR struct spi_dev_s *dev, uint32_t devid, bool cmd); #endif - CODE uint16_t (*send)(FAR struct spi_dev_s *dev, uint16_t wd); + CODE uint32_t (*send)(FAR struct spi_dev_s *dev, uint32_t wd); #ifdef CONFIG_SPI_EXCHANGE CODE void (*exchange)(FAR struct spi_dev_s *dev, FAR const void *txbuffer, FAR void *rxbuffer,