Skip to content

Commit 803b504

Browse files
committed
Merge tag 'omap-for-v5.8/timer-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/soc
System timer changes for omaps for v5.8 merge window This series of changes finally gets the legacy omap dual-mode timer and 32k counter system timer updated to use drivers/clocksource and device tree data. And we can now remove the unused legacy platform data. These changes are based on an immutable clocksource branch set up by Daniel Lezcano. * tag 'omap-for-v5.8/timer-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: bus: ti-sysc: Timers no longer need legacy quirk handling ARM: OMAP2+: Drop old timer code for dmtimer and 32k counter ARM: dts: Configure system timers for omap2 ARM: dts: Configure system timers for ti81xx ARM: dts: Configure system timers for omap3 ARM: dts: Configure system timers for omap5 and dra7 ARM: dts: Configure system timers for omap4 ARM: dts: Configure system timers for am437x ARM: dts: Configure system timers for am335x ARM: OMAP2+: Add omap_init_time_of() bus: ti-sysc: Ignore timer12 on secure omap3 clk: ti: dm816: enable sysclk6_ck on init clocksource/drivers/timer-ti-dm: Fix warning for set but not used clocksource/drivers/timer-ti-dm: Add clockevent and clocksource support clocksource/drivers/timer-ti-32k: Add support for initializing directly Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Arnd Bergmann <[email protected]>
2 parents 66ee935 + 1a54281 commit 803b504

Some content is hidden

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

43 files changed

+1368
-1485
lines changed

arch/arm/boot/dts/am33xx-l4.dtsi

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -330,9 +330,8 @@
330330
};
331331
};
332332

333-
target-module@31000 { /* 0x44e31000, ap 25 40.0 */
333+
timer1_target: target-module@31000 { /* 0x44e31000, ap 25 40.0 */
334334
compatible = "ti,sysc-omap2-timer", "ti,sysc";
335-
ti,hwmods = "timer1";
336335
reg = <0x31000 0x4>,
337336
<0x31010 0x4>,
338337
<0x31014 0x4>;
@@ -1117,9 +1116,8 @@
11171116
};
11181117
};
11191118

1120-
target-module@40000 { /* 0x48040000, ap 22 1e.0 */
1119+
timer2_target: target-module@40000 { /* 0x48040000, ap 22 1e.0 */
11211120
compatible = "ti,sysc-omap4-timer", "ti,sysc";
1122-
ti,hwmods = "timer2";
11231121
reg = <0x40000 0x4>,
11241122
<0x40010 0x4>,
11251123
<0x40014 0x4>;

arch/arm/boot/dts/am33xx.dtsi

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,3 +619,23 @@
619619
#reset-cells = <1>;
620620
};
621621
};
622+
623+
/* Preferred always-on timer for clocksource */
624+
&timer1_target {
625+
ti,no-reset-on-init;
626+
ti,no-idle;
627+
timer@0 {
628+
assigned-clocks = <&timer1_fck>;
629+
assigned-clock-parents = <&sys_clkin_ck>;
630+
};
631+
};
632+
633+
/* Preferred timer for clockevent */
634+
&timer2_target {
635+
ti,no-reset-on-init;
636+
ti,no-idle;
637+
timer@0 {
638+
assigned-clocks = <&timer2_fck>;
639+
assigned-clock-parents = <&sys_clkin_ck>;
640+
};
641+
};

arch/arm/boot/dts/am3517.dtsi

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,5 +169,25 @@
169169
status = "disabled";
170170
};
171171

172-
/include/ "am35xx-clocks.dtsi"
173-
/include/ "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
172+
#include "am35xx-clocks.dtsi"
173+
#include "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
174+
175+
/* Preferred always-on timer for clocksource */
176+
&timer1_target {
177+
ti,no-reset-on-init;
178+
ti,no-idle;
179+
timer@0 {
180+
assigned-clocks = <&gpt1_fck>;
181+
assigned-clock-parents = <&sys_ck>;
182+
};
183+
};
184+
185+
/* Preferred timer for clockevent */
186+
&timer2_target {
187+
ti,no-reset-on-init;
188+
ti,no-idle;
189+
timer@0 {
190+
assigned-clocks = <&gpt2_fck>;
191+
assigned-clock-parents = <&sys_ck>;
192+
};
193+
};

