xref: /qemu/include/hw/i2c/arm_sbcon_i2c.h (revision 00b1faea41d283e931256aa78aa975a369ec3ae6)
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