blob: 82035c494322b2a4276ce611f30fd6931baa8059 [file] [log] [blame]
binbin.wang74f02872024-07-09 21:38:33 +08001/*
2 * Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
3 *
4 * SPDX-License-Identifier: MIT
5 */
6
7#ifndef __BOARD_COMMON_H__
8#define __BOARD_COMMON_H__
9
10#define GE_GPIO_CTRL(n, io, is_invert) \
11static inline void n##_on(void) \
12{ \
13 int ret; \
14 printf("%s on, invert:%d\n", #n, is_invert); \
15 ret = xGpioSetDir(io, GPIO_DIR_OUT); \
16 if (ret < 0) { \
17 printf("%s gpio dir fail\n", #n); \
18 return; \
19 } \
20 \
21 if (is_invert) \
22 ret = xGpioSetValue(io, GPIO_LEVEL_LOW); \
23 else \
24 ret = xGpioSetValue(io, GPIO_LEVEL_HIGH); \
25 if (ret < 0) { \
26 printf("%s set gpio val fail\n", #n); \
27 return; \
28 } \
29} \
30 \
31static inline void n##_off(void) \
32{ \
33 int ret; \
34 printf("%s off, invert:%d\n", #n, is_invert); \
35 ret = xGpioSetDir(io, GPIO_DIR_OUT); \
36 if (ret < 0) { \
37 printf("%s gpio dir fail\n", #n); \
38 return; \
39 } \
40 \
41 if (is_invert) \
42 ret = xGpioSetValue(io, GPIO_LEVEL_HIGH); \
43 else \
44 ret = xGpioSetValue(io, GPIO_LEVEL_LOW); \
45 if (ret < 0) { \
46 printf("%s set gpio val fail\n", #n); \
47 return; \
48 } \
49}
50
51#define HIZ_GPIO_CTRL(n, io) \
52static inline void n##_on(void) \
53{ \
54 int ret; \
55 ret = xGpioSetDir(io, GPIO_DIR_IN); \
56 if (ret < 0) { \
57 printf("%s gpio dir fail\n", #n); \
58 return; \
59 } \
60} \
61 \
62static inline void n##_off(void) \
63{ \
64 int ret; \
65 ret = xGpioSetDir(io, GPIO_DIR_OUT); \
66 if (ret < 0) { \
67 printf("%s gpio dir fail\n", #n); \
68 return; \
69 } \
70 \
71}
72#define INVERT 1
73#define NOINVERT 0
74
75#endif /* __BOARD_COMMON_H__ */