diff mbox series

[09/17] hw/arm/spitz: Use max111x properties to set initial values

Message ID 20200628142429.17111-10-peter.maydell@linaro.org
State Superseded
Headers show
Series spitz: fix hacks, fix CID 1421913, various cleanups | expand

Commit Message

Peter Maydell June 28, 2020, 2:24 p.m. UTC
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.maydell@linaro.org>

---
 hw/arm/spitz.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

-- 
2.20.1

Comments

Philippe Mathieu-Daudé June 29, 2020, 9:09 a.m. UTC | #1
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.maydell@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é <f4bug@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));

>
Peter Maydell June 29, 2020, 2:05 p.m. UTC | #2
On Mon, 29 Jun 2020 at 10:09, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>

> 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.maydell@linaro.org>

> > ---


> Actually for arrays it would be nice to use:

>

>     DEFINE_PROP_ARRAY("input", MAX111xState, nr_inputs, reset_input,

>                       qdev_prop_uint8, uint8_t),


DEFINE_PROP_ARRAY defines a variable length property array;
what we want for max111x is fixed-length.

thanks
-- PMM
diff mbox series

Patch

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);
+    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));