On 9/12/20 3:40 PM, Philippe Mathieu-Daudé wrote: > The Witherspoon has 3 LEDs connected to a PCA9552. Add them. > The names and reset values are taken from: > https://github.com/open-power/witherspoon-xml/blob/master/witherspoon.xml > > Example booting obmc-phosphor-image: > > $ qemu-system-arm -M witherspoon-bmc -trace led_change_intensity > 1592693373.997015:led_change_intensity LED desc:'front-fault-4' color:green > intensity 0% -> 100% > 1592693373.997632:led_change_intensity LED desc:'front-power-3' color:green > intensity 0% -> 100% > 1592693373.998239:led_change_intensity LED desc:'front-id-5' color:green > intensity 0% -> 100% > 1592693500.291805:led_change_intensity LED desc:'front-power-3' color:green > intensity 100% -> 0% > 1592693500.312041:led_change_intensity LED desc:'front-power-3' color:green > intensity 0% -> 100% > 1592693500.821254:led_change_intensity LED desc:'front-power-3' color:green > intensity 100% -> 0% > 1592693501.331517:led_change_intensity LED desc:'front-power-3' color:green > intensity 0% -> 100% > 1592693501.841367:led_change_intensity LED desc:'front-power-3' color:green > intensity 100% -> 0% > 1592693502.350839:led_change_intensity LED desc:'front-power-3' color:green > intensity 0% -> 100% > 1592693502.861134:led_change_intensity LED desc:'front-power-3' color:green > intensity 100% -> 0% > 1592693503.371090:led_change_intensity LED desc:'front-power-3' color:green > intensity 0% -> 100% > > We notice the front-power LED starts to blink at a ~2Hz rate. > > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > Reviewed-by: Luc Michel <luc.mic...@greensocs.com> > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org>
Reviewed-by: Cédric Le Goater <c...@kaod.org> > --- > hw/arm/aspeed.c | 20 ++++++++++++++++++++ > hw/arm/Kconfig | 1 + > 2 files changed, 21 insertions(+) > > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c > index 8bfb1c79ddc..83e322ea983 100644 > --- a/hw/arm/aspeed.c > +++ b/hw/arm/aspeed.c > @@ -20,6 +20,7 @@ > #include "hw/i2c/smbus_eeprom.h" > #include "hw/misc/pca9552.h" > #include "hw/misc/tmp105.h" > +#include "hw/misc/led.h" > #include "hw/qdev-properties.h" > #include "qemu/log.h" > #include "sysemu/block-backend.h" > @@ -521,9 +522,20 @@ static void sonorapass_bmc_i2c_init(AspeedMachineState > *bmc) > > static void witherspoon_bmc_i2c_init(AspeedMachineState *bmc) > { > + static const struct { > + unsigned gpio_id; > + LEDColor color; > + const char *description; > + bool gpio_polarity; > + } pca1_leds[] = { > + {13, LED_COLOR_GREEN, "front-fault-4", GPIO_POLARITY_ACTIVE_LOW}, > + {14, LED_COLOR_GREEN, "front-power-3", GPIO_POLARITY_ACTIVE_LOW}, > + {15, LED_COLOR_GREEN, "front-id-5", GPIO_POLARITY_ACTIVE_LOW}, > + }; > AspeedSoCState *soc = &bmc->soc; > uint8_t *eeprom_buf = g_malloc0(8 * 1024); > DeviceState *dev; > + LEDState *led; > > /* Bus 3: TODO bmp280@77 */ > /* Bus 3: TODO max31785@52 */ > @@ -534,6 +546,14 @@ static void witherspoon_bmc_i2c_init(AspeedMachineState > *bmc) > aspeed_i2c_get_bus(&soc->i2c, 3), > &error_fatal); > > + for (size_t i = 0; i < ARRAY_SIZE(pca1_leds); i++) { > + led = led_create_simple(OBJECT(bmc), > + pca1_leds[i].gpio_polarity, > + pca1_leds[i].color, > + pca1_leds[i].description); > + qdev_connect_gpio_out(dev, pca1_leds[i].gpio_id, > + qdev_get_gpio_in(DEVICE(led), 0)); > + } > i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 4), "tmp423", > 0x4c); > i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 5), "tmp423", > 0x4c); > > diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig > index bc3a423940b..06ba1c355b1 100644 > --- a/hw/arm/Kconfig > +++ b/hw/arm/Kconfig > @@ -394,6 +394,7 @@ config ASPEED_SOC > select TMP105 > select TMP421 > select UNIMP > + select LED > > config MPS2 > bool >