arch/arm/boot/dts/am4372.dtsi

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,3 +553,23 @@
553553
#reset-cells = <1>;
554554
};
555555
};
556+
557+
/* Preferred always-on timer for clocksource */
558+
&timer1_target {
559+
ti,no-reset-on-init;
560+
ti,no-idle;
561+
timer@0 {
562+
assigned-clocks = <&timer1_fck>;
563+
assigned-clock-parents = <&sys_clkin_ck>;
564+
};
565+
};
566+
567+
/* Preferred timer for clockevent */
568+
&timer2_target {
569+
ti,no-reset-on-init;
570+
ti,no-idle;
571+
timer@0 {
572+
assigned-clocks = <&timer2_fck>;
573+
assigned-clock-parents = <&sys_clkin_ck>;
574+
};
575+
};

arch/arm/boot/dts/am437x-l4.dtsi

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -328,9 +328,8 @@
328328
};
329329
};
330330

331-
target-module@31000 { /* 0x44e31000, ap 24 40.0 */
331+
timer1_target: target-module@31000 { /* 0x44e31000, ap 24 40.0 */
332332
compatible = "ti,sysc-omap2-timer", "ti,sysc";
333-
ti,hwmods = "timer1";
334333
reg = <0x31000 0x4>,
335334
<0x31010 0x4>,
336335
<0x31014 0x4>;
@@ -450,7 +449,6 @@
450449

451450
target-module@86000 { /* 0x44e86000, ap 40 70.0 */
452451
compatible = "ti,sysc-omap2", "ti,sysc";
453-
ti,hwmods = "counter_32k";
454452
reg = <0x86000 0x4>,
455453
<0x86004 0x4>;
456454
reg-names = "rev", "sysc";
@@ -868,9 +866,8 @@
868866
};
869867
};
870868

871-
target-module@40000 { /* 0x48040000, ap 18 1e.0 */
869+
timer2_target: target-module@40000 { /* 0x48040000, ap 18 1e.0 */
872870
compatible = "ti,sysc-omap4-timer", "ti,sysc";
873-
ti,hwmods = "timer2";
874871
reg = <0x40000 0x4>,
875872
<0x40010 0x4>,
876873
<0x40014 0x4>;

arch/arm/boot/dts/dm814x.dtsi

Lines changed: 63 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -308,14 +308,30 @@
308308
ti,hwmods = "mcspi4";
309309
};
310310

311-
timer1: timer@2e000 {
312-
compatible = "ti,dm814-timer";
313-
reg = <0x2e000 0x2000>;
314-
interrupts = <67>;
315-
ti,hwmods = "timer1";
316-
ti,timer-alwon;
311+
timer1_target: target-module@2e000 {
312+
compatible = "ti,sysc-omap4-timer", "ti,sysc";
313+
reg = <0x2e000 0x4>,
314+
<0x2e010 0x4>;
315+
reg-names = "rev", "sysc";
316+
ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
317+
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
318+
<SYSC_IDLE_NO>,
319+
<SYSC_IDLE_SMART>,
320+
<SYSC_IDLE_SMART_WKUP>;
317321
clocks = <&timer1_fck>;
318322
clock-names = "fck";
323+
#address-cells = <1>;
324+
#size-cells = <1>;
325+
ranges = <0x0 0x2e000 0x1000>;
326+
327+
timer1: timer@0 {
328+
compatible = "ti,am335x-timer-1ms";
329+
reg = <0x0 0x400>;
330+
interrupts = <67>;
331+
ti,timer-alwon;
332+
clocks = <&timer1_fck>;
333+
clock-names = "fck";
334+
};
319335
};
320336

321337
uart1: uart@20000 {
@@ -348,13 +364,29 @@
348364
dma-names = "tx", "rx";
349365
};
350366

351-
timer2: timer@40000 {
352-
compatible = "ti,dm814-timer";
353-
reg = <0x40000 0x2000>;
354-
interrupts = <68>;
355-
ti,hwmods = "timer2";
367+
timer2_target: target-module@40000 {
368+
compatible = "ti,sysc-omap4-timer", "ti,sysc";
369+
reg = <0x40000 0x4>,
370+
<0x40010 0x4>;
371+
reg-names = "rev", "sysc";
372+
ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
373+
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
374+
<SYSC_IDLE_NO>,
375+
<SYSC_IDLE_SMART>,
376+
<SYSC_IDLE_SMART_WKUP>;
356377
clocks = <&timer2_fck>;
357378
clock-names = "fck";
379+
#address-cells = <1>;
380+
#size-cells = <1>;
381+
ranges = <0x0 0x40000 0x1000>;
382+
383+
timer2: timer@0 {
384+
compatible = "ti,dm814-timer";
385+
reg = <0 0x1000>;
386+
interrupts = <68>;
387+
clocks = <&timer2_fck>;
388+
clock-names = "fck";
389+
};
358390
};
359391

360392
timer3: timer@42000 {
@@ -735,3 +767,23 @@
735767
};
736768

737769
#include "dm814x-clocks.dtsi"
770+
771+
/* Preferred always-on timer for clocksource */
772+
&timer1_target {
773+
ti,no-reset-on-init;
774+
ti,no-idle;
775+
timer@0 {
776+
assigned-clocks = <&timer1_fck>;
777+
assigned-clock-parents = <&devosc_ck>;
778+
};
779+
};
780+
781+
/* Preferred timer for clockevent */
782+
&timer2_target {
783+
ti,no-reset-on-init;
784+
ti,no-idle;
785+
timer@0 {
786+
assigned-clocks = <&timer2_fck>;
787+
assigned-clock-parents = <&devosc_ck>;
788+
};
789+
};

arch/arm/boot/dts/dm816x.dtsi

Lines changed: 65 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -440,23 +440,55 @@
440440
dma-names = "tx", "rx";
441441
};
442442

443-
timer1: timer@4802e000 {
444-
compatible = "ti,dm816-timer";
445-
reg = <0x4802e000 0x2000>;
446-
interrupts = <67>;
447-
ti,hwmods = "timer1";
448-
ti,timer-alwon;
449-
clocks = <&timer1_fck>;
443+
timer1_target: target-module@4802e000 {
444+
compatible = "ti,sysc-omap4-timer", "ti,sysc";
445+
reg = <0x4802e000 0x4>,
446+
<0x4802e010 0x4>;
447+
reg-names = "rev", "sysc";
448+
ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
449+
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
450+
<SYSC_IDLE_NO>,
451+
<SYSC_IDLE_SMART>,
452+
<SYSC_IDLE_SMART_WKUP>;
453+
clocks = <&alwon_clkctrl DM816_TIMER1_CLKCTRL 0>;
450454
clock-names = "fck";
455+
#address-cells = <1>;
456+
#size-cells = <1>;
457+
ranges = <0x0 0x4802e000 0x1000>;
458+
459+
timer1: timer@0 {
460+
compatible = "ti,dm816-timer";
461+
reg = <0 0x1000>;
462+
interrupts = <67>;
463+
ti,timer-alwon;
464+
clocks = <&alwon_clkctrl DM816_TIMER1_CLKCTRL 0>;
465+
clock-names = "fck";
466+
};
451467
};
452468

453-
timer2: timer@48040000 {
454-
compatible = "ti,dm816-timer";
455-
reg = <0x48040000 0x2000>;
456-
interrupts = <68>;
457-
ti,hwmods = "timer2";
458-
clocks = <&timer2_fck>;
469+
timer2_target: target-module@48040000 {
470+
compatible = "ti,sysc-omap4-timer", "ti,sysc";
471+
reg = <0x48040000 0x4>,
472+
<0x48040010 0x4>;
473+
reg-names = "rev", "sysc";
474+
ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
475+
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
476+
<SYSC_IDLE_NO>,
477+
<SYSC_IDLE_SMART>,
478+
<SYSC_IDLE_SMART_WKUP>;
479+
clocks = <&alwon_clkctrl DM816_TIMER2_CLKCTRL 0>;
459480
clock-names = "fck";
481+
#address-cells = <1>;
482+
#size-cells = <1>;
483+
ranges = <0x0 0x48040000 0x1000>;
484+
485+
timer2: timer@0 {
486+
compatible = "ti,dm816-timer";
487+
reg = <0 0x1000>;
488+
interrupts = <68>;
489+
clocks = <&alwon_clkctrl DM816_TIMER2_CLKCTRL 0>;
490+
clock-names = "fck";
491+
};
460492
};
461493

462494
timer3: timer@48042000 {
@@ -642,3 +674,23 @@
642674
};
643675

644676
#include "dm816x-clocks.dtsi"
677+
678+
/* Preferred always-on timer for clocksource */
679+
&timer1_target {
680+
ti,no-reset-on-init;
681+
ti,no-idle;
682+
timer@0 {
683+
assigned-clocks = <&timer1_fck>;
684+
assigned-clock-parents = <&sys_clkin_ck>;
685+
};
686+
};
687+
688+
/* Preferred timer for clockevent */
689+
&timer2_target {
690+
ti,no-reset-on-init;
691+
ti,no-idle;
692+
timer@0 {
693+
assigned-clocks = <&timer2_fck>;
694+
assigned-clock-parents = <&sys_clkin_ck>;
695+
};
696+
};

arch/arm/boot/dts/dra7-l4.dtsi

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1143,7 +1143,6 @@
11431143

11441144
target-module@32000 { /* 0x48032000, ap 5 3e.0 */
11451145
compatible = "ti,sysc-omap4-timer", "ti,sysc";
1146-
ti,hwmods = "timer2";
11471146
reg = <0x32000 0x4>,
11481147
<0x32010 0x4>;
11491148
reg-names = "rev", "sysc";
@@ -1171,7 +1170,6 @@
11711170

11721171
target-module@34000 { /* 0x48034000, ap 7 46.0 */
11731172
compatible = "ti,sysc-omap4-timer", "ti,sysc";
1174-
ti,hwmods = "timer3";
11751173
reg = <0x34000 0x4>,
11761174
<0x34010 0x4>;
11771175
reg-names = "rev", "sysc";
@@ -1199,7 +1197,6 @@
11991197

12001198
target-module@36000 { /* 0x48036000, ap 9 4e.0 */
12011199
compatible = "ti,sysc-omap4-timer", "ti,sysc";
1202-
ti,hwmods = "timer4";
12031200
reg = <0x36000 0x4>,
12041201
<0x36010 0x4>;
12051202
reg-names = "rev", "sysc";
@@ -4295,7 +4292,6 @@
42954292

42964293
target-module@4000 { /* 0x4ae04000, ap 15 40.0 */
42974294
compatible = "ti,sysc-omap2", "ti,sysc";
4298-
ti,hwmods = "counter_32k";
42994295
reg = <0x4000 0x4>,
43004296
<0x4010 0x4>;
43014297
reg-names = "rev", "sysc";
@@ -4430,9 +4426,8 @@
44304426
};
44314427
};
44324428

4433-
target-module@8000 { /* 0x4ae18000, ap 9 30.0 */
4429+
timer1_target: target-module@8000 { /* 0x4ae18000, ap 9 30.0 */
44344430
compatible = "ti,sysc-omap4-timer", "ti,sysc";
4435-
ti,hwmods = "timer1";
44364431
reg = <0x8000 0x4>,
44374432
<0x8010 0x4>;
44384433
reg-names = "rev", "sysc";

arch/arm/boot/dts/dra7.dtsi

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1044,3 +1044,13 @@
10441044
reg = <0x1c00 0x60>;
10451045
};
10461046
};
1047+
1048+
/* Preferred always-on timer for clockevent */
1049+
&timer1_target {
1050+
ti,no-reset-on-init;
1051+
ti,no-idle;
1052+
timer@0 {
1053+
assigned-clocks = <&wkupaon_clkctrl DRA7_TIMER1_CLKCTRL 24>;
1054+
assigned-clock-parents = <&sys_32k_ck>;
1055+
};
1056+
};

0 commit comments

Comments
 (0)