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 * 2022-10-01 zhs the first version which add from wch 9 */ 10 #ifndef LIBRARIES_HAL_DRIVERS_DRV_SOFT_SPI_H_ 11 #define LIBRARIES_HAL_DRIVERS_DRV_SOFT_SPI_H_ 12 13 #include <rthw.h> 14 #include <rtdevice.h> 15 #include <dev_spi_bit_ops.h> 16 17 /* ch32 soft spi config */ 18 struct ch32_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 /* ch32 soft spi dirver */ 27 struct ch32_soft_spi 28 { 29 struct rt_spi_bit_obj spi; 30 struct ch32_soft_spi_config *cfg; 31 }; 32 33 #ifdef BSP_USING_SOFT_SPI1 34 #define SOFT_SPI1_BUS_CONFIG \ 35 { \ 36 .sck = BSP_S_SPI1_SCK_PIN, \ 37 .mosi = BSP_S_SPI1_MOSI_PIN, \ 38 .miso = BSP_S_SPI1_MISO_PIN, \ 39 .bus_name = "sspi1", \ 40 } 41 #endif /* BSP_USING_SOFT_SPI1 */ 42 #ifdef BSP_USING_SOFT_SPI2 43 #define SOFT_SPI2_BUS_CONFIG \ 44 { \ 45 .sck = BSP_S_SPI2_SCK_PIN, \ 46 .mosi = BSP_S_SPI2_MOSI_PIN, \ 47 .miso = BSP_S_SPI2_MISO_PIN, \ 48 .bus_name = "sspi2", \ 49 } 50 #endif /* BSP_USING_SOFT_SPI2 */ 51 52 rt_err_t rt_hw_soft_spi_device_attach(const char *bus_name, const char *device_name, const char *pin_name); 53 int rt_soft_spi_init(void); 54 55 #endif /* __DRV_SOFT_SPI__ */ 56 57