/* * Allwinner I2C Bus Serial Interface registers definition * * Copyright (C) 2022 Strahinja Jankovic. * * This file is derived from IMX I2C controller, * by Jean-Christophe DUBOIS . * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, see . * */ #ifndef ALLWINNER_I2C_H #define ALLWINNER_I2C_H #include "hw/sysbus.h" #include "qom/object.h" #define TYPE_AW_I2C "allwinner.i2c" /** Allwinner I2C sun6i family and newer (A31, H2+, H3, etc) */ #define TYPE_AW_I2C_SUN6I TYPE_AW_I2C "-sun6i" OBJECT_DECLARE_SIMPLE_TYPE(AWI2CState, AW_I2C) #define AW_I2C_MEM_SIZE 0x24 struct AWI2CState { /*< private >*/ SysBusDevice parent_obj; /*< public >*/ MemoryRegion iomem; I2CBus *bus; qemu_irq irq; uint8_t addr; uint8_t xaddr; uint8_t data; uint8_t cntr; uint8_t stat; uint8_t ccr; uint8_t srst; uint8_t efr; uint8_t lcr; bool irq_clear_inverted; }; #endif /* ALLWINNER_I2C_H */