xref: /qemu/include/hw/gpio/pca9552.h (revision 5141d4158cf0dbdc13e42f175d1718d40b789f75)
1*5141d415SCédric Le Goater /*
2*5141d415SCédric Le Goater  * PCA9552 I2C LED blinker
3*5141d415SCédric Le Goater  *
4*5141d415SCédric Le Goater  * Copyright (c) 2017-2018, IBM Corporation.
5*5141d415SCédric Le Goater  *
6*5141d415SCédric Le Goater  * This work is licensed under the terms of the GNU GPL, version 2 or
7*5141d415SCédric Le Goater  * later. See the COPYING file in the top-level directory.
8*5141d415SCédric Le Goater  */
9*5141d415SCédric Le Goater #ifndef PCA9552_H
10*5141d415SCédric Le Goater #define PCA9552_H
11*5141d415SCédric Le Goater 
12*5141d415SCédric Le Goater #include "hw/i2c/i2c.h"
13*5141d415SCédric Le Goater 
14*5141d415SCédric Le Goater #define TYPE_PCA9552 "pca9552"
15*5141d415SCédric Le Goater #define PCA9552(obj) OBJECT_CHECK(PCA9552State, (obj), TYPE_PCA9552)
16*5141d415SCédric Le Goater 
17*5141d415SCédric Le Goater #define PCA9552_NR_REGS 10
18*5141d415SCédric Le Goater 
19*5141d415SCédric Le Goater typedef struct PCA9552State {
20*5141d415SCédric Le Goater     /*< private >*/
21*5141d415SCédric Le Goater     I2CSlave i2c;
22*5141d415SCédric Le Goater     /*< public >*/
23*5141d415SCédric Le Goater 
24*5141d415SCédric Le Goater     uint8_t len;
25*5141d415SCédric Le Goater     uint8_t pointer;
26*5141d415SCédric Le Goater 
27*5141d415SCédric Le Goater     uint8_t regs[PCA9552_NR_REGS];
28*5141d415SCédric Le Goater     uint8_t max_reg;
29*5141d415SCédric Le Goater     uint8_t nr_leds;
30*5141d415SCédric Le Goater } PCA9552State;
31*5141d415SCédric Le Goater 
32*5141d415SCédric Le Goater #endif
33