Skip to content

Commit 1ead658

Browse files
committed
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer changes from Thomas Gleixner: "This assorted collection provides: - A new timer based timer broadcast feature for systems which do not provide a global accessible timer device. That allows those systems to put CPUs into deep idle states where the per cpu timer device stops. - A few NOHZ_FULL related improvements to the timer wheel - The usual updates to timer devices found in ARM SoCs - Small improvements and updates all over the place" * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (44 commits) tick: Remove code duplication in tick_handle_periodic() tick: Fix spelling mistake in tick_handle_periodic() x86: hpet: Use proper destructor for delayed work workqueue: Provide destroy_delayed_work_on_stack() clocksource: CMT, MTU2, TMU and STI should depend on GENERIC_CLOCKEVENTS timer: Remove code redundancy while calling get_nohz_timer_target() hrtimer: Rearrange comments in the order struct members are declared timer: Use variable head instead of &work_list in __run_timers() clocksource: exynos_mct: silence a static checker warning arm: zynq: Add support for cpufreq arm: zynq: Don't use arm_global_timer with cpufreq clocksource/cadence_ttc: Overhaul clocksource frequency adjustment clocksource/cadence_ttc: Call clockevents_update_freq() with IRQs enabled clocksource: Add Kconfig entries for CMT, MTU2, TMU and STI sh: Remove Kconfig entries for TMU, CMT and MTU2 ARM: shmobile: Remove CMT, TMU and STI Kconfig entries clocksource: armada-370-xp: Use atomic access for shared registers clocksource: orion: Use atomic access for shared registers clocksource: timer-keystone: Delete unnecessary variable clocksource: timer-keystone: introduce clocksource driver for Keystone ...
2 parents b6d739e + b97f029 commit 1ead658

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+807
-226
lines changed

Documentation/devicetree/bindings/timer/allwinner,sun4i-timer.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ Allwinner A1X SoCs Timer Controller
22

33
Required properties:
44

5-
- compatible : should be "allwinner,sun4i-timer"
5+
- compatible : should be "allwinner,sun4i-a10-timer"
66
- reg : Specifies base physical address and size of the registers.
77
- interrupts : The interrupt of the first timer
88
- clocks: phandle to the source clock (usually a 24 MHz fixed clock)
99

1010
Example:
1111

1212
timer {
13-
compatible = "allwinner,sun4i-timer";
13+
compatible = "allwinner,sun4i-a10-timer";
1414
reg = <0x01c20c00 0x400>;
1515
interrupts = <22>;
1616
clocks = <&osc>;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
* Device tree bindings for Texas instruments Keystone timer
2+
3+
This document provides bindings for the 64-bit timer in the KeyStone
4+
architecture devices. The timer can be configured as a general-purpose 64-bit
5+
timer, dual general-purpose 32-bit timers. When configured as dual 32-bit
6+
timers, each half can operate in conjunction (chain mode) or independently
7+
(unchained mode) of each other.
8+
9+
It is global timer is a free running up-counter and can generate interrupt
10+
when the counter reaches preset counter values.
11+
12+
Documentation:
13+
http://www.ti.com/lit/ug/sprugv5a/sprugv5a.pdf
14+
15+
Required properties:
16+
17+
- compatible : should be "ti,keystone-timer".
18+
- reg : specifies base physical address and count of the registers.
19+
- interrupts : interrupt generated by the timer.
20+
- clocks : the clock feeding the timer clock.
21+
22+
Example:
23+
24+
timer@22f0000 {
25+
compatible = "ti,keystone-timer";
26+
reg = <0x022f0000 0x80>;
27+
interrupts = <GIC_SPI 110 IRQ_TYPE_EDGE_RISING>;
28+
clocks = <&clktimer15>;
29+
};

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1320,6 +1320,7 @@ M: Linus Walleij <[email protected]>
13201320
L: [email protected] (moderated for non-subscribers)
13211321
S: Supported
13221322
F: arch/arm/mach-u300/
1323+
F: drivers/clocksource/timer-u300.c
13231324
F: drivers/i2c/busses/i2c-stu300.c
13241325
F: drivers/rtc/rtc-coh901331.c
13251326
F: drivers/watchdog/coh901327_wdt.c

arch/arm/boot/dts/sun4i-a10.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@
403403
};
404404

405405
timer@01c20c00 {
406-
compatible = "allwinner,sun4i-timer";
406+
compatible = "allwinner,sun4i-a10-timer";
407407
reg = <0x01c20c00 0x90>;
408408
interrupts = <22>;
409409
clocks = <&osc24M>;

arch/arm/boot/dts/sun5i-a10s.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@
366366
};
367367

