History log of /seL4-refos-master/projects/util_libs/libplatsupport/src/mach/omap/gpt.c
Revision Date Author Comments
# b31d9da3 07-May-2020 Michael Yoo <michael.yoo@data61.csiro.au>

libplatsupport: omap3 ltimer refactor

This refactors the omap3 ltimer to use the new
driver framework APIs.
- IRQ Chip parser "copied" off avic.c
- Change array-based ABS and REL timer distinction
into two different variables
- gpt_create() sets up mappings, while
abs_gpt_init()/rel_gpt_init() set up the registers
- Change some signatures to void
- IRQ handler moved to timer driver
- IRQ handler logic is shared between 'abs' and
'rel' timers, behaviour differs on how they were
initialised


# 7ee40668 05-Dec-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fixes for omap ltimer

- always use the rel gpt for timeouts as the logic is too complex and
error prone for abs_gpt. Stick to using abs_gpt to measure the time.
- handle relative and absolute timeouts > the max for the gpt.


# c4006184 26-Oct-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

libplatsupport: Initialize prescaler value

Failing to initialize the prescaler value in the `gpt` struct has two affects
* The passed in configuration value for the prescaler is ignored, violating the interface
* The `prescaler` value in the gpt struct is an arbitrary uninitialized value resulting
in garbage usages of the prescaler value


# 17c709a6 26-Oct-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

libplatsupport: Calculate prescaler ticks correctly

The comments on the PTV register (which controls prescaling) state that the timer
is prescaled by 2^(PTV+1), not by PTV+1. This commit simply makes the code reflect
the stated arithmetic.


# 008bbb56 26-Oct-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

libplatsupport: Preserve omap timer configuration when stopping

Completely clearing the tclr register throws away any configured prescaler (and other)
settings, resulting in a timer that does not match the cached configuration leading to
garbage timing. As `gpt_start` only enables the `ST` bit and does not perform a full
`gpt_init` `gpt_stop` should therefore only disable the `ST` bit


# bd19f23e 25-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

trivial: fix whitespace


# 2ea5b6fe 19-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Implement ltimer for omap

- remove pstimer support
- combine absolute_gpt and relative_gpt, gpt.h into one file


# a7130f9f 04-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

fix licenses


# 03ede780 23-Aug-2016 Kent McLeod <kent.mcleod@nicta.com.au>

Remove trailing whitespace


# 9f573c34 15-Mar-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

libplatsupport: Add absolute timer driver for omap


# 0f5e0c4a 15-Mar-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

libplatsupport: Add absolute timer driver for omap