1 /*
2  * Copyright (C) 2017-2019 Alibaba Group Holding Limited
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2020-08-20     zx.chen      Header File for Common Driver
9  */
10 
11 #ifndef _DRV_COMMON_H_
12 #define _DRV_COMMON_H_
13 
14 #include <stdint.h>
15 #include <drv_errno.h>
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 /// \details driver handle
22 typedef void *drv_handle_t;
23 
24 #ifndef CONFIG_PARAM_NOT_CHECK
25 #define HANDLE_PARAM_CHK(para, err)                                                                \
26     do {                                                                                           \
27         if ((int32_t)para == (int32_t)NULL) {                                                      \
28             return (err);                                                                          \
29         }                                                                                          \
30     } while (0)
31 
32 #define HANDLE_PARAM_CHK_NORETVAL(para, err)                                                          \
33     do {                                                                                           \
34         if ((int32_t)para == (int32_t)NULL) {                                                      \
35             return;                                                                                \
36         }                                                                                          \
37     } while (0)
38 #else
39 #define HANDLE_PARAM_CHK(para, err)
40 #define HANDLE_PARAM_CHK_NORETVAL(para, err)
41 #endif
42 
43 /**
44 \brief General power states
45 */
46 typedef enum
47 {
48     DRV_POWER_OFF,                        ///< Power off: no operation possible
49     DRV_POWER_LOW,                        ///< Low Power mode: retain state, detect and signal wake-up events
50     DRV_POWER_FULL,                       ///< Power on: full operation at maximum performance
51     DRV_POWER_SUSPEND,                    ///< Power suspend: power saving operation
52 } csi_power_stat_e;
53 
54 #ifdef __cplusplus
55 }
56 #endif
57 
58 #endif /* _DRV_COMMON_H */
59 
60