368368
timer@01c20c00 {
369-
compatible = "allwinner,sun4i-timer";
369+
compatible = "allwinner,sun4i-a10-timer";
370370
reg = <0x01c20c00 0x90>;
371371
interrupts = <22>;
372372
clocks = <&osc24M>;

arch/arm/boot/dts/sun5i-a13.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@
329329
};
330330

331331
timer@01c20c00 {
332-
compatible = "allwinner,sun4i-timer";
332+
compatible = "allwinner,sun4i-a10-timer";
333333
reg = <0x01c20c00 0x90>;
334334
interrupts = <22>;
335335
clocks = <&osc24M>;

arch/arm/boot/dts/sun6i-a31.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@
231231
};
232232

233233
timer@01c20c00 {
234-
compatible = "allwinner,sun4i-timer";
234+
compatible = "allwinner,sun4i-a10-timer";
235235
reg = <0x01c20c00 0xa0>;
236236
interrupts = <0 18 4>,
237237
<0 19 4>,

arch/arm/boot/dts/sun7i-a20.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@
435435
};
436436

437437
timer@01c20c00 {
438-
compatible = "allwinner,sun4i-timer";
438+
compatible = "allwinner,sun4i-a10-timer";
439439
reg = <0x01c20c00 0x90>;
440440
interrupts = <0 22 4>,
441441
<0 23 4>,

arch/arm/boot/dts/zynq-7000.dtsi

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@
2424
device_type = "cpu";
2525
reg = <0>;
2626
clocks = <&clkc 3>;
27+
operating-points = <
28+
/* kHz uV */
29+
666667 1000000
30+
333334 1000000
31+
222223 1000000
32+
>;
2733
};
2834

