blob: de25bf9a0ca30288d7e01a3cff6767a4f1e17d10 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Christopher Ferris2abfa9e2021-11-01 16:26:06 -07007#ifndef _LINUX_VIRTIO_GPIO_H
8#define _LINUX_VIRTIO_GPIO_H
9#include <linux/types.h>
Christopher Ferrisa4792612022-01-10 13:51:15 -080010#define VIRTIO_GPIO_F_IRQ 0
Christopher Ferris2abfa9e2021-11-01 16:26:06 -070011#define VIRTIO_GPIO_MSG_GET_NAMES 0x0001
12#define VIRTIO_GPIO_MSG_GET_DIRECTION 0x0002
13#define VIRTIO_GPIO_MSG_SET_DIRECTION 0x0003
14#define VIRTIO_GPIO_MSG_GET_VALUE 0x0004
15#define VIRTIO_GPIO_MSG_SET_VALUE 0x0005
Christopher Ferrisa4792612022-01-10 13:51:15 -080016#define VIRTIO_GPIO_MSG_IRQ_TYPE 0x0006
Christopher Ferris2abfa9e2021-11-01 16:26:06 -070017#define VIRTIO_GPIO_STATUS_OK 0x0
18#define VIRTIO_GPIO_STATUS_ERR 0x1
19#define VIRTIO_GPIO_DIRECTION_NONE 0x00
20#define VIRTIO_GPIO_DIRECTION_OUT 0x01
21#define VIRTIO_GPIO_DIRECTION_IN 0x02
Christopher Ferrisa4792612022-01-10 13:51:15 -080022#define VIRTIO_GPIO_IRQ_TYPE_NONE 0x00
23#define VIRTIO_GPIO_IRQ_TYPE_EDGE_RISING 0x01
24#define VIRTIO_GPIO_IRQ_TYPE_EDGE_FALLING 0x02
25#define VIRTIO_GPIO_IRQ_TYPE_EDGE_BOTH 0x03
26#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_HIGH 0x04
27#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_LOW 0x08
Christopher Ferris2abfa9e2021-11-01 16:26:06 -070028struct virtio_gpio_config {
29 __le16 ngpio;
30 __u8 padding[2];
31 __le32 gpio_names_size;
Christopher Ferrisa4792612022-01-10 13:51:15 -080032};
Christopher Ferris2abfa9e2021-11-01 16:26:06 -070033struct virtio_gpio_request {
34 __le16 type;
35 __le16 gpio;
36 __le32 value;
37};
38struct virtio_gpio_response {
39 __u8 status;
40 __u8 value;
41};
42struct virtio_gpio_response_get_names {
43 __u8 status;
44 __u8 value[];
45};
Christopher Ferrisa4792612022-01-10 13:51:15 -080046struct virtio_gpio_irq_request {
47 __le16 gpio;
48};
49struct virtio_gpio_irq_response {
50 __u8 status;
51};
52#define VIRTIO_GPIO_IRQ_STATUS_INVALID 0x0
53#define VIRTIO_GPIO_IRQ_STATUS_VALID 0x1
Christopher Ferris2abfa9e2021-11-01 16:26:06 -070054#endif