/* * PCA9554 I/O port * * Copyright (c) 2023, IBM Corporation. * * SPDX-License-Identifier: GPL-2.0-or-later */ #ifndef PCA9554_H #define PCA9554_H #include "hw/i2c/i2c.h" #include "qom/object.h" #define TYPE_PCA9554 "pca9554" typedef struct PCA9554State PCA9554State; DECLARE_INSTANCE_CHECKER(PCA9554State, PCA9554, TYPE_PCA9554) #define PCA9554_NR_REGS 4 #define PCA9554_PIN_COUNT 8 struct PCA9554State { /*< private >*/ I2CSlave i2c; /*< public >*/ uint8_t len; uint8_t pointer; uint8_t regs[PCA9554_NR_REGS]; qemu_irq gpio_out[PCA9554_PIN_COUNT]; uint8_t ext_state[PCA9554_PIN_COUNT]; char *description; /* For debugging purpose only */ }; #endif