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