brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · d4b29d9 Raw
73 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2 3#ifndef _LINUX_VIRTIO_GPIO_H4#define _LINUX_VIRTIO_GPIO_H5 6#include <linux/types.h>7 8/* Virtio GPIO Feature bits */9#define VIRTIO_GPIO_F_IRQ			010 11/* Virtio GPIO request types */12#define VIRTIO_GPIO_MSG_GET_NAMES		0x000113#define VIRTIO_GPIO_MSG_GET_DIRECTION		0x000214#define VIRTIO_GPIO_MSG_SET_DIRECTION		0x000315#define VIRTIO_GPIO_MSG_GET_VALUE		0x000416#define VIRTIO_GPIO_MSG_SET_VALUE		0x000517#define VIRTIO_GPIO_MSG_IRQ_TYPE		0x000618 19/* Possible values of the status field */20#define VIRTIO_GPIO_STATUS_OK			0x021#define VIRTIO_GPIO_STATUS_ERR			0x122 23/* Direction types */24#define VIRTIO_GPIO_DIRECTION_NONE		0x0025#define VIRTIO_GPIO_DIRECTION_OUT		0x0126#define VIRTIO_GPIO_DIRECTION_IN		0x0227 28/* Virtio GPIO IRQ types */29#define VIRTIO_GPIO_IRQ_TYPE_NONE		0x0030#define VIRTIO_GPIO_IRQ_TYPE_EDGE_RISING	0x0131#define VIRTIO_GPIO_IRQ_TYPE_EDGE_FALLING	0x0232#define VIRTIO_GPIO_IRQ_TYPE_EDGE_BOTH		0x0333#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_HIGH		0x0434#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_LOW		0x0835 36struct virtio_gpio_config {37	__le16 ngpio;38	__u8 padding[2];39	__le32 gpio_names_size;40};41 42/* Virtio GPIO Request / Response */43struct virtio_gpio_request {44	__le16 type;45	__le16 gpio;46	__le32 value;47};48 49struct virtio_gpio_response {50	__u8 status;51	__u8 value;52};53 54struct virtio_gpio_response_get_names {55	__u8 status;56	__u8 value[];57};58 59/* Virtio GPIO IRQ Request / Response */60struct virtio_gpio_irq_request {61	__le16 gpio;62};63 64struct virtio_gpio_irq_response {65	__u8 status;66};67 68/* Possible values of the interrupt status field */69#define VIRTIO_GPIO_IRQ_STATUS_INVALID		0x070#define VIRTIO_GPIO_IRQ_STATUS_VALID		0x171 72#endif /* _LINUX_VIRTIO_GPIO_H */73