1/* SPDX-License-Identifier: GPL-2.0-or-later WITH Linux-syscall-note */ 2/* 3 * Definitions for virtio I2C Adpter 4 * 5 * Copyright (c) 2021 Intel Corporation. All rights reserved. 6 */ 7 8#ifndef _LINUX_VIRTIO_I2C_H 9#define _LINUX_VIRTIO_I2C_H 10 11#include "standard-headers/linux/const.h" 12#include "standard-headers/linux/types.h" 13 14/* Virtio I2C Feature bits */ 15#define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST 0 16 17/* The bit 0 of the @virtio_i2c_out_hdr.@flags, used to group the requests */ 18#define VIRTIO_I2C_FLAGS_FAIL_NEXT _BITUL(0) 19 20/* The bit 1 of the @virtio_i2c_out_hdr.@flags, used to mark a buffer as read */ 21#define VIRTIO_I2C_FLAGS_M_RD _BITUL(1) 22 23/** 24 * struct virtio_i2c_out_hdr - the virtio I2C message OUT header 25 * @addr: the controlled device address 26 * @padding: used to pad to full dword 27 * @flags: used for feature extensibility 28 */ 29struct virtio_i2c_out_hdr { 30 uint16_t addr; 31 uint16_t padding; 32 uint32_t flags; 33}; 34 35/** 36 * struct virtio_i2c_in_hdr - the virtio I2C message IN header 37 * @status: the processing result from the backend 38 */ 39struct virtio_i2c_in_hdr { 40 uint8_t status; 41}; 42 43/* The final status written by the device */ 44#define VIRTIO_I2C_MSG_OK 0 45#define VIRTIO_I2C_MSG_ERR 1 46 47#endif /* _LINUX_VIRTIO_I2C_H */ 48