1 /* 2 * Copyright (c) 2006-2023, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2023-06-02 Chushicheng the first version 9 */ 10 #ifndef DRV_SOFT_SPI_H_ 11 #define DRV_SOFT_SPI_H_ 12 13 #ifdef BSP_USING_SOFT_SPI 14 #include <rtdevice.h> 15 #include <dev_spi_bit_ops.h> 16 17 /* pico soft spi config */ 18 struct pico_soft_spi_config 19 { 20 rt_uint8_t sck; 21 rt_uint8_t mosi; 22 rt_uint8_t miso; 23 const char *bus_name; 24 }; 25 26 /* pico soft spi dirver */ 27 struct pico_soft_spi 28 { 29 struct rt_spi_bit_obj spi; 30 struct pico_soft_spi_config *cfg; 31 }; 32 33 #ifdef BSP_USING_SOFT_SPI0 34 #define SOFT_SPI0_BUS_CONFIG \ 35 { \ 36 .sck = BSP_S_SPI0_SCK_PIN, \ 37 .mosi = BSP_S_SPI0_MOSI_PIN, \ 38 .miso = BSP_S_SPI0_MISO_PIN, \ 39 .bus_name = "sspi0", \ 40 } 41 #endif /* BSP_USING_SOFT_SPI0 */ 42 #ifdef BSP_USING_SOFT_SPI1 43 #define SOFT_SPI1_BUS_CONFIG \ 44 { \ 45 .sck = BSP_S_SPI1_SCK_PIN, \ 46 .mosi = BSP_S_SPI_MOSI_PIN, \ 47 .miso = BSP_S_SPI1_MISO_PIN, \ 48 .bus_name = "sspi1", \ 49 } 50 #endif /* BSP_USING_SOFT_SPI1 */ 51 52 rt_err_t rt_hw_softspi_device_attach(const char *bus_name, const char *device_name, rt_base_t cs_pin); 53 int rt_soft_spi_init(void); 54 55 #endif /* BSP_USING_SOFT_SPI */ 56 #endif /* __DRV_SOFT_SPI__ */ 57