1/* 2 * ARM SBCon two-wire serial bus interface (I2C bitbang) 3 * a.k.a. 4 * ARM Versatile I2C controller 5 * 6 * Copyright (c) 2006-2007 CodeSourcery. 7 * Copyright (c) 2012 Oskar Andero <oskar.andero@gmail.com> 8 * Copyright (C) 2020 Philippe Mathieu-Daudé <f4bug@amsat.org> 9 * 10 * SPDX-License-Identifier: GPL-2.0-or-later 11 */ 12 13#ifndef HW_I2C_ARM_SBCON_I2C_H 14#define HW_I2C_ARM_SBCON_I2C_H 15 16#include "hw/sysbus.h" 17#include "hw/i2c/bitbang_i2c.h" 18#include "qom/object.h" 19 20#define TYPE_VERSATILE_I2C "versatile_i2c" 21#define TYPE_ARM_SBCON_I2C TYPE_VERSATILE_I2C 22 23typedef struct ArmSbconI2CState ArmSbconI2CState; 24DECLARE_INSTANCE_CHECKER(ArmSbconI2CState, ARM_SBCON_I2C, 25 TYPE_ARM_SBCON_I2C) 26 27struct ArmSbconI2CState { 28 /*< private >*/ 29 SysBusDevice parent_obj; 30 /*< public >*/ 31 32 MemoryRegion iomem; 33 bitbang_i2c_interface bitbang; 34 int out; 35 int in; 36}; 37 38#endif /* HW_I2C_ARM_SBCON_I2C_H */ 39