summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2016-03-04 09:07:53 +0200
committerGerrit Code Review <gerrit@zephyrproject.org>2016-03-04 20:13:21 +0000
commit0efd558cbc237a74b142d5cc14e716668e6118ca (patch)
tree872fc67be8e5bedd788d2ce342a2ab4c02821ae2
parent8708b73c6513c186e2f6f1da7434add4a2b943e6 (diff)
SPI: Change read/write buffer pointers to void *
There's no reason to require callers to cast their data to uint8_t * when the data might e.g. originate in a packed struct or some other data type. Instead, be nice to callers and let them use any pointer they want. Additionally, declare the TX buffer as a const pointer so unnecessary typecasts aren't needed for that either (if the data originates in a const location). Change-Id: I1482ca4e350b5a7fbda6871ed9f54f255af3aa9e Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
-rw-r--r--drivers/adc/adc_ti_adc108s102.c9
-rw-r--r--drivers/spi/spi_dw.c4
-rw-r--r--drivers/spi/spi_dw.h2
-rw-r--r--drivers/spi/spi_intel.c4
-rw-r--r--drivers/spi/spi_intel.h2
-rw-r--r--drivers/spi/spi_qmsi.c4
-rw-r--r--include/spi.h12
7 files changed, 18 insertions, 19 deletions
diff --git a/drivers/adc/adc_ti_adc108s102.c b/drivers/adc/adc_ti_adc108s102.c
index d27b988a9..f2b90f73b 100644
--- a/drivers/adc/adc_ti_adc108s102.c
+++ b/drivers/adc/adc_ti_adc108s102.c
@@ -42,11 +42,10 @@ static inline int _ti_adc108s102_sampling(struct device *dev)
DBG("Sampling!\n");
/* SPI deals with uint8_t buffers so multiplying by 2 the length */
- return spi_transceive(adc->spi,
- (uint8_t *) adc->cmd_buffer,
- adc->cmd_buf_len*2,
- (uint8_t *) adc->sampling_buffer,
- adc->sampling_buf_len*2);
+ return spi_transceive(adc->spi, adc->cmd_buffer,
+ adc->cmd_buf_len * 2,
+ adc->sampling_buffer,
+ adc->sampling_buf_len * 2);
}
static inline void _ti_adc108s102_handle_result(struct device *dev)
diff --git a/drivers/spi/spi_dw.c b/drivers/spi/spi_dw.c
index e0af9c130..d52014da1 100644
--- a/drivers/spi/spi_dw.c
+++ b/drivers/spi/spi_dw.c
@@ -257,8 +257,8 @@ static int spi_dw_slave_select(struct device *dev, uint32_t slave)
}
static int spi_dw_transceive(struct device *dev,
- uint8_t *tx_buf, uint32_t tx_buf_len,
- uint8_t *rx_buf, uint32_t rx_buf_len)
+ const void *tx_buf, uint32_t tx_buf_len,
+ void *rx_buf, uint32_t rx_buf_len)
{
struct spi_dw_config *info = dev->config->config_info;
struct spi_dw_data *spi = dev->driver_data;
diff --git a/drivers/spi/spi_dw.h b/drivers/spi/spi_dw.h
index aae1c1356..527ab041c 100644
--- a/drivers/spi/spi_dw.h
+++ b/drivers/spi/spi_dw.h
@@ -53,7 +53,7 @@ struct spi_dw_data {
#ifdef CONFIG_SPI_DW_CS_GPIO
struct device *cs_gpio_port;
#endif /* CONFIG_SPI_DW_CS_GPIO */
- uint8_t *tx_buf;
+ const uint8_t *tx_buf;
uint32_t tx_buf_len;
uint8_t *rx_buf;
uint32_t rx_buf_len;
diff --git a/drivers/spi/spi_intel.c b/drivers/spi/spi_intel.c
index 668d059e8..57596d63b 100644
--- a/drivers/spi/spi_intel.c
+++ b/drivers/spi/spi_intel.c
@@ -263,8 +263,8 @@ static int spi_intel_configure(struct device *dev,
}
static int spi_intel_transceive(struct device *dev,
- uint8_t *tx_buf, uint32_t tx_buf_len,
- uint8_t *rx_buf, uint32_t rx_buf_len)
+ const void *tx_buf, uint32_t tx_buf_len,
+ void *rx_buf, uint32_t rx_buf_len)
{
struct spi_intel_config *info = dev->config->config_info;
struct spi_intel_data *spi = dev->driver_data;
diff --git a/drivers/spi/spi_intel.h b/drivers/spi/spi_intel.h
index ae453131a..04acbb562 100644
--- a/drivers/spi/spi_intel.h
+++ b/drivers/spi/spi_intel.h
@@ -51,7 +51,7 @@ struct spi_intel_data {
#endif /* CONFIG_SPI_INTEL_CS_GPIO */
uint32_t sscr0;
uint32_t sscr1;
- uint8_t *tx_buf;
+ const uint8_t *tx_buf;
uint8_t *rx_buf;
uint32_t t_buf_len;
uint32_t r_buf_len;
diff --git a/drivers/spi/spi_qmsi.c b/drivers/spi/spi_qmsi.c
index 1ddcedee8..341621cde 100644
--- a/drivers/spi/spi_qmsi.c
+++ b/drivers/spi/spi_qmsi.c
@@ -156,8 +156,8 @@ static inline uint8_t frame_size_to_dfs(qm_spi_frame_size_t frame_size)
}
static int spi_qmsi_transceive(struct device *dev,
- uint8_t *tx_buf, uint32_t tx_buf_len,
- uint8_t *rx_buf, uint32_t rx_buf_len)
+ const void *tx_buf, uint32_t tx_buf_len,
+ void *rx_buf, uint32_t rx_buf_len)
{
struct spi_qmsi_config *spi_config = dev->config->config_info;
qm_spi_t spi = spi_config->spi;
diff --git a/include/spi.h b/include/spi.h
index 41e6247f3..895dd292a 100644
--- a/include/spi.h
+++ b/include/spi.h
@@ -81,8 +81,8 @@ typedef int (*spi_api_configure)(struct device *dev,
struct spi_config *config);
typedef int (*spi_api_slave_select)(struct device *dev, uint32_t slave);
typedef int (*spi_api_io)(struct device *dev,
- uint8_t *tx_buf, uint32_t tx_buf_len,
- uint8_t *rx_buf, uint32_t rx_buf_len);
+ const void *tx_buf, uint32_t tx_buf_len,
+ void *rx_buf, uint32_t rx_buf_len);
typedef int (*spi_api_control)(struct device *dev);
struct spi_driver_api {
@@ -143,7 +143,7 @@ static inline int spi_slave_select(struct device *dev, uint32_t slave)
* @retval DEV_OK If successful.
* @retval DEV_* Code otherwise.
*/
-static inline int spi_read(struct device *dev, uint8_t *buf, uint32_t len)
+static inline int spi_read(struct device *dev, void *buf, uint32_t len)
{
struct spi_driver_api *api = (struct spi_driver_api *)dev->driver_api;
@@ -159,7 +159,7 @@ static inline int spi_read(struct device *dev, uint8_t *buf, uint32_t len)
* @retval DEV_OK If successful.
* @retval DEV_* Code otherwise.
*/
-static inline int spi_write(struct device *dev, uint8_t *buf, uint32_t len)
+static inline int spi_write(struct device *dev, const void *buf, uint32_t len)
{
struct spi_driver_api *api = (struct spi_driver_api *)dev->driver_api;
@@ -181,8 +181,8 @@ static inline int spi_write(struct device *dev, uint8_t *buf, uint32_t len)
* @retval DEV_* Code otherwise.
*/
static inline int spi_transceive(struct device *dev,
- uint8_t *tx_buf, uint32_t tx_buf_len,
- uint8_t *rx_buf, uint32_t rx_buf_len)
+ const void *tx_buf, uint32_t tx_buf_len,
+ void *rx_buf, uint32_t rx_buf_len)
{
struct spi_driver_api *api = (struct spi_driver_api *)dev->driver_api;