Commit a57e8e19 authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

Merge tag 'timers-v5.4' of https://git.linaro.org/people/daniel.lezcano/linux into timers/core

Pull clocksource/events updates from Daniel Lezcano:

 - Rewrite of the davinci timer resulting to an immutable branch to be
   shared with davinci platform specific tree (Bartosz Golaszewski)

 - Cleanup and improvements of the tegra timer (Dmitry Osipenko)

 - Add new nxp system counter timer (Bai Ping)

 - Increase priority for exynos_mct to take over the initialization
   of the IP the arch ARM timer depends on (Marek Szyprowski)

 - Change macro use _BITUL() by BIT() on arc timer (Masahiro Yamada)

 - Implement the delay timer on ixp4xx (Linus Walleij)

 - Add the SPDX license identifier on the meson timer (Neil Armstrong)
parents d48e0cd8 a2e1bb44
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
NXP System Counter Module(sys_ctr)

The system counter(sys_ctr) is a programmable system counter which provides
a shared time base to Cortex A15, A7, A53, A73, etc. it is intended for use in
applications where the counter is always powered and support multiple,
unrelated clocks. The compare frame inside can be used for timer purpose.

Required properties:

- compatible :      should be "nxp,sysctr-timer"
- reg :             Specifies the base physical address and size of the comapre
                    frame and the counter control, read & compare.
- interrupts :      should be the first compare frames' interrupt
- clocks : 	    Specifies the counter clock.
- clock-names: 	    Specifies the clock's name of this module

Example:

	system_counter: timer@306a0000 {
		compatible = "nxp,sysctr-timer";
		reg = <0x306a0000 0x20000>;/* system-counter-rd & compare */
		clocks = <&clk_8m>;
		clock-names = "per";
		interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
	};
+10 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@

#include <asm/barrier.h>
#include <asm/errno.h>
#include <asm/hwcap.h>
#include <linux/clocksource.h>
#include <linux/init.h>
#include <linux/types.h>
@@ -124,6 +125,15 @@ static inline void arch_timer_set_cntkctl(u32 cntkctl)
	isb();
}

static inline void arch_timer_set_evtstrm_feature(void)
{
	elf_hwcap |= HWCAP_EVTSTRM;
}

static inline bool arch_timer_have_evtstrm_feature(void)
{
	return elf_hwcap & HWCAP_EVTSTRM;
}
#endif

#endif
+13 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#define __ASM_ARCH_TIMER_H

#include <asm/barrier.h>
#include <asm/hwcap.h>
#include <asm/sysreg.h>

#include <linux/bug.h>
@@ -240,4 +241,16 @@ static inline int arch_timer_arch_init(void)
	return 0;
}

static inline void arch_timer_set_evtstrm_feature(void)
{
	cpu_set_named_feature(EVTSTRM);
#ifdef CONFIG_COMPAT
	compat_elf_hwcap |= COMPAT_HWCAP_EVTSTRM;
#endif
}

static inline bool arch_timer_have_evtstrm_feature(void)
{
	return cpu_have_named_feature(EVTSTRM);
}
#endif
+13 −1
Original line number Diff line number Diff line
@@ -43,6 +43,11 @@ config BCM_KONA_TIMER
	help
	  Enables the support for the BCM Kona mobile timer driver.

config DAVINCI_TIMER
	bool "Texas Instruments DaVinci timer driver" if COMPILE_TEST
	help
	  Enables the support for the TI DaVinci timer driver.

config DIGICOLOR_TIMER
	bool "Digicolor timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
@@ -140,7 +145,7 @@ config TEGRA_TIMER
	bool "Tegra timer driver" if COMPILE_TEST
	select CLKSRC_MMIO
	select TIMER_OF
	depends on ARM || ARM64
	depends on ARCH_TEGRA || COMPILE_TEST
	help
	  Enables support for the Tegra driver.

@@ -617,6 +622,13 @@ config CLKSRC_IMX_TPM
	  Enable this option to use IMX Timer/PWM Module (TPM) timer as
	  clocksource.

config TIMER_IMX_SYS_CTR
	bool "i.MX system counter timer" if COMPILE_TEST
	select TIMER_OF
	help
	  Enable this option to use i.MX system counter timer as a
	  clockevent.

config CLKSRC_ST_LPC
	bool "Low power clocksource found in the LPC" if COMPILE_TEST
	select TIMER_OF if OF
+3 −1
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ obj-$(CONFIG_SH_TIMER_TMU) += sh_tmu.o
obj-$(CONFIG_EM_TIMER_STI)	+= em_sti.o
obj-$(CONFIG_CLKBLD_I8253)	+= i8253.o
obj-$(CONFIG_CLKSRC_MMIO)	+= mmio.o
obj-$(CONFIG_DAVINCI_TIMER)	+= timer-davinci.o
obj-$(CONFIG_DIGICOLOR_TIMER)	+= timer-digicolor.o
obj-$(CONFIG_OMAP_DM_TIMER)	+= timer-ti-dm.o
obj-$(CONFIG_DW_APB_TIMER)	+= dw_apb_timer.o
@@ -36,7 +37,7 @@ obj-$(CONFIG_U300_TIMER) += timer-u300.o
obj-$(CONFIG_SUN4I_TIMER)	+= timer-sun4i.o
obj-$(CONFIG_SUN5I_HSTIMER)	+= timer-sun5i.o
obj-$(CONFIG_MESON6_TIMER)	+= timer-meson6.o
obj-$(CONFIG_TEGRA_TIMER)	+= timer-tegra20.o
obj-$(CONFIG_TEGRA_TIMER)	+= timer-tegra.o
obj-$(CONFIG_VT8500_TIMER)	+= timer-vt8500.o
obj-$(CONFIG_NSPIRE_TIMER)	+= timer-zevio.o
obj-$(CONFIG_BCM_KONA_TIMER)	+= bcm_kona_timer.o
@@ -74,6 +75,7 @@ obj-$(CONFIG_CLKSRC_MIPS_GIC) += mips-gic-timer.o
obj-$(CONFIG_CLKSRC_TANGO_XTAL)		+= timer-tango-xtal.o
obj-$(CONFIG_CLKSRC_IMX_GPT)		+= timer-imx-gpt.o
obj-$(CONFIG_CLKSRC_IMX_TPM)		+= timer-imx-tpm.o
obj-$(CONFIG_TIMER_IMX_SYS_CTR)		+= timer-imx-sysctr.o
obj-$(CONFIG_ASM9260_TIMER)		+= asm9260_timer.o
obj-$(CONFIG_H8300_TMR8)		+= h8300_timer8.o
obj-$(CONFIG_H8300_TMR16)		+= h8300_timer16.o
Loading