mirror_qemu/hw/core
Peter Maydell ad140dadd5 ptimer: Add new ptimer_set_period_from_clock() function
The ptimer API currently provides two methods for setting the period:
ptimer_set_period(), which takes a period in nanoseconds, and
ptimer_set_freq(), which takes a frequency in Hz.  Neither of these
lines up nicely with the Clock API, because although both the Clock
and the ptimer track the frequency using a representation of whole
and fractional nanoseconds, conversion via either period-in-ns or
frequency-in-Hz will introduce a rounding error.

Add a new function ptimer_set_period_from_clock() which takes the
Clock object directly to avoid the rounding issues.  This includes a
facility for the user to specify that there is a frequency divider
between the Clock proper and the timer, as some timer devices like
the CMSDK APB dualtimer need this.

To avoid having to drag in clock.h from ptimer.h we add the Clock
type to typedefs.h.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Luc Michel <luc@lmichel.fr>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20210128114145.20536-2-peter.maydell@linaro.org
Message-id: 20210121190622.22000-2-peter.maydell@linaro.org
2021-01-29 15:54:42 +00:00
..
Kconfig hw/core: Add a config switch for the generic loader device 2019-08-20 09:11:17 +02:00
bus.c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
clock-vmstate.c hw/core/clock-vmstate: define a vmstate entry for clock state 2020-04-30 15:35:40 +01:00
clock.c clock: Define and use new clock_display_freq() 2021-01-04 23:24:44 +01:00
cpu.c cpu: Remove unnecessary noop methods 2020-12-16 15:50:33 -05:00
fw-path-provider.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
generic-loader.c make ram_size local to vl.c 2020-12-10 12:15:10 -05:00
hotplug.c call HotplugHandler->plug() as the last step in device realization 2018-10-19 13:44:12 +02:00
irq.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
loader-fit.c hw/mips/boston: Fix Lesser GPL version number 2020-11-03 16:51:13 +01:00
loader.c hw/core/loader.c: Improve reporting of ROM overlap errors 2020-12-15 12:04:30 +00:00
machine-hmp-cmds.c monitor: Add Monitor parameter to monitor_get_cpu_index() 2020-10-09 07:08:19 +02:00
machine-qmp-cmds.c qapi: More complex uses of QAPI_LIST_APPEND 2021-01-28 08:08:45 +01:00
machine.c qapi: Use QAPI_LIST_PREPEND() where possible 2020-12-19 10:20:14 +01:00
meson.build hw/core: Restrict 'fw-path-provider.c' to system mode emulation 2020-12-15 12:52:07 -05:00
nmi.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
null-machine.c hw/core/null-machine: Do not initialize unused chardev backends 2020-07-10 18:02:16 -04:00
numa.c make ram_size local to vl.c 2020-12-10 12:15:10 -05:00
or-irq.c hw/core/or-irq: Fix incorrect assert forbidding num-lines == MAX_OR_LINES 2020-01-30 16:02:01 +00:00
platform-bus.c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
ptimer.c ptimer: Add new ptimer_set_period_from_clock() function 2021-01-29 15:54:42 +00:00
qdev-clock.c hw/core/qdev-clock: add a reference on aliased clocks 2020-10-22 11:53:53 -04:00
qdev-fw.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
qdev-prop-internal.h qdev: Make qdev_propinfo_get_uint16() static 2020-12-15 10:02:07 -05:00
qdev-properties-system.c qdev: Rename qdev_get_prop_ptr() to object_field_prop_ptr() 2020-12-18 15:20:18 -05:00
qdev-properties.c qdev: Avoid unnecessary DeviceState* variable at set_prop_arraylen() 2020-12-18 15:20:18 -05:00
qdev.c machine: introduce MachineInitPhase 2020-12-15 12:51:52 -05:00
register.c hw/core/register.c: Don't use '#' flag of printf format 2020-12-17 21:56:43 -08:00
reset.c qemu/queue.h: leave head structs anonymous unless necessary 2019-01-11 15:46:55 +01:00
resettable.c hw/core: deprecate old reset functions and introduce new ones 2020-01-30 16:02:04 +00:00
split-irq.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
stream.c hw/core/stream: Rename StreamSlave as StreamSink 2020-12-10 12:15:04 -05:00
sysbus.c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
trace-events hw/core/clock: trace clock values in Hz instead of ns 2020-10-27 11:10:44 +00:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uboot_image.h Support u-boot noload images for arm as used by, NetBSD/evbarm GENERIC kernel. 2019-01-07 15:46:20 +00:00
vm-change-state-handler.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
vmstate-if.c vmstate: add qom interface to get id 2020-01-06 18:41:32 +04:00