1 /* 2 * Copyright (c) 2006-2025, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2021-08-23 Mr.Tiger first version 9 */ 10 11 #ifndef __DRV_SPI_H__ 12 #define __DRV_SPI_H__ 13 14 #include <rtthread.h> 15 #include <rtdevice.h> 16 #include "hal_data.h" 17 #include "board.h" 18 #include <rthw.h> 19 #include <drv_common.h> 20 #include <drv_config.h> 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 #if defined(R_SPI_H) || defined(R_SPI_API_H) 27 struct ra_spi_handle 28 { 29 const char bus_name[RT_NAME_MAX]; 30 const spi_cfg_t *spi_cfg_t; 31 #if defined(R_SPI_API_H) 32 const spi_ctrl_t *spi_ctrl_t; 33 #else 34 const spi_instance_ctrl_t *spi_ctrl_t; 35 #endif 36 }; 37 38 struct ra_spi 39 { 40 rt_uint32_t cs_pin; 41 struct ra_spi_handle *ra_spi_handle_t; 42 struct rt_spi_configuration *rt_spi_cfg_t; 43 struct rt_spi_bus bus; 44 }; 45 #endif 46 47 rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, rt_base_t cs_pin); 48 49 #ifdef __cplusplus 50 } 51 #endif 52 53 /* stm32 spi dirver class */ 54 55 #endif /*__DRV_SPI_H__ */ 56