Reviewed-by: Glenn Miles <[email protected]> Thanks,
Glenn On Thu, 2026-07-09 at 17:23 +0200, Emmanuel Blot wrote: > Convert the PCA9552 and PCA9535/PCA9555 reset handlers from the legacy > device reset hook to the Resettable interface: move each reset body into > a ResettableHoldPhase handler and register it through the class's > ResettableClass::phases.hold instead of device_class_set_legacy_reset(). > > No functional change. > > Signed-off-by: Emmanuel Blot <[email protected]> > --- > hw/gpio/pca9552.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/hw/gpio/pca9552.c b/hw/gpio/pca9552.c > index 3b9b63eb17..66f699bf6a 100644 > --- a/hw/gpio/pca9552.c > +++ b/hw/gpio/pca9552.c > @@ -406,9 +406,9 @@ static const VMStateDescription pca9552_vmstate = { > } > }; > > -static void pca9552_reset(DeviceState *dev) > +static void pca9552_reset_hold(Object *obj, ResetType type) > { > - PCA955xState *s = PCA955X(dev); > + PCA955xState *s = PCA955X(obj); > > s->regs[PCA9552_PSC0] = 0xFF; > s->regs[PCA9552_PWM0] = 0x80; > @@ -426,9 +426,9 @@ static void pca9552_reset(DeviceState *dev) > s->len = 0; > } > > -static void pca9535_reset(DeviceState *dev) > +static void pca9535_reset_hold(Object *obj, ResetType type) > { > - PCA955xState *s = PCA955X(dev); > + PCA955xState *s = PCA955X(obj); > > s->regs[PCA9535_INPUT0] = 0xFF; /* All inputs high (pull-ups) */ > s->regs[PCA9535_INPUT1] = 0xFF; /* All inputs high (pull-ups) */ > @@ -514,9 +514,10 @@ static void pca955x_class_init(ObjectClass *klass, const > void *data) > static void pca9552_class_init(ObjectClass *oc, const void *data) > { > DeviceClass *dc = DEVICE_CLASS(oc); > + ResettableClass *rc = RESETTABLE_CLASS(oc); > PCA955xClass *pc = PCA955X_CLASS(oc); > > - device_class_set_legacy_reset(dc, pca9552_reset); > + rc->phases.hold = pca9552_reset_hold; > dc->vmsd = &pca9552_vmstate; > pc->max_reg = PCA9552_LS3; > pc->pin_count = 16; > @@ -526,9 +527,10 @@ static void pca9552_class_init(ObjectClass *oc, const > void *data) > static void pca95x5_class_init(ObjectClass *oc, const void *data) > { > DeviceClass *dc = DEVICE_CLASS(oc); > + ResettableClass *rc = RESETTABLE_CLASS(oc); > PCA955xClass *pc = PCA955X_CLASS(oc); > > - device_class_set_legacy_reset(dc, pca9535_reset); > + rc->phases.hold = pca9535_reset_hold; > dc->vmsd = &pca9552_vmstate; > pc->max_reg = PCA9535_CONFIG1; > pc->pin_count = 16; >
