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é 20f61c3fb5SPhilippe Mathieu-Daudé #define TYPE_VERSATILE_I2C "versatile_i2c" 21f61c3fb5SPhilippe Mathieu-Daudé #define TYPE_ARM_SBCON_I2C TYPE_VERSATILE_I2C 22f61c3fb5SPhilippe Mathieu-Daudé 23db1015e9SEduardo Habkost typedef struct ArmSbconI2CState ArmSbconI2CState; 24*92518611SPhilippe Mathieu-Daudé DECLARE_INSTANCE_CHECKER(ArmSbconI2CState, ARM_SBCON_I2C, TYPE_ARM_SBCON_I2C) 25f61c3fb5SPhilippe Mathieu-Daudé 26db1015e9SEduardo 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; 35db1015e9SEduardo Habkost }; 36f61c3fb5SPhilippe Mathieu-Daudé 3752581c71SMarkus Armbruster #endif /* HW_I2C_ARM_SBCON_I2C_H */ 38