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