This goes along with input pin modification. In some cases it's easier to know the state of all pins on the GPIO controller before modifying input pins, rather than knowing only the state of input pins.
For example over QMP: {"execute":"qom-get","arguments":{ "path":"/machine/soc/gpio[0]", "property":"gpio-pin-level" }} Signed-off-by: Joe Komlodi <koml...@google.com> --- hw/gpio/npcm7xx_gpio.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/gpio/npcm7xx_gpio.c b/hw/gpio/npcm7xx_gpio.c index 2a7be60d8d..58db3a8d64 100644 --- a/hw/gpio/npcm7xx_gpio.c +++ b/hw/gpio/npcm7xx_gpio.c @@ -399,6 +399,9 @@ static void npcm7xx_gpio_init(Object *obj) object_property_add(obj, "gpio-pins-in", "uint32", npcm7xx_gpio_get_pins_in, npcm7xx_gpio_set_pins_in, NULL, &s->regs[NPCM7XX_GPIO_DIN]); + + object_property_add_uint32_ptr(obj, "gpio-pin-level", &s->pin_level, + OBJ_PROP_FLAG_READ); } static const VMStateDescription vmstate_npcm7xx_gpio = { -- 2.40.0.348.gf938b09366-goog