This source file includes following definitions.
- gpio_chipset_tag_t
- gpio_pin_t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #ifndef _DEV_GPIO_GPIOVAR_H_
20 #define _DEV_GPIO_GPIOVAR_H_
21
22
23 typedef struct gpio_chipset_tag {
24 void *gp_cookie;
25
26 int (*gp_pin_read)(void *, int);
27 void (*gp_pin_write)(void *, int, int);
28 void (*gp_pin_ctl)(void *, int, int);
29 } *gpio_chipset_tag_t;
30
31
32 typedef struct gpio_pin {
33 int pin_num;
34 int pin_caps;
35 int pin_flags;
36 int pin_state;
37 int pin_mapped;
38 } gpio_pin_t;
39
40
41 struct gpiobus_attach_args {
42 const char *gba_name;
43 gpio_chipset_tag_t gba_gc;
44 gpio_pin_t *gba_pins;
45 int gba_npins;
46 };
47
48 int gpiobus_print(void *, const char *);
49
50
51 #define gpiobus_pin_read(gc, pin) \
52 ((gc)->gp_pin_read((gc)->gp_cookie, (pin)))
53 #define gpiobus_pin_write(gc, pin, value) \
54 ((gc)->gp_pin_write((gc)->gp_cookie, (pin), (value)))
55 #define gpiobus_pin_ctl(gc, pin, flags) \
56 ((gc)->gp_pin_ctl((gc)->gp_cookie, (pin), (flags)))
57
58
59 struct gpio_attach_args {
60 void * ga_gpio;
61 int ga_offset;
62 u_int32_t ga_mask;
63 };
64
65
66 struct gpio_pinmap {
67 int * pm_map;
68 int pm_size;
69 };
70
71 int gpio_pin_map(void *, int, u_int32_t, struct gpio_pinmap *);
72 void gpio_pin_unmap(void *, struct gpio_pinmap *);
73 int gpio_pin_read(void *, struct gpio_pinmap *, int);
74 void gpio_pin_write(void *, struct gpio_pinmap *, int, int);
75 void gpio_pin_ctl(void *, struct gpio_pinmap *, int, int);
76 int gpio_pin_caps(void *, struct gpio_pinmap *, int);
77
78 int gpio_npins(u_int32_t);
79
80 #endif