| /* |
| * 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 |