[RFC v3 0/2] clocksource: davinci-timer: new driver

From: Bartosz Golaszewski
Date: Wed Jun 05 2019 - 04:37:40 EST

From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>

This is another version of the new davinci clocksource driver. After much
discussion this contains many changes to simplify and improve the driver.

v1 -> v2:
- changed the format of the copyright notice
- removed all mentiones of the periodic timer setting
- added caching of the TCR register value so that its updating doesn't
require a read
- split the timer configuration for clock events into the
set_state_oneshot() and set_state_shutdown() callbacks

v2 -> v3:
- tim34, if used, should run in periodic mode for clocksource, now fixed
- dropped all the configuration variables from struct davinci_clockevent
as clockevent always uses tim12
- dropped caching of the TCR register with the following reasoning: on
systems using tim34 for clocksource, the TCR register is only touched
by the clock driver and we know that we need to keep tim34 in periodic
mode; on da830 the RTOS running on the DSP may modify the TCR register
but we on the other hand never change its settings when only using tim12
- subsequently the whole routine for TCR updating was dropped
- dropped the shift variable from most places
- added separate routines for initializing clocksource for da830 and all
other systems
- sprinkled a bunch of comments all over the driver to explain things
that caused confusion before

Bartosz Golaszewski (2):
clocksource: davinci-timer: add support for clockevents
clocksource: timer-davinci: add support for clocksource

drivers/clocksource/Kconfig | 5 +
drivers/clocksource/Makefile | 1 +
drivers/clocksource/timer-davinci.c | 370 ++++++++++++++++++++++++++++
include/clocksource/timer-davinci.h | 44 ++++
4 files changed, 420 insertions(+)
create mode 100644 drivers/clocksource/timer-davinci.c
create mode 100644 include/clocksource/timer-davinci.h