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/pull-1590169577-735045@atomide.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -330,9 +330,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
target-module@31000 { /* 0x44e31000, ap 25 40.0 */
|
||||
timer1_target: target-module@31000 { /* 0x44e31000, ap 25 40.0 */
|
||||
compatible = "ti,sysc-omap2-timer", "ti,sysc";
|
||||
ti,hwmods = "timer1";
|
||||
reg = <0x31000 0x4>,
|
||||
<0x31010 0x4>,
|
||||
<0x31014 0x4>;
|
||||
@@ -1117,9 +1116,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
target-module@40000 { /* 0x48040000, ap 22 1e.0 */
|
||||
timer2_target: target-module@40000 { /* 0x48040000, ap 22 1e.0 */
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
ti,hwmods = "timer2";
|
||||
reg = <0x40000 0x4>,
|
||||
<0x40010 0x4>,
|
||||
<0x40014 0x4>;
|
||||
|
@@ -619,3 +619,23 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred always-on timer for clocksource */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&timer1_fck>;
|
||||
assigned-clock-parents = <&sys_clkin_ck>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred timer for clockevent */
|
||||
&timer2_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&timer2_fck>;
|
||||
assigned-clock-parents = <&sys_clkin_ck>;
|
||||
};
|
||||
};
|
||||
|
@@ -169,5 +169,25 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/include/ "am35xx-clocks.dtsi"
|
||||
/include/ "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
|
||||
#include "am35xx-clocks.dtsi"
|
||||
#include "omap36xx-am35xx-omap3430es2plus-clocks.dtsi"
|
||||
|
||||
/* Preferred always-on timer for clocksource */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&gpt1_fck>;
|
||||
assigned-clock-parents = <&sys_ck>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred timer for clockevent */
|
||||
&timer2_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&gpt2_fck>;
|
||||
assigned-clock-parents = <&sys_ck>;
|
||||
};
|
||||
};
|
||||
|
@@ -553,3 +553,23 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred always-on timer for clocksource */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&timer1_fck>;
|
||||
assigned-clock-parents = <&sys_clkin_ck>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred timer for clockevent */
|
||||
&timer2_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&timer2_fck>;
|
||||
assigned-clock-parents = <&sys_clkin_ck>;
|
||||
};
|
||||
};
|
||||
|
@@ -328,9 +328,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
target-module@31000 { /* 0x44e31000, ap 24 40.0 */
|
||||
timer1_target: target-module@31000 { /* 0x44e31000, ap 24 40.0 */
|
||||
compatible = "ti,sysc-omap2-timer", "ti,sysc";
|
||||
ti,hwmods = "timer1";
|
||||
reg = <0x31000 0x4>,
|
||||
<0x31010 0x4>,
|
||||
<0x31014 0x4>;
|
||||
@@ -450,7 +449,6 @@
|
||||
|
||||
target-module@86000 { /* 0x44e86000, ap 40 70.0 */
|
||||
compatible = "ti,sysc-omap2", "ti,sysc";
|
||||
ti,hwmods = "counter_32k";
|
||||
reg = <0x86000 0x4>,
|
||||
<0x86004 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
@@ -868,9 +866,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
target-module@40000 { /* 0x48040000, ap 18 1e.0 */
|
||||
timer2_target: target-module@40000 { /* 0x48040000, ap 18 1e.0 */
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
ti,hwmods = "timer2";
|
||||
reg = <0x40000 0x4>,
|
||||
<0x40010 0x4>,
|
||||
<0x40014 0x4>;
|
||||
|
@@ -308,14 +308,30 @@
|
||||
ti,hwmods = "mcspi4";
|
||||
};
|
||||
|
||||
timer1: timer@2e000 {
|
||||
compatible = "ti,dm814-timer";
|
||||
reg = <0x2e000 0x2000>;
|
||||
interrupts = <67>;
|
||||
ti,hwmods = "timer1";
|
||||
ti,timer-alwon;
|
||||
timer1_target: target-module@2e000 {
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
reg = <0x2e000 0x4>,
|
||||
<0x2e010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>,
|
||||
<SYSC_IDLE_SMART_WKUP>;
|
||||
clocks = <&timer1_fck>;
|
||||
clock-names = "fck";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x2e000 0x1000>;
|
||||
|
||||
timer1: timer@0 {
|
||||
compatible = "ti,am335x-timer-1ms";
|
||||
reg = <0x0 0x400>;
|
||||
interrupts = <67>;
|
||||
ti,timer-alwon;
|
||||
clocks = <&timer1_fck>;
|
||||
clock-names = "fck";
|
||||
};
|
||||
};
|
||||
|
||||
uart1: uart@20000 {
|
||||
@@ -348,13 +364,29 @@
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
|
||||
timer2: timer@40000 {
|
||||
compatible = "ti,dm814-timer";
|
||||
reg = <0x40000 0x2000>;
|
||||
interrupts = <68>;
|
||||
ti,hwmods = "timer2";
|
||||
timer2_target: target-module@40000 {
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
reg = <0x40000 0x4>,
|
||||
<0x40010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>,
|
||||
<SYSC_IDLE_SMART_WKUP>;
|
||||
clocks = <&timer2_fck>;
|
||||
clock-names = "fck";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x40000 0x1000>;
|
||||
|
||||
timer2: timer@0 {
|
||||
compatible = "ti,dm814-timer";
|
||||
reg = <0 0x1000>;
|
||||
interrupts = <68>;
|
||||
clocks = <&timer2_fck>;
|
||||
clock-names = "fck";
|
||||
};
|
||||
};
|
||||
|
||||
timer3: timer@42000 {
|
||||
@@ -735,3 +767,23 @@
|
||||
};
|
||||
|
||||
#include "dm814x-clocks.dtsi"
|
||||
|
||||
/* Preferred always-on timer for clocksource */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&timer1_fck>;
|
||||
assigned-clock-parents = <&devosc_ck>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred timer for clockevent */
|
||||
&timer2_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&timer2_fck>;
|
||||
assigned-clock-parents = <&devosc_ck>;
|
||||
};
|
||||
};
|
||||
|
@@ -440,23 +440,55 @@
|
||||
dma-names = "tx", "rx";
|
||||
};
|
||||
|
||||
timer1: timer@4802e000 {
|
||||
compatible = "ti,dm816-timer";
|
||||
reg = <0x4802e000 0x2000>;
|
||||
interrupts = <67>;
|
||||
ti,hwmods = "timer1";
|
||||
ti,timer-alwon;
|
||||
clocks = <&timer1_fck>;
|
||||
timer1_target: target-module@4802e000 {
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
reg = <0x4802e000 0x4>,
|
||||
<0x4802e010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>,
|
||||
<SYSC_IDLE_SMART_WKUP>;
|
||||
clocks = <&alwon_clkctrl DM816_TIMER1_CLKCTRL 0>;
|
||||
clock-names = "fck";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x4802e000 0x1000>;
|
||||
|
||||
timer1: timer@0 {
|
||||
compatible = "ti,dm816-timer";
|
||||
reg = <0 0x1000>;
|
||||
interrupts = <67>;
|
||||
ti,timer-alwon;
|
||||
clocks = <&alwon_clkctrl DM816_TIMER1_CLKCTRL 0>;
|
||||
clock-names = "fck";
|
||||
};
|
||||
};
|
||||
|
||||
timer2: timer@48040000 {
|
||||
compatible = "ti,dm816-timer";
|
||||
reg = <0x48040000 0x2000>;
|
||||
interrupts = <68>;
|
||||
ti,hwmods = "timer2";
|
||||
clocks = <&timer2_fck>;
|
||||
timer2_target: target-module@48040000 {
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
reg = <0x48040000 0x4>,
|
||||
<0x48040010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>,
|
||||
<SYSC_IDLE_SMART_WKUP>;
|
||||
clocks = <&alwon_clkctrl DM816_TIMER2_CLKCTRL 0>;
|
||||
clock-names = "fck";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x48040000 0x1000>;
|
||||
|
||||
timer2: timer@0 {
|
||||
compatible = "ti,dm816-timer";
|
||||
reg = <0 0x1000>;
|
||||
interrupts = <68>;
|
||||
clocks = <&alwon_clkctrl DM816_TIMER2_CLKCTRL 0>;
|
||||
clock-names = "fck";
|
||||
};
|
||||
};
|
||||
|
||||
timer3: timer@48042000 {
|
||||
@@ -642,3 +674,23 @@
|
||||
};
|
||||
|
||||
#include "dm816x-clocks.dtsi"
|
||||
|
||||
/* Preferred always-on timer for clocksource */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&timer1_fck>;
|
||||
assigned-clock-parents = <&sys_clkin_ck>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred timer for clockevent */
|
||||
&timer2_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&timer2_fck>;
|
||||
assigned-clock-parents = <&sys_clkin_ck>;
|
||||
};
|
||||
};
|
||||
|
@@ -1143,7 +1143,6 @@
|
||||
|
||||
target-module@32000 { /* 0x48032000, ap 5 3e.0 */
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
ti,hwmods = "timer2";
|
||||
reg = <0x32000 0x4>,
|
||||
<0x32010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
@@ -1171,7 +1170,6 @@
|
||||
|
||||
target-module@34000 { /* 0x48034000, ap 7 46.0 */
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
ti,hwmods = "timer3";
|
||||
reg = <0x34000 0x4>,
|
||||
<0x34010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
@@ -1199,7 +1197,6 @@
|
||||
|
||||
target-module@36000 { /* 0x48036000, ap 9 4e.0 */
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
ti,hwmods = "timer4";
|
||||
reg = <0x36000 0x4>,
|
||||
<0x36010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
@@ -4295,7 +4292,6 @@
|
||||
|
||||
target-module@4000 { /* 0x4ae04000, ap 15 40.0 */
|
||||
compatible = "ti,sysc-omap2", "ti,sysc";
|
||||
ti,hwmods = "counter_32k";
|
||||
reg = <0x4000 0x4>,
|
||||
<0x4010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
@@ -4430,9 +4426,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
target-module@8000 { /* 0x4ae18000, ap 9 30.0 */
|
||||
timer1_target: target-module@8000 { /* 0x4ae18000, ap 9 30.0 */
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
ti,hwmods = "timer1";
|
||||
reg = <0x8000 0x4>,
|
||||
<0x8010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
|
@@ -1044,3 +1044,13 @@
|
||||
reg = <0x1c00 0x60>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred always-on timer for clockevent */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&wkupaon_clkctrl DRA7_TIMER1_CLKCTRL 24>;
|
||||
assigned-clock-parents = <&sys_32k_ck>;
|
||||
};
|
||||
};
|
||||
|
@@ -201,11 +201,32 @@
|
||||
clock-frequency = <48000000>;
|
||||
};
|
||||
|
||||
timer2: timer@4802a000 {
|
||||
compatible = "ti,omap2420-timer";
|
||||
reg = <0x4802a000 0x400>;
|
||||
interrupts = <38>;
|
||||
ti,hwmods = "timer2";
|
||||
timer2_target: target-module@4802a000 {
|
||||
compatible = "ti,sysc-omap2-timer", "ti,sysc";
|
||||
reg = <0x4802a000 0x4>,
|
||||
<0x4802a010 0x4>,
|
||||
<0x4802a014 0x4>;
|
||||
reg-names = "rev", "sysc", "syss";
|
||||
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
|
||||
SYSC_OMAP2_EMUFREE |
|
||||
SYSC_OMAP2_ENAWAKEUP |
|
||||
SYSC_OMAP2_SOFTRESET |
|
||||
SYSC_OMAP2_AUTOIDLE)>;
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>;
|
||||
ti,syss-mask = <1>;
|
||||
clocks = <&gpt2_fck>, <&gpt2_ick>;
|
||||
clock-names = "fck", "ick";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x4802a000 0x1000>;
|
||||
|
||||
timer2: timer@0 {
|
||||
compatible = "ti,omap2420-timer";
|
||||
reg = <0 0x400>;
|
||||
interrupts = <38>;
|
||||
};
|
||||
};
|
||||
|
||||
timer3: timer@48078000 {
|
||||
|
@@ -68,10 +68,23 @@
|
||||
};
|
||||
};
|
||||
|
||||
counter32k: counter@4000 {
|
||||
compatible = "ti,omap-counter32k";
|
||||
reg = <0x4000 0x20>;
|
||||
ti,hwmods = "counter_32k";
|
||||
target-module@4000 {
|
||||
compatible = "ti,sysc-omap2", "ti,sysc";
|
||||
reg = <0x4000 0x4>,
|
||||
<0x4004 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>;
|
||||
clocks = <&func_32k_ck>;
|
||||
clock-names = "fck";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x4000 0x1000>;
|
||||
|
||||
counter32k: counter@0 {
|
||||
compatible = "ti,omap-counter32k";
|
||||
reg = <0 0x20>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -194,12 +207,33 @@
|
||||
};
|
||||
};
|
||||
|
||||
timer1: timer@48028000 {
|
||||
compatible = "ti,omap2420-timer";
|
||||
reg = <0x48028000 0x400>;
|
||||
interrupts = <37>;
|
||||
ti,hwmods = "timer1";
|
||||
ti,timer-alwon;
|
||||
timer1_target: target-module@48028000 {
|
||||
compatible = "ti,sysc-omap2-timer", "ti,sysc";
|
||||
reg = <0x48028000 0x4>,
|
||||
<0x48028010 0x4>,
|
||||
<0x48028014 0x4>;
|
||||
reg-names = "rev", "sysc", "syss";
|
||||
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
|
||||
SYSC_OMAP2_EMUFREE |
|
||||
SYSC_OMAP2_ENAWAKEUP |
|
||||
SYSC_OMAP2_SOFTRESET |
|
||||
SYSC_OMAP2_AUTOIDLE)>;
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>;
|
||||
ti,syss-mask = <1>;
|
||||
clocks = <&gpt1_fck>, <&gpt1_ick>;
|
||||
clock-names = "fck", "ick";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x48028000 0x1000>;
|
||||
|
||||
timer1: timer@0 {
|
||||
compatible = "ti,omap2420-timer";
|
||||
reg = <0 0x400>;
|
||||
interrupts = <37>;
|
||||
ti,timer-alwon;
|
||||
};
|
||||
};
|
||||
|
||||
wd_timer2: wdt@48022000 {
|
||||
@@ -218,5 +252,15 @@
|
||||
compatible = "ti,omap2420-i2c";
|
||||
};
|
||||
|
||||
/include/ "omap24xx-clocks.dtsi"
|
||||
/include/ "omap2420-clocks.dtsi"
|
||||
#include "omap24xx-clocks.dtsi"
|
||||
#include "omap2420-clocks.dtsi"
|
||||
|
||||
/* Preferred always-on timer for clockevent */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&gpt1_fck>;
|
||||
assigned-clock-parents = <&func_32k_ck>;
|
||||
};
|
||||
};
|
||||
|
@@ -81,10 +81,23 @@
|
||||
};
|
||||
};
|
||||
|
||||
counter32k: counter@20000 {
|
||||
compatible = "ti,omap-counter32k";
|
||||
reg = <0x20000 0x20>;
|
||||
ti,hwmods = "counter_32k";
|
||||
target-module@20000 {
|
||||
compatible = "ti,sysc-omap2", "ti,sysc";
|
||||
reg = <0x20000 0x4>,
|
||||
<0x20004 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>;
|
||||
clocks = <&func_32k_ck>;
|
||||
clock-names = "fck";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x20000 0x1000>;
|
||||
|
||||
counter32k: counter@0 {
|
||||
compatible = "ti,omap-counter32k";
|
||||
reg = <0 0x20>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -277,12 +290,33 @@
|
||||
};
|
||||
};
|
||||
|
||||
timer1: timer@49018000 {
|
||||
compatible = "ti,omap2420-timer";
|
||||
reg = <0x49018000 0x400>;
|
||||
interrupts = <37>;
|
||||
ti,hwmods = "timer1";
|
||||
ti,timer-alwon;
|
||||
timer1_target: target-module@49018000 {
|
||||
compatible = "ti,sysc-omap2-timer", "ti,sysc";
|
||||
reg = <0x49018000 0x4>,
|
||||
<0x49018010 0x4>,
|
||||
<0x49018014 0x4>;
|
||||
reg-names = "rev", "sysc", "syss";
|
||||
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
|
||||
SYSC_OMAP2_EMUFREE |
|
||||
SYSC_OMAP2_ENAWAKEUP |
|
||||
SYSC_OMAP2_SOFTRESET |
|
||||
SYSC_OMAP2_AUTOIDLE)>;
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>;
|
||||
ti,syss-mask = <1>;
|
||||
clocks = <&gpt1_fck>, <&gpt1_ick>;
|
||||
clock-names = "fck", "ick";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x49018000 0x1000>;
|
||||
|
||||
timer1: timer@0 {
|
||||
compatible = "ti,omap2420-timer";
|
||||
reg = <0 0x400>;
|
||||
interrupts = <37>;
|
||||
ti,timer-alwon;
|
||||
};
|
||||
};
|
||||
|
||||
mcspi3: spi@480b8000 {
|
||||
@@ -321,5 +355,15 @@
|
||||
compatible = "ti,omap2430-i2c";
|
||||
};
|
||||
|
||||
/include/ "omap24xx-clocks.dtsi"
|
||||
/include/ "omap2430-clocks.dtsi"
|
||||
#include "omap24xx-clocks.dtsi"
|
||||
#include "omap2430-clocks.dtsi"
|
||||
|
||||
/* Preferred always-on timer for clockevent */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&gpt1_fck>;
|
||||
assigned-clock-parents = <&func_32k_ck>;
|
||||
};
|
||||
};
|
||||
|
@@ -304,6 +304,39 @@
|
||||
phys = <0 &hsusb2_phy>;
|
||||
};
|
||||
|
||||
/* Unusable as clocksource because of unreliable oscillator */
|
||||
&counter32k {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* Unusable as clockevent because if unreliable oscillator, allow to idle */
|
||||
&timer1_target {
|
||||
/delete-property/ti,no-reset-on-init;
|
||||
/delete-property/ti,no-idle;
|
||||
timer@0 {
|
||||
/delete-property/ti,timer-alwon;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred always-on timer for clocksource */
|
||||
&timer12_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
/* Always clocked by secure_32k_fck */
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred timer for clockevent */
|
||||
&timer2_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&gpt2_fck>;
|
||||
assigned-clock-parents = <&sys_ck>;
|
||||
};
|
||||
};
|
||||
|
||||
&twl_gpio {
|
||||
ti,use-leds;
|
||||
/* pullups: BIT(1) */
|
||||
|
@@ -14,3 +14,36 @@
|
||||
display2 = &tv0;
|
||||
};
|
||||
};
|
||||
|
||||
/* Unusable as clocksource because of unreliable oscillator */
|
||||
&counter32k {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
/* Unusable as clockevent because if unreliable oscillator, allow to idle */
|
||||
&timer1_target {
|
||||
/delete-property/ti,no-reset-on-init;
|
||||
/delete-property/ti,no-idle;
|
||||
timer@0 {
|
||||
/delete-property/ti,timer-alwon;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred always-on timer for clocksource */
|
||||
&timer12_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
/* Always clocked by secure_32k_fck */
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred timer for clockevent */
|
||||
&timer2_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&gpt2_fck>;
|
||||
assigned-clock-parents = <&sys_ck>;
|
||||
};
|
||||
};
|
||||
|
@@ -193,10 +193,23 @@
|
||||
};
|
||||
};
|
||||
|
||||
counter32k: counter@48320000 {
|
||||
compatible = "ti,omap-counter32k";
|
||||
reg = <0x48320000 0x20>;
|
||||
ti,hwmods = "counter_32k";
|
||||
target-module@48320000 {
|
||||
compatible = "ti,sysc-omap2", "ti,sysc";
|
||||
reg = <0x48320000 0x4>,
|
||||
<0x48320004 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>;
|
||||
clocks = <&wkup_32k_fck>, <&omap_32ksync_ick>;
|
||||
clock-names = "fck", "ick";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x48320000 0x1000>;
|
||||
|
||||
counter32k: counter@0 {
|
||||
compatible = "ti,omap-counter32k";
|
||||
reg = <0x0 0x20>;
|
||||
};
|
||||
};
|
||||
|
||||
intc: interrupt-controller@48200000 {
|
||||
@@ -637,19 +650,63 @@
|
||||
dma-names = "rx";
|
||||
};
|
||||
|
||||
timer1: timer@48318000 {
|
||||
compatible = "ti,omap3430-timer";
|
||||
reg = <0x48318000 0x400>;
|
||||
interrupts = <37>;
|
||||
ti,hwmods = "timer1";
|
||||
ti,timer-alwon;
|
||||
timer1_target: target-module@48318000 {
|
||||
compatible = "ti,sysc-omap2-timer", "ti,sysc";
|
||||
reg = <0x48318000 0x4>,
|
||||
<0x48318010 0x4>,
|
||||
<0x48318014 0x4>;
|
||||
reg-names = "rev", "sysc", "syss";
|
||||
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
|
||||
SYSC_OMAP2_EMUFREE |
|
||||
SYSC_OMAP2_ENAWAKEUP |
|
||||
SYSC_OMAP2_SOFTRESET |
|
||||
SYSC_OMAP2_AUTOIDLE)>;
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>;
|
||||
ti,syss-mask = <1>;
|
||||
clocks = <&gpt1_fck>, <&gpt1_ick>;
|
||||
clock-names = "fck", "ick";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x48318000 0x1000>;
|
||||
|
||||
timer1: timer@0 {
|
||||
compatible = "ti,omap3430-timer";
|
||||
reg = <0x0 0x80>;
|
||||
clocks = <&gpt1_fck>;
|
||||
clock-names = "fck";
|
||||
interrupts = <37>;
|
||||
ti,timer-alwon;
|
||||
};
|
||||
};
|
||||
|
||||
timer2: timer@49032000 {
|
||||
compatible = "ti,omap3430-timer";
|
||||
reg = <0x49032000 0x400>;
|
||||
interrupts = <38>;
|
||||
ti,hwmods = "timer2";
|
||||
timer2_target: target-module@49032000 {
|
||||
compatible = "ti,sysc-omap2-timer", "ti,sysc";
|
||||
reg = <0x49032000 0x4>,
|
||||
<0x49032010 0x4>,
|
||||
<0x49032014 0x4>;
|
||||
reg-names = "rev", "sysc", "syss";
|
||||
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
|
||||
SYSC_OMAP2_EMUFREE |
|
||||
SYSC_OMAP2_ENAWAKEUP |
|
||||
SYSC_OMAP2_SOFTRESET |
|
||||
SYSC_OMAP2_AUTOIDLE)>;
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>;
|
||||
ti,syss-mask = <1>;
|
||||
clocks = <&gpt2_fck>, <&gpt2_ick>;
|
||||
clock-names = "fck", "ick";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x49032000 0x1000>;
|
||||
|
||||
timer2: timer@0 {
|
||||
compatible = "ti,omap3430-timer";
|
||||
reg = <0 0x400>;
|
||||
interrupts = <38>;
|
||||
};
|
||||
};
|
||||
|
||||
timer3: timer@49034000 {
|
||||
@@ -723,13 +780,34 @@
|
||||
ti,timer-pwm;
|
||||
};
|
||||
|
||||
timer12: timer@48304000 {
|
||||
compatible = "ti,omap3430-timer";
|
||||
reg = <0x48304000 0x400>;
|
||||
interrupts = <95>;
|
||||
ti,hwmods = "timer12";
|
||||
ti,timer-alwon;
|
||||
ti,timer-secure;
|
||||
timer12_target: target-module@48304000 {
|
||||
compatible = "ti,sysc-omap2-timer", "ti,sysc";
|
||||
reg = <0x48304000 0x4>,
|
||||
<0x48304010 0x4>,
|
||||
<0x48304014 0x4>;
|
||||
reg-names = "rev", "sysc", "syss";
|
||||
ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
|
||||
SYSC_OMAP2_EMUFREE |
|
||||
SYSC_OMAP2_ENAWAKEUP |
|
||||
SYSC_OMAP2_SOFTRESET |
|
||||
SYSC_OMAP2_AUTOIDLE)>;
|
||||
ti,sysc-sidle = <SYSC_IDLE_FORCE>,
|
||||
<SYSC_IDLE_NO>,
|
||||
<SYSC_IDLE_SMART>;
|
||||
ti,syss-mask = <1>;
|
||||
clocks = <&gpt12_fck>, <&gpt12_ick>;
|
||||
clock-names = "fck", "ick";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
ranges = <0x0 0x48304000 0x1000>;
|
||||
|
||||
timer12: timer@0 {
|
||||
compatible = "ti,omap3430-timer";
|
||||
reg = <0 0x400>;
|
||||
interrupts = <95>;
|
||||
ti,timer-alwon;
|
||||
ti,timer-secure;
|
||||
};
|
||||
};
|
||||
|
||||
usbhstll: usbhstll@48062000 {
|
||||
@@ -886,4 +964,14 @@
|
||||
};
|
||||
};
|
||||
|
||||
/include/ "omap3xxx-clocks.dtsi"
|
||||
#include "omap3xxx-clocks.dtsi"
|
||||
|
||||
/* Preferred always-on timer for clockevent. Some boards must use dmtimer12 */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&gpt1_fck>;
|
||||
assigned-clock-parents = <&omap_32k_fck>;
|
||||
};
|
||||
};
|
||||
|
@@ -974,7 +974,6 @@
|
||||
|
||||
target-module@4000 { /* 0x4a304000, ap 17 24.0 */
|
||||
compatible = "ti,sysc-omap2", "ti,sysc";
|
||||
ti,hwmods = "counter_32k";
|
||||
reg = <0x4000 0x4>,
|
||||
<0x4004 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
@@ -1139,9 +1138,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
target-module@8000 { /* 0x4a318000, ap 9 1c.0 */
|
||||
timer1_target: target-module@8000 { /* 0x4a318000, ap 9 1c.0 */
|
||||
compatible = "ti,sysc-omap2-timer", "ti,sysc";
|
||||
ti,hwmods = "timer1";
|
||||
reg = <0x8000 0x4>,
|
||||
<0x8010 0x4>,
|
||||
<0x8014 0x4>;
|
||||
|
@@ -655,3 +655,13 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred always-on timer for clockevent */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&l4_wkup_clkctrl OMAP4_TIMER1_CLKCTRL 24>;
|
||||
assigned-clock-parents = <&sys_clkin_ck>;
|
||||
};
|
||||
};
|
||||
|
@@ -2150,7 +2150,6 @@
|
||||
|
||||
target-module@4000 { /* 0x4ae04000, ap 17 20.0 */
|
||||
compatible = "ti,sysc-omap2", "ti,sysc";
|
||||
ti,hwmods = "counter_32k";
|
||||
reg = <0x4000 0x4>,
|
||||
<0x4010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
@@ -2336,9 +2335,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
target-module@8000 { /* 0x4ae18000, ap 9 18.0 */
|
||||
timer1_target: target-module@8000 { /* 0x4ae18000, ap 9 18.0 */
|
||||
compatible = "ti,sysc-omap4-timer", "ti,sysc";
|
||||
ti,hwmods = "timer1";
|
||||
reg = <0x8000 0x4>,
|
||||
<0x8010 0x4>;
|
||||
reg-names = "rev", "sysc";
|
||||
|
@@ -581,3 +581,13 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Preferred always-on timer for clockevent */
|
||||
&timer1_target {
|
||||
ti,no-reset-on-init;
|
||||
ti,no-idle;
|
||||
timer@0 {
|
||||
assigned-clocks = <&wkupaon_clkctrl OMAP5_TIMER1_CLKCTRL 24>;
|
||||
assigned-clock-parents = <&sys_32k_ck>;
|
||||
};
|
||||
};
|
||||
|
Reference in New Issue
Block a user