Message ID | 20200628142429.17111-10-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | spitz: fix hacks, fix CID 1421913, various cleanups | expand |
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)); >
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 --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));
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