diff options
author | Peter Maydell | 2021-01-28 12:41:22 +0100 |
---|---|---|
committer | Peter Maydell | 2021-01-29 16:54:42 +0100 |
commit | 132b10251cd7b6271aa081ddfda329cd3c45bc00 (patch) | |
tree | 5dade257f8216a06f0892f6c51614a628078b92e /docs/devel | |
parent | ptimer: Add new ptimer_set_period_from_clock() function (diff) | |
download | qemu-132b10251cd7b6271aa081ddfda329cd3c45bc00.tar.gz qemu-132b10251cd7b6271aa081ddfda329cd3c45bc00.tar.xz qemu-132b10251cd7b6271aa081ddfda329cd3c45bc00.zip |
clock: Add new clock_has_source() function
Add a function for checking whether a clock has a source. This is
useful for devices which have input clocks that must be wired up by
the board as it allows them to fail in realize rather than ploughing
on with a zero-period clock.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Luc Michel <luc@lmichel.fr>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20210128114145.20536-3-peter.maydell@linaro.org
Message-id: 20210121190622.22000-3-peter.maydell@linaro.org
Diffstat (limited to 'docs/devel')
-rw-r--r-- | docs/devel/clocks.rst | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/devel/clocks.rst b/docs/devel/clocks.rst index 2548d84232..c54bbb8240 100644 --- a/docs/devel/clocks.rst +++ b/docs/devel/clocks.rst @@ -235,6 +235,22 @@ object during device instance init. For example: /* set initial value to 10ns / 100MHz */ clock_set_ns(clk, 10); +To enforce that the clock is wired up by the board code, you can +call ``clock_has_source()`` in your device's realize method: + +.. code-block:: c + + if (!clock_has_source(s->clk)) { + error_setg(errp, "MyDevice: clk input must be connected"); + return; + } + +Note that this only checks that the clock has been wired up; it is +still possible that the output clock connected to it is disabled +or has not yet been configured, in which case the period will be +zero. You should use the clock callback to find out when the clock +period changes. + Fetching clock frequency/period ------------------------------- |