blob: 066d7c1ad698e16372a3954e43b3b7fe761a762e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
/* SPDX-License-Identifier: BSD-2-Clause */
/*
* Copyright (c) 2016, Linaro Limited
*/
#ifndef __GPIO_H__
#define __GPIO_H__
enum gpio_dir {
GPIO_DIR_OUT,
GPIO_DIR_IN
};
enum gpio_level {
GPIO_LEVEL_LOW,
GPIO_LEVEL_HIGH
};
enum gpio_interrupt {
GPIO_INTERRUPT_DISABLE,
GPIO_INTERRUPT_ENABLE
};
struct gpio_chip {
const struct gpio_ops *ops;
};
struct gpio_ops {
enum gpio_dir (*get_direction)(unsigned int gpio_pin);
void (*set_direction)(unsigned int gpio_pin, enum gpio_dir direction);
enum gpio_level (*get_value)(unsigned int gpio_pin);
void (*set_value)(unsigned int gpio_pin, enum gpio_level value);
enum gpio_interrupt (*get_interrupt)(unsigned int gpio_pin);
void (*set_interrupt)(unsigned int gpio_pin,
enum gpio_interrupt ena_dis);
};
#endif /* __GPIO_H__ */
|