| /* SPDX-License-Identifier: GPL-2.0-or-later WITH Linux-syscall-note */ | |
| /* | |
| * Definitions for virtio I2C Adpter | |
| * | |
| * Copyright (c) 2021 Intel Corporation. All rights reserved. | |
| */ | |
| #ifndef _LINUX_VIRTIO_I2C_H | |
| #define _LINUX_VIRTIO_I2C_H | |
| #include "standard-headers/linux/const.h" | |
| #include "standard-headers/linux/types.h" | |
| /* Virtio I2C Feature bits */ | |
| #define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST 0 | |
| /* The bit 0 of the @virtio_i2c_out_hdr.@flags, used to group the requests */ | |
| #define VIRTIO_I2C_FLAGS_FAIL_NEXT _BITUL(0) | |
| /* The bit 1 of the @virtio_i2c_out_hdr.@flags, used to mark a buffer as read */ | |
| #define VIRTIO_I2C_FLAGS_M_RD _BITUL(1) | |
| /** | |
| * struct virtio_i2c_out_hdr - the virtio I2C message OUT header | |
| * @addr: the controlled device address | |
| * @padding: used to pad to full dword | |
| * @flags: used for feature extensibility | |
| */ | |
| struct virtio_i2c_out_hdr { | |
| uint16_t addr; | |
| uint16_t padding; | |
| uint32_t flags; | |
| }; | |
| /** | |
| * struct virtio_i2c_in_hdr - the virtio I2C message IN header | |
| * @status: the processing result from the backend | |
| */ | |
| struct virtio_i2c_in_hdr { | |
| uint8_t status; | |
| }; | |
| /* The final status written by the device */ | |
| #define VIRTIO_I2C_MSG_OK 0 | |
| #define VIRTIO_I2C_MSG_ERR 1 | |
| #endif /* _LINUX_VIRTIO_I2C_H */ |