This series converts the ARM_TIMER model to QOM. Doing so we also correct an abuse of SysBus IRQ in the ICP PIT model.
Sergey, I Cc you on this series because various patches are simple / trivial enough so you can get an idea how to structure your BCM/VC series. Still you are welcome to review this series ;) (just the patches that you feel confident enough). Regards, Phil. Philippe Mathieu-Daudé (15): hw/timer/arm_timer: Declare QOM types using DEFINE_TYPES() macro hw/timer/arm_timer: Move SP804 code around hw/timer/arm_timer: Add missing sp804_unrealize() handler hw/timer/arm_timer: Remove pointless cast from void * hw/timer/arm_timer: CamelCase rename icp_pit_state -> IntegratorPitState hw/timer/arm_timer: CamelCase rename arm_timer_state -> ArmTimerState hw/timer/arm_timer: Extract arm_timer_reset() hw/timer/arm_timer: Rename arm_timer_init() -> arm_timer_new() hw/timer/arm_timer: Convert ArmTimerState::freq to uint32_t type hw/timer/arm_timer: Use array of frequency in SP804State hw/timer/arm_timer: Iterate on timers using for() loop statement hw/timer/arm_timer: Pass timer output IRQ as parameter to arm_timer_new hw/timer/arm_timer: Fix misuse of SysBus IRQ in IcpPitState hw/timer/arm_timer: Extract icp_pit_realize() from icp_pit_init() hw/timer/arm_timer: QOM'ify ARM_TIMER hw/timer/arm_timer.c | 314 ++++++++++++++++++++++++++----------------- 1 file changed, 194 insertions(+), 120 deletions(-) -- 2.38.1