xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/virtio_gpio.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _LINUX_VIRTIO_GPIO_H
8*8d67ca89SAndroid Build Coastguard Worker #define _LINUX_VIRTIO_GPIO_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_F_IRQ 0
11*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_MSG_GET_NAMES 0x0001
12*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_MSG_GET_DIRECTION 0x0002
13*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_MSG_SET_DIRECTION 0x0003
14*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_MSG_GET_VALUE 0x0004
15*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_MSG_SET_VALUE 0x0005
16*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_MSG_IRQ_TYPE 0x0006
17*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_STATUS_OK 0x0
18*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_STATUS_ERR 0x1
19*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_DIRECTION_NONE 0x00
20*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_DIRECTION_OUT 0x01
21*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_DIRECTION_IN 0x02
22*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_IRQ_TYPE_NONE 0x00
23*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_IRQ_TYPE_EDGE_RISING 0x01
24*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_IRQ_TYPE_EDGE_FALLING 0x02
25*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_IRQ_TYPE_EDGE_BOTH 0x03
26*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_IRQ_TYPE_LEVEL_HIGH 0x04
27*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_IRQ_TYPE_LEVEL_LOW 0x08
28*8d67ca89SAndroid Build Coastguard Worker struct virtio_gpio_config {
29*8d67ca89SAndroid Build Coastguard Worker   __le16 ngpio;
30*8d67ca89SAndroid Build Coastguard Worker   __u8 padding[2];
31*8d67ca89SAndroid Build Coastguard Worker   __le32 gpio_names_size;
32*8d67ca89SAndroid Build Coastguard Worker };
33*8d67ca89SAndroid Build Coastguard Worker struct virtio_gpio_request {
34*8d67ca89SAndroid Build Coastguard Worker   __le16 type;
35*8d67ca89SAndroid Build Coastguard Worker   __le16 gpio;
36*8d67ca89SAndroid Build Coastguard Worker   __le32 value;
37*8d67ca89SAndroid Build Coastguard Worker };
38*8d67ca89SAndroid Build Coastguard Worker struct virtio_gpio_response {
39*8d67ca89SAndroid Build Coastguard Worker   __u8 status;
40*8d67ca89SAndroid Build Coastguard Worker   __u8 value;
41*8d67ca89SAndroid Build Coastguard Worker };
42*8d67ca89SAndroid Build Coastguard Worker struct virtio_gpio_response_get_names {
43*8d67ca89SAndroid Build Coastguard Worker   __u8 status;
44*8d67ca89SAndroid Build Coastguard Worker   __u8 value[];
45*8d67ca89SAndroid Build Coastguard Worker };
46*8d67ca89SAndroid Build Coastguard Worker struct virtio_gpio_irq_request {
47*8d67ca89SAndroid Build Coastguard Worker   __le16 gpio;
48*8d67ca89SAndroid Build Coastguard Worker };
49*8d67ca89SAndroid Build Coastguard Worker struct virtio_gpio_irq_response {
50*8d67ca89SAndroid Build Coastguard Worker   __u8 status;
51*8d67ca89SAndroid Build Coastguard Worker };
52*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_IRQ_STATUS_INVALID 0x0
53*8d67ca89SAndroid Build Coastguard Worker #define VIRTIO_GPIO_IRQ_STATUS_VALID 0x1
54*8d67ca89SAndroid Build Coastguard Worker #endif
55