On 6/28/20 4:24 PM, Peter Maydell wrote:
> Use the new max111x qdev properties to set the initial input
> values rather than calling max111x_set_input(); this means that
> on system reset the inputs will correctly return to their initial
> values.
> 
> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
> ---
>  hw/arm/spitz.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c
> index 11e413723f4..93a25edcb5b 100644
> --- a/hw/arm/spitz.c
> +++ b/hw/arm/spitz.c
> @@ -731,11 +731,14 @@ static void spitz_ssp_attach(SpitzMachineState *sms)
>                            qdev_get_gpio_in(sms->mpu->gpio, 
> SPITZ_GPIO_TP_INT));
>  
>      bus = qdev_get_child_bus(sms->mux, "ssi2");
> -    sms->max1111 = ssi_create_slave(bus, "max1111");
> +    sms->max1111 = qdev_new("max1111");
>      max1111 = sms->max1111;
> -    max111x_set_input(sms->max1111, MAX1111_BATT_VOLT, SPITZ_BATTERY_VOLT);
> -    max111x_set_input(sms->max1111, MAX1111_BATT_TEMP, 0);
> -    max111x_set_input(sms->max1111, MAX1111_ACIN_VOLT, SPITZ_CHARGEON_ACIN);
> +    qdev_prop_set_uint8(sms->max1111, "input1" /* BATT_VOLT */,
> +                        SPITZ_BATTERY_VOLT);
> +    qdev_prop_set_uint8(sms->max1111, "input2" /* BATT_TEMP */, 0);
> +    qdev_prop_set_uint8(sms->max1111, "input3" /* ACIN_VOLT */,
> +                        SPITZ_CHARGEON_ACIN);

Actually for arrays it would be nice to use:

    DEFINE_PROP_ARRAY("input", MAX111xState, nr_inputs, reset_input,
                      qdev_prop_uint8, uint8_t),

Then something like:

qdev_prop_set_uint8_indexed(sms->max1111, "input", 2 /*BATT_TEMP*/, 0);

Anyway,
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>

> +    ssi_realize_and_unref(sms->max1111, bus, &error_fatal);
>  
>      qdev_connect_gpio_out(sms->mpu->gpio, SPITZ_GPIO_LCDCON_CS,
>                          qdev_get_gpio_in(sms->mux, 0));
> 

Reply via email to