 586f495b1e
			
		
	
	
		586f495b1e
		
	
	
	
	
		
			
			The PCA9552 has 16 GPIOs which can be used as input, output or PWM mode. QEMU models the output GPIO with the qemu_irq type. Let the device expose the 16 GPIOs to allow us to later connect LEDs to these outputs. Reviewed-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Cédric Le Goater <clg@kaod.org> Message-id: 20200623072723.6324-10-f4bug@amsat.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
		
			
				
	
	
		
			35 lines
		
	
	
		
			753 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			753 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * 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"
 | |
| 
 | |
| #define TYPE_PCA9552 "pca9552"
 | |
| #define TYPE_PCA955X "pca955x"
 | |
| #define PCA955X(obj) OBJECT_CHECK(PCA955xState, (obj), TYPE_PCA955X)
 | |
| 
 | |
| #define PCA955X_NR_REGS 10
 | |
| #define PCA955X_PIN_COUNT_MAX 16
 | |
| 
 | |
| typedef struct PCA955xState {
 | |
|     /*< private >*/
 | |
|     I2CSlave i2c;
 | |
|     /*< public >*/
 | |
| 
 | |
|     uint8_t len;
 | |
|     uint8_t pointer;
 | |
| 
 | |
|     uint8_t regs[PCA955X_NR_REGS];
 | |
|     qemu_irq gpio[PCA955X_PIN_COUNT_MAX];
 | |
|     char *description; /* For debugging purpose only */
 | |
| } PCA955xState;
 | |
| 
 | |
| #endif
 |