Skip to content
  • Peter Maydell's avatar
    ad140dad
    ptimer: Add new ptimer_set_period_from_clock() function · ad140dad
    Peter Maydell authored
    
    
    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: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarLuc Michel <luc@lmichel.fr>
    Tested-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
    Message-id: 20210128114145.20536-2-peter.maydell@linaro.org
    Message-id: 20210121190622.22000-2-peter.maydell@linaro.org
    ad140dad
    ptimer: Add new ptimer_set_period_from_clock() function
    Peter Maydell authored
    
    
    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: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarLuc Michel <luc@lmichel.fr>
    Tested-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
    Message-id: 20210128114145.20536-2-peter.maydell@linaro.org
    Message-id: 20210121190622.22000-2-peter.maydell@linaro.org
Loading