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é */ 1252581c71SMarkus Armbruster 1352581c71SMarkus Armbruster #ifndef HW_I2C_ARM_SBCON_I2C_H 1452581c71SMarkus Armbruster #define HW_I2C_ARM_SBCON_I2C_H 15f61c3fb5SPhilippe Mathieu-Daudé 16f61c3fb5SPhilippe Mathieu-Daudé #include "hw/sysbus.h" 17f61c3fb5SPhilippe Mathieu-Daudé #include "hw/i2c/bitbang_i2c.h" 18db1015e9SEduardo Habkost #include "qom/object.h" 19f61c3fb5SPhilippe Mathieu-Daudé 20*550da1ccSPhilippe Mathieu-Daudé #define TYPE_ARM_SBCON_I2C "versatile_i2c" 21f61c3fb5SPhilippe Mathieu-Daudé 22db1015e9SEduardo Habkost typedef struct ArmSbconI2CState ArmSbconI2CState; 2392518611SPhilippe Mathieu-Daudé DECLARE_INSTANCE_CHECKER(ArmSbconI2CState, ARM_SBCON_I2C, TYPE_ARM_SBCON_I2C) 24f61c3fb5SPhilippe Mathieu-Daudé 25db1015e9SEduardo Habkost struct ArmSbconI2CState { 26f61c3fb5SPhilippe Mathieu-Daudé /*< private >*/ 27f61c3fb5SPhilippe Mathieu-Daudé SysBusDevice parent_obj; 28f61c3fb5SPhilippe Mathieu-Daudé /*< public >*/ 29f61c3fb5SPhilippe Mathieu-Daudé 30f61c3fb5SPhilippe Mathieu-Daudé MemoryRegion iomem; 31f61c3fb5SPhilippe Mathieu-Daudé bitbang_i2c_interface bitbang; 32f61c3fb5SPhilippe Mathieu-Daudé int out; 33f61c3fb5SPhilippe Mathieu-Daudé int in; 34db1015e9SEduardo Habkost }; 35f61c3fb5SPhilippe Mathieu-Daudé 3652581c71SMarkus Armbruster #endif /* HW_I2C_ARM_SBCON_I2C_H */ 37