xref: /qemu/include/hw/gpio/pca9552.h (revision 8208335b9539e7b5aa4702b36e2f9a8abd704079)
15141d415SCédric Le Goater /*
25141d415SCédric Le Goater  * PCA9552 I2C LED blinker
35141d415SCédric Le Goater  *
45141d415SCédric Le Goater  * Copyright (c) 2017-2018, IBM Corporation.
55141d415SCédric Le Goater  *
65141d415SCédric Le Goater  * This work is licensed under the terms of the GNU GPL, version 2 or
75141d415SCédric Le Goater  * later. See the COPYING file in the top-level directory.
85141d415SCédric Le Goater  */
95141d415SCédric Le Goater #ifndef PCA9552_H
105141d415SCédric Le Goater #define PCA9552_H
115141d415SCédric Le Goater 
125141d415SCédric Le Goater #include "hw/i2c/i2c.h"
135141d415SCédric Le Goater 
145141d415SCédric Le Goater #define TYPE_PCA9552 "pca9552"
155141d415SCédric Le Goater #define PCA9552(obj) OBJECT_CHECK(PCA9552State, (obj), TYPE_PCA9552)
165141d415SCédric Le Goater 
175141d415SCédric Le Goater #define PCA9552_NR_REGS 10
185141d415SCédric Le Goater 
195141d415SCédric Le Goater typedef struct PCA9552State {
205141d415SCédric Le Goater     /*< private >*/
215141d415SCédric Le Goater     I2CSlave i2c;
225141d415SCédric Le Goater     /*< public >*/
235141d415SCédric Le Goater 
245141d415SCédric Le Goater     uint8_t len;
255141d415SCédric Le Goater     uint8_t pointer;
265141d415SCédric Le Goater 
275141d415SCédric Le Goater     uint8_t regs[PCA9552_NR_REGS];
285141d415SCédric Le Goater     uint8_t max_reg;
29*8208335bSPhilippe Mathieu-Daudé     uint8_t pin_count;
305141d415SCédric Le Goater } PCA9552State;
315141d415SCédric Le Goater 
325141d415SCédric Le Goater #endif
33