summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/drivers/spi/spi-bit-ops.c5
-rw-r--r--components/drivers/spi/spi-bit-ops.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/components/drivers/spi/spi-bit-ops.c b/components/drivers/spi/spi-bit-ops.c
index d03e5007cf..f551741873 100644
--- a/components/drivers/spi/spi-bit-ops.c
+++ b/components/drivers/spi/spi-bit-ops.c
@@ -384,6 +384,11 @@ rt_err_t spi_bit_configure(struct rt_spi_device *device, struct rt_spi_configura
RT_ASSERT(device != RT_NULL);
RT_ASSERT(configuration != RT_NULL);
+ if(ops->pin_init != RT_NULL)
+ {
+ ops->pin_init();
+ }
+
if (configuration->mode & RT_SPI_SLAVE)
{
return -RT_EIO;
diff --git a/components/drivers/spi/spi-bit-ops.h b/components/drivers/spi/spi-bit-ops.h
index b536b3d81e..d1e83cdedd 100644
--- a/components/drivers/spi/spi-bit-ops.h
+++ b/components/drivers/spi/spi-bit-ops.h
@@ -21,6 +21,7 @@ extern "C" {
struct rt_spi_bit_ops
{
void *data; /* private data for lowlevel routines */
+ void (*const pin_init)(void);
void (*const tog_sclk)(void *data);
void (*const set_sclk)(void *data, rt_int32_t state);
void (*const set_mosi)(void *data, rt_int32_t state);