Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: tegra: define DT bindings for and instantiate timer

The Tegra timer provides a number of 29-bit timer channels, a single
32-bit free running counter, and in the Tegra30 variant, 5 watchdog modules.
The first two channels may also trigger a legacy watchdog reset.

Define a DT binding for this HW module, and add the module into the Tegra
device tree files.

Signed-off-by: Stephen Warren <swarren@nvidia.com>

+64
+21
Documentation/devicetree/bindings/timer/nvidia,tegra20-timer.txt
··· 1 + NVIDIA Tegra20 timer 2 + 3 + The Tegra20 timer provides four 29-bit timer channels and a single 32-bit free 4 + running counter. The first two channels may also trigger a watchdog reset. 5 + 6 + Required properties: 7 + 8 + - compatible : should be "nvidia,tegra20-timer". 9 + - reg : Specifies base physical address and size of the registers. 10 + - interrupts : A list of 4 interrupts; one per timer channel. 11 + 12 + Example: 13 + 14 + timer { 15 + compatible = "nvidia,tegra20-timer"; 16 + reg = <0x60005000 0x60>; 17 + interrupts = <0 0 0x04 18 + 0 1 0x04 19 + 0 41 0x04 20 + 0 42 0x04>; 21 + };
+23
Documentation/devicetree/bindings/timer/nvidia,tegra30-timer.txt
··· 1 + NVIDIA Tegra30 timer 2 + 3 + The Tegra30 timer provides ten 29-bit timer channels, a single 32-bit free 4 + running counter, and 5 watchdog modules. The first two channels may also 5 + trigger a legacy watchdog reset. 6 + 7 + Required properties: 8 + 9 + - compatible : should be "nvidia,tegra30-timer", "nvidia,tegra20-timer". 10 + - reg : Specifies base physical address and size of the registers. 11 + - interrupts : A list of 6 interrupts; one per each of timer channels 1 12 + through 5, and one for the shared interrupt for the remaining channels. 13 + 14 + timer { 15 + compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer"; 16 + reg = <0x60005000 0x400>; 17 + interrupts = <0 0 0x04 18 + 0 1 0x04 19 + 0 41 0x04 20 + 0 42 0x04 21 + 0 121 0x04 22 + 0 122 0x04>; 23 + };
+9
arch/arm/boot/dts/tegra20.dtsi
··· 108 108 #interrupt-cells = <3>; 109 109 }; 110 110 111 + timer@60005000 { 112 + compatible = "nvidia,tegra20-timer"; 113 + reg = <0x60005000 0x60>; 114 + interrupts = <0 0 0x04 115 + 0 1 0x04 116 + 0 41 0x04 117 + 0 42 0x04>; 118 + }; 119 + 111 120 apbdma: dma { 112 121 compatible = "nvidia,tegra20-apbdma"; 113 122 reg = <0x6000a000 0x1200>;
+11
arch/arm/boot/dts/tegra30.dtsi
··· 108 108 #interrupt-cells = <3>; 109 109 }; 110 110 111 + timer@60005000 { 112 + compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer"; 113 + reg = <0x60005000 0x400>; 114 + interrupts = <0 0 0x04 115 + 0 1 0x04 116 + 0 41 0x04 117 + 0 42 0x04 118 + 0 121 0x04 119 + 0 122 0x04>; 120 + }; 121 + 111 122 apbdma: dma { 112 123 compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma"; 113 124 reg = <0x6000a000 0x1400>;