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