1 /*
2  * Copyright (c) 2006-2022, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date         Author      Notes
8  * 2011-02-21   onelife     Initial creation for EFM32
9  * 2011-07-14   onelife     Add multiple channels support for scan mode
10  */
11 
12 #ifndef __DRV_EMU_H__
13 #define __DRV_EMU_H__
14 
15 /* Includes ------------------------------------------------------------------*/
16 /* Exported defines ----------------------------------------------------------*/
17 #define EMU_TASK_STACK_SIZE         (256)
18 #define EMU_TASK_EM2_TOKEN_NUMBER   (255)
19 #define EMU_TASK_EM3_TOKEN_NUMBER   (255)
20 #define EMU_TASK_EM4_TOKEN_NUMBER   (255)
21 #define EMU_RX_MESSAGE_SIZE         (4)
22 #define EMU_RX_MESSAGE_QUEUE_SIZE   (1)
23 
24 /* Exported types ------------------------------------------------------------*/
25 struct efm32_emu_task
26 {
27     struct rt_thread        thread;
28     struct rt_semaphore     em2;
29     struct rt_semaphore     em3;
30     struct rt_semaphore     em4;
31     rt_uint8_t              stack[EMU_TASK_STACK_SIZE];
32 };
33 
34 /* Exported constants --------------------------------------------------------*/
35 /* Exported macro ------------------------------------------------------------*/
36 /* Exported functions ------------------------------------------------------- */
37 void emu_all_disable(void);
38 void emu_em2_disable(void);
39 void emu_em2_enable(void);
40 void emu_em3_disable(void);
41 void emu_em3_enable(void);
42 void emu_em4_disable(void);
43 void emu_em4_enable(void);
44 void efm32_emu_init(void);
45 
46 #endif /*__DRV_EMU_H__ */
47