linux-sg2042/drivers/clocksource
Noam Camus 60263dcd82 clocksource: Add clockevent support to NPS400 driver
Till now we used clockevent from generic ARC driver.
This was enough as long as we worked with simple multicore SoC.
When we are working with multithread SoC each HW thread can be
scheduled to receive timer interrupt using timer mask register.
This patch will provide a way to control clock events per HW thread.

The design idea is that for each core there is dedicated register
(TSI) serving all 16 HW threads.
The register is a bitmask with one bit for each HW thread.
When HW thread wants that next expiration of timer interrupt will
hit it then the proper bit should be set in this dedicated register.
When timer expires all HW threads within this core which their bit
is set at the TSI register will be interrupted.

Driver can be used from device tree by:
compatible = "ezchip,nps400-timer0" <-- for clocksource
compatible = "ezchip,nps400-timer1" <-- for clockevent

Note that name convention for timer0/timer1 was taken from legacy
ARC design. This design is our base before adding HW threads.
For backward compatibility we keep "ezchip,nps400-timer" for clocksource

Signed-off-by: Noam Camus <noamca@mellanox.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Rob Herring <robh@kernel.org>
2016-11-30 11:54:25 -08:00
..
Kconfig clocksource: import ARC timer driver 2016-11-30 11:54:25 -08:00
Makefile clocksource: import ARC timer driver 2016-11-30 11:54:25 -08:00
acpi_pm.c clocksource/drivers/acpi_pm: Convert to pr_* macros 2015-12-29 12:52:57 +01:00
arc_timer.c clocksource: import ARC timer driver 2016-11-30 11:54:25 -08:00
arm_arch_timer.c arm/arm64: arch_timer: Use archdata to indicate vdso suitability 2016-09-23 17:19:25 +01:00
arm_global_timer.c clocksource/arm_global_timer: Convert to hotplug state machine 2016-07-15 10:41:44 +02:00
armv7m_systick.c clocksource/drivers/armv7m_systick: Add the COMPILE_TEST option 2016-06-28 10:22:05 +02:00
asm9260_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
bcm2835_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
bcm_kona_timer.c clocksource/drivers/kona: Fix get_counter() error handling 2016-08-17 13:08:31 +02:00
cadence_ttc_timer.c clocksource/drivers/cadence_ttc: fix a return value in case of error 2016-07-07 09:44:38 +02:00
clksrc-dbx500-prcmu.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
clksrc-probe.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
clksrc_st_lpc.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
clps711x-timer.c ARM: SoC driver updates for v4.8 2016-08-01 18:36:01 -04:00
cs5535-clockevt.c clockevents/drivers/cs5535: Migrate to new 'set-state' interface 2015-08-06 12:16:42 +02:00
dummy_timer.c clocksource/dummy_timer: Convert to hotplug state machine 2016-07-15 10:40:24 +02:00
dw_apb_timer.c clockevents/drivers/dw_apb_timer: Implement ->set_state_oneshot_stopped() 2016-04-28 15:09:03 +02:00
dw_apb_timer_of.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
em_sti.c clocksource/drivers/em_sti: Remove unneeded memset()s 2015-10-15 17:41:59 +02:00
exynos_mct.c clocksource: exynos_mct: Add the support for ARM64 2016-09-16 13:07:53 +02:00
fsl_ftm_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
h8300_timer8.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
h8300_timer16.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
h8300_tpu.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
i8253.c clockevents/drivers/i8253: Migrate to new 'set-state' interface 2015-08-10 11:40:30 +02:00
jcore-pit.c clocksource: Add J-Core timer/clocksource driver 2016-10-20 20:10:17 +02:00
meson6_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
metag_generic.c clocksource/metag: Convert to hotplug state machine 2016-07-15 10:40:25 +02:00
mips-gic-timer.c clocksource/mips-gic-timer: Stop checking cpu_has_counter 2016-09-20 23:24:33 +02:00
mmio.c clocksource: Mmio: remove artificial 32bit limitation 2015-12-10 19:37:18 +01:00
moxart_timer.c clocksource/drivers/moxart: Replace panic by pr_err 2016-09-12 07:28:38 +02:00
mps2-timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
mtk_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
mxs_timer.c clocksource/drivers/mxs: Remove useless header <asm/mach/time.h> 2016-06-28 10:22:09 +02:00
nomadik-mtu.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
numachip.c x86/numachip: Fix timer build conflict 2015-09-23 05:39:20 +02:00
pxa_timer.c clocksource/drivers/pxa: Fix include files for compilation 2016-08-24 11:16:38 +02:00
qcom-timer.c clocksource/qcom-timer: Convert to hotplug state machine 2016-07-15 10:40:25 +02:00
rockchip_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
samsung_pwm_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
scx200_hrt.c clocksource: scx200_hrt: Fix the build 2012-02-22 13:25:16 +01:00
sh_cmt.c clocksource/drivers/sh_cmt: Remove unneeded memset() in sh_cmt_setup() 2015-10-15 17:42:00 +02:00
sh_mtu2.c clocksource/drivers/sh_mtu2: Fix multiple shutdown call issue 2015-10-28 15:22:56 +01:00
sh_tmu.c clocksource/drivers/sh_tmu: Fix traceback spotted in -next 2015-08-10 11:40:57 +02:00
sun4i_timer.c clocksource/drivers/sun4i: Clear interrupts after stopping timer in probe function 2016-08-26 15:56:01 +02:00
tango_xtal.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
tcb_clksrc.c clockevents/tcb_clksrc: Prevent disabling an already disabled clock 2016-01-15 11:40:44 +01:00
tegra20_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
time-armada-370-xp.c clocksource/drivers/time-armada-370-xp: Fix the clock reference 2016-08-17 13:08:31 +02:00
time-efm32.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
time-lpc32xx.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
time-orion.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
time-pistachio.c drivers/clocksource/pistachio: Fix memory corruption in init 2016-08-26 15:55:59 +02:00
timer-atlas7.c clocksource/atlas7: Convert to hotplug state machine 2016-07-15 10:41:45 +02:00
timer-atmel-pit.c clocksource/drivers/timer-atmel-pit: Simplify IRQ handler 2016-09-12 07:28:46 +02:00
timer-atmel-st.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
timer-digicolor.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
timer-imx-gpt.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
timer-integrator-ap.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
timer-keystone.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
timer-nps.c clocksource: Add clockevent support to NPS400 driver 2016-11-30 11:54:25 -08:00
timer-oxnas-rps.c clocksource/drivers/oxnas: Add OX820 compatible 2016-09-12 07:28:46 +02:00
timer-prima2.c clocksource/drivers/prima2: Remove useless header <asm/mach/time.h> 2016-06-28 10:22:11 +02:00
timer-sp.h ARM: 8366/1: move Dual-Timer SP804 driver to drivers/clocksource 2015-06-02 09:58:18 +01:00
timer-sp804.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
timer-stm32.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
timer-sun5i.c Revert "clocksource/drivers/timer_sun5i: Replace code by clocksource_mmio_init" 2016-10-20 21:58:58 +02:00
timer-ti-32k.c clocksource/drivers/ti-32k: Prevent ftrace recursion 2016-09-22 16:49:19 +02:00
timer-u300.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
versatile.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
vf_pit_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
vt8500_timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00
zevio-timer.c clocksources: Switch back to the clksrc table 2016-06-28 10:19:35 +02:00