Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82e627eb authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'timers-core-for-linus' of...

Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next

Pull timer core updates from Thomas Gleixner:
 "This time you get nothing really exciting:
   - A huge update to the sh* clocksource drivers
   - Support for two more ARM SoCs
   - Removal of the deprecated setup_sched_clock() API
   - The usual pile of fixlets all over the place"

* 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
  clocksource: Add Freescale FlexTimer Module (FTM) timer support
  ARM: dts: vf610: Add Freescale FlexTimer Module timer node.
  clocksource: ftm: Add FlexTimer Module (FTM) Timer devicetree Documentation
  clocksource: sh_tmu: Remove unnecessary OOM messages
  clocksource: sh_mtu2: Remove unnecessary OOM messages
  clocksource: sh_cmt: Remove unnecessary OOM messages
  clocksource: em_sti: Remove unnecessary OOM messages
  clocksource: dw_apb_timer_of: Do not trace read_sched_clock
  clocksource: Fix clocksource_mmio_readX_down
  clocksource: Fix type confusion for clocksource_mmio_readX_Y
  clocksource: sh_tmu: Fix channel IRQ retrieval in legacy case
  clocksource: qcom: Implement read_current_timer for udelay
  ntp: Make is_error_status() use its argument
  ntp: Convert simple_strtol to kstrtol
  timer_stats/doc: Fix /proc/timer_stats documentation
  sched_clock: Remove deprecated setup_sched_clock() API
  ARM: sun6i: a31: Add support for the High Speed Timers
  clocksource: sun5i: Add support for reset controller
  clocksource: efm32: use $vendor,$device scheme for compatible string
  KConfig: Vexpress: build the ARM_GLOBAL_TIMER with vexpress platform
  ...
parents f1a7cd0f 331b483f
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -4,8 +4,11 @@

** Timer node required properties:

- compatible : Should be "arm,cortex-a9-global-timer"
		Driver supports versions r2p0 and above.
- compatible : should contain
	     * "arm,cortex-a5-global-timer" for Cortex-A5 global timers.
	     * "arm,cortex-a9-global-timer" for Cortex-A9 global
	         timers or any compatible implementation. Note: driver
	         supports versions r2p0 and above.

- interrupts : One interrupt to each core

+4 −0
Original line number Diff line number Diff line
@@ -9,6 +9,9 @@ Required properties:
		one)
- clocks: phandle to the source clock (usually the AHB clock)

Optionnal properties:
- resets: phandle to a reset controller asserting the timer

Example:

timer@01c60000 {
@@ -19,4 +22,5 @@ timer@01c60000 {
		     <0 53 1>,
		     <0 54 1>;
	clocks = <&ahb1_gates 19>;
	resets = <&ahb1rst 19>;
};
+2 −2
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ channels and can be used as PWM or Quadrature Decoder. Available clock sources
are the cpu's HFPERCLK (with a 10-bit prescaler) or an external pin.

Required properties:
- compatible : Should be efm32,timer
- compatible : Should be "energymicro,efm32-timer"
- reg : Address and length of the register set
- clocks : Should contain a reference to the HFPERCLK

@@ -16,7 +16,7 @@ Optional properties:
Example:

timer@40010c00 {
	compatible = "efm32,timer";
	compatible = "energymicro,efm32-timer";
	reg = <0x40010c00 0x400>;
	interrupts = <14>;
	clocks = <&cmu clk_HFPERCLKTIMER3>;
+31 −0
Original line number Diff line number Diff line
Freescale FlexTimer Module (FTM) Timer

Required properties:

- compatible : should be "fsl,ftm-timer"
- reg : Specifies base physical address and size of the register sets for the
  clock event device and clock source device.
- interrupts : Should be the clock event device interrupt.
- clocks : The clocks provided by the SoC to drive the timer, must contain an
  entry for each entry in clock-names.
- clock-names : Must include the following entries:
  o "ftm-evt"
  o "ftm-src"
  o "ftm-evt-counter-en"
  o "ftm-src-counter-en"
- big-endian: One boolean property, the big endian mode will be in use if it is
  present, or the little endian mode will be in use for all the device registers.

Example:
ftm: ftm@400b8000 {
	compatible = "fsl,ftm-timer";
	reg = <0x400b8000 0x1000 0x400b9000 0x1000>;
	interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
	clock-names = "ftm-evt", "ftm-src",
		"ftm-evt-counter-en", "ftm-src-counter-en";
	clocks = <&clks VF610_CLK_FTM2>,
		<&clks VF610_CLK_FTM3>,
		<&clks VF610_CLK_FTM2_EXT_FIX_EN>,
		<&clks VF610_CLK_FTM3_EXT_FIX_EN>;
	big-endian;
};
+3 −3
Original line number Diff line number Diff line
@@ -39,9 +39,9 @@ To stop a sample period issue:
The statistics can be retrieved by:
# cat /proc/timer_stats

The readout of /proc/timer_stats automatically disables sampling. The sampled
information is kept until a new sample period is started. This allows multiple
readouts.
While sampling is enabled, each readout from /proc/timer_stats will see
newly updated statistics. Once sampling is disabled, the sampled information
is kept until a new sample period is started. This allows multiple readouts.

Sample output of /proc/timer_stats:

Loading