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