|  | /* | 
|  | * PCA9552 I2C LED blinker | 
|  | * | 
|  | * Copyright (c) 2017-2018, IBM Corporation. | 
|  | * | 
|  | * This work is licensed under the terms of the GNU GPL, version 2 or | 
|  | * later. See the COPYING file in the top-level directory. | 
|  | */ | 
|  | #ifndef PCA9552_H | 
|  | #define PCA9552_H | 
|  |  | 
|  | #include "hw/i2c/i2c.h" | 
|  | #include "qom/object.h" | 
|  |  | 
|  | #define TYPE_PCA9552 "pca9552" | 
|  | #define TYPE_PCA955X "pca955x" | 
|  | typedef struct PCA955xState PCA955xState; | 
|  | DECLARE_INSTANCE_CHECKER(PCA955xState, PCA955X, | 
|  | TYPE_PCA955X) | 
|  |  | 
|  | #define PCA955X_NR_REGS 10 | 
|  | #define PCA955X_PIN_COUNT_MAX 16 | 
|  |  | 
|  | struct PCA955xState { | 
|  | /*< private >*/ | 
|  | I2CSlave i2c; | 
|  | /*< public >*/ | 
|  |  | 
|  | uint8_t len; | 
|  | uint8_t pointer; | 
|  |  | 
|  | uint8_t regs[PCA955X_NR_REGS]; | 
|  | qemu_irq gpio_out[PCA955X_PIN_COUNT_MAX]; | 
|  | uint8_t ext_state[PCA955X_PIN_COUNT_MAX]; | 
|  | char *description; /* For debugging purpose only */ | 
|  | }; | 
|  |  | 
|  | #endif |