2935
cpu@1 {

arch/arm/mach-shmobile/Kconfig

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,21 @@ comment "Renesas ARM SoCs System Type"
2424

2525
config ARCH_EMEV2
2626
bool "Emma Mobile EV2"
27+
select SYS_SUPPORTS_EM_STI
2728

2829
config ARCH_R7S72100
2930
bool "RZ/A1H (R7S72100)"
31+
select SYS_SUPPORTS_SH_MTU2
3032

3133
config ARCH_R8A7790
3234
bool "R-Car H2 (R8A77900)"
3335
select RENESAS_IRQC
36+
select SYS_SUPPORTS_SH_CMT
3437

3538
config ARCH_R8A7791
3639
bool "R-Car M2 (R8A77910)"
3740
select RENESAS_IRQC
41+
select SYS_SUPPORTS_SH_CMT
3842

3943
comment "Renesas ARM SoCs Board Type"
4044

@@ -68,6 +72,8 @@ config ARCH_SH7372
6872
select ARM_CPU_SUSPEND if PM || CPU_IDLE
6973
select CPU_V7
7074
select SH_CLK_CPG
75+
select SYS_SUPPORTS_SH_CMT
76+
select SYS_SUPPORTS_SH_TMU
7177

7278
config ARCH_SH73A0
7379
bool "SH-Mobile AG5 (R8A73A00)"
@@ -77,6 +83,8 @@ config ARCH_SH73A0
7783
select I2C
7884
select SH_CLK_CPG
7985
select RENESAS_INTC_IRQPIN
86+
select SYS_SUPPORTS_SH_CMT
87+
select SYS_SUPPORTS_SH_TMU
8088

8189
config ARCH_R8A73A4
8290
bool "R-Mobile APE6 (R8A73A40)"
@@ -87,6 +95,8 @@ config ARCH_R8A73A4
8795
select RENESAS_IRQC
8896
select ARCH_HAS_CPUFREQ
8997
select ARCH_HAS_OPP
98+
select SYS_SUPPORTS_SH_CMT
99+
select SYS_SUPPORTS_SH_TMU
90100

91101
config ARCH_R8A7740
92102
bool "R-Mobile A1 (R8A77400)"
@@ -95,6 +105,8 @@ config ARCH_R8A7740
95105
select CPU_V7
96106
select SH_CLK_CPG
97107
select RENESAS_INTC_IRQPIN
108+
select SYS_SUPPORTS_SH_CMT
109+
select SYS_SUPPORTS_SH_TMU
98110

99111
config ARCH_R8A7778
100112
bool "R-Car M1A (R8A77781)"
@@ -104,6 +116,7 @@ config ARCH_R8A7778
104116
select ARM_GIC
105117
select USB_ARCH_HAS_EHCI
106118
select USB_ARCH_HAS_OHCI
119+
select SYS_SUPPORTS_SH_TMU
107120

108121
config ARCH_R8A7779
109122
bool "R-Car H1 (R8A77790)"
@@ -114,6 +127,7 @@ config ARCH_R8A7779
114127
select USB_ARCH_HAS_EHCI
115128
select USB_ARCH_HAS_OHCI
116129
select RENESAS_INTC_IRQPIN
130+
select SYS_SUPPORTS_SH_TMU
117131

118132
config ARCH_R8A7790
119133
bool "R-Car H2 (R8A77900)"
@@ -123,6 +137,7 @@ config ARCH_R8A7790
123137
select MIGHT_HAVE_PCI
124138
select SH_CLK_CPG
125139
select RENESAS_IRQC
140+
select SYS_SUPPORTS_SH_CMT
126141

127142
config ARCH_R8A7791
128143
bool "R-Car M2 (R8A77910)"
@@ -132,6 +147,7 @@ config ARCH_R8A7791
132147
select MIGHT_HAVE_PCI
133148
select SH_CLK_CPG
134149
select RENESAS_IRQC
150+
select SYS_SUPPORTS_SH_CMT
135151

136152
config ARCH_EMEV2
137153
bool "Emma Mobile EV2"
@@ -141,13 +157,15 @@ config ARCH_EMEV2
141157
select MIGHT_HAVE_PCI
142158
select USE_OF
143159
select AUTO_ZRELADDR
160+
select SYS_SUPPORTS_EM_STI
144161

145162
config ARCH_R7S72100
146163
bool "RZ/A1H (R7S72100)"
147164
select ARCH_WANT_OPTIONAL_GPIOLIB
148165
select ARM_GIC
149166
select CPU_V7
150167
select SH_CLK_CPG
168+
select SYS_SUPPORTS_SH_MTU2
151169

152170
comment "Renesas ARM SoCs Board Type"
153171

@@ -321,24 +339,6 @@ config SHMOBILE_TIMER_HZ
321339
want to select a HZ value such as 128 that can evenly divide RCLK.
322340
A HZ value that does not divide evenly may cause timer drift.
323341

324-
config SH_TIMER_CMT
325-
bool "CMT timer driver"
326-
default y
327-
help
328-
This enables build of the CMT timer driver.
329-
330-
config SH_TIMER_TMU
331-
bool "TMU timer driver"
332-
default y
333-
help
334-
This enables build of the TMU timer driver.
335-
336-
config EM_TIMER_STI
337-
bool "STI timer driver"
338-
default y
339-
help
340-
This enables build of the STI timer driver.
341-
342342
endmenu
343343

344344
endif

arch/arm/mach-u300/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Makefile for the linux kernel, U300 machine.
33
#
44

5-
obj-y := core.o timer.o
5+
obj-y := core.o
66
obj-m :=
77
obj-n :=
88
obj- :=

arch/arm/mach-zynq/Kconfig

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ config ARCH_ZYNQ
22
bool "Xilinx Zynq ARM Cortex A9 Platform" if ARCH_MULTI_V7
33
select ARM_AMBA
44
select ARM_GIC
5+
select ARCH_HAS_CPUFREQ
6+
select ARCH_HAS_OPP
57
select COMMON_CLK
68
select CPU_V7
79
select GENERIC_CLOCKEVENTS
@@ -13,6 +15,6 @@ config ARCH_ZYNQ
1315
select HAVE_SMP
1416
select SPARSE_IRQ
1517
select CADENCE_TTC_TIMER
16-
select ARM_GLOBAL_TIMER
18+
select ARM_GLOBAL_TIMER if !CPU_FREQ
1719
help
1820
Support for Xilinx Zynq ARM Cortex A9 Platform

arch/arm/mach-zynq/common.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ static struct platform_device zynq_cpuidle_device = {
6464
*/
6565
static void __init zynq_init_machine(void)
6666
{
67+
struct platform_device_info devinfo = { .name = "cpufreq-cpu0", };
68+
6769
/*
6870
* 64KB way size, 8-way associativity, parity disabled
6971
*/
@@ -72,6 +74,7 @@ static void __init zynq_init_machine(void)
7274
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
7375

7476
platform_device_register(&zynq_cpuidle_device);
77+
platform_device_register_full(&devinfo);
7578
}
7679

7780
static void __init zynq_timer_init(void)

0 commit comments

Comments
 (0)