Among implemented STM32L4x5 devices, USART, GPIO and SYSCFG have a clock source, but none has a corresponding test in QEMU.
This patch makes sure that all 3 devices create a clock, have a QOM property to access the clock frequency, and adds QTests checking that clock enable in RCC has the expected results. Philippe Mathieu-Daudé suggested the following : ".. We could add the clock properties directly in qdev_init_clock_in(). Seems useful for the QTest framework." However Peter Maydell pointed out the following : "...Mostly "frequency" properties on devices are for the case where they *don't* have a Clock input and instead have ad-hoc legacy handling where the board/SoC that creates the device sets an integer property to define the input frequency because it doesn't model the clock tree with Clock objects." You both agree on the fact that replicating the code in the different devices is a bad idea, what should be the alternative? Thank you for the reviews. Changes from v1: - upgrading `VMStateDescription` to version 2 to account for `VMSTATE_CLOCK()` - QTests : consolidating `get_clock_freq_hz()` in a header and making appropriate changes in stm32l4x5q_*-test.c Signed-off-by: Inès Varhol <ines.var...@telecom-paris.fr> Inès Varhol (4): hw/misc: Create STM32L4x5 SYSCFG clock hw/gpio: Handle clock migration in STM32L4x5 gpios hw/char: Add QOM property for STM32L4x5 USART clock frequency tests/qtest: Check STM32L4x5 clock connections include/hw/misc/stm32l4x5_syscfg.h | 1 + tests/qtest/stm32l4x5.h | 40 +++++++++++++++++++++++++++++ hw/arm/stm32l4x5_soc.c | 2 ++ hw/char/stm32l4x5_usart.c | 16 ++++++++++-- hw/gpio/stm32l4x5_gpio.c | 6 +++-- hw/misc/stm32l4x5_syscfg.c | 30 ++++++++++++++++++++-- tests/qtest/stm32l4x5_gpio-test.c | 23 +++++++++++++++++ tests/qtest/stm32l4x5_syscfg-test.c | 19 ++++++++++++-- tests/qtest/stm32l4x5_usart-test.c | 26 +++++++++++++++++++ 9 files changed, 155 insertions(+), 8 deletions(-) create mode 100644 tests/qtest/stm32l4x5.h -- 2.43.2