Merge tag 'mkp-scsi-postmerge' of git://git.kernel.org/pub/scm/linux/kernel/git/mkp...
[linux-block.git] / Documentation / devicetree / bindings / timer / ingenic,tcu.txt
CommitLineData
2e8722a5
PC
1Ingenic JZ47xx SoCs Timer/Counter Unit devicetree bindings
2==========================================================
3
4For a description of the TCU hardware and drivers, have a look at
5Documentation/mips/ingenic-tcu.txt.
6
7Required properties:
8
9- compatible: Must be one of:
10 * ingenic,jz4740-tcu
11 * ingenic,jz4725b-tcu
12 * ingenic,jz4770-tcu
13 followed by "simple-mfd".
14- reg: Should be the offset/length value corresponding to the TCU registers
15- clocks: List of phandle & clock specifiers for clocks external to the TCU.
16 The "pclk", "rtc" and "ext" clocks should be provided. The "tcu" clock
17 should be provided if the SoC has it.
18- clock-names: List of name strings for the external clocks.
19- #clock-cells: Should be <1>;
20 Clock consumers specify this argument to identify a clock. The valid values
21 may be found in <dt-bindings/clock/ingenic,tcu.h>.
22- interrupt-controller : Identifies the node as an interrupt controller
23- #interrupt-cells : Specifies the number of cells needed to encode an
24 interrupt source. The value should be 1.
25- interrupts : Specifies the interrupt the controller is connected to.
26
27Optional properties:
28
29- ingenic,pwm-channels-mask: Bitmask of TCU channels reserved for PWM use.
30 Default value is 0xfc.
31
32
33Children nodes
34==========================================================
35
36
37PWM node:
38---------
39
40Required properties:
41
42- compatible: Must be one of:
43 * ingenic,jz4740-pwm
44 * ingenic,jz4725b-pwm
45- #pwm-cells: Should be 3. See ../pwm/pwm.txt for a description of the cell
46 format.
47- clocks: List of phandle & clock specifiers for the TCU clocks.
48- clock-names: List of name strings for the TCU clocks.
49
50
51Watchdog node:
52--------------
53
54Required properties:
55
56- compatible: Must be "ingenic,jz4740-watchdog"
57- clocks: phandle to the WDT clock
58- clock-names: should be "wdt"
59
60
61OS Timer node:
62---------
63
64Required properties:
65
66- compatible: Must be one of:
67 * ingenic,jz4725b-ost
68 * ingenic,jz4770-ost
69- clocks: phandle to the OST clock
70- clock-names: should be "ost"
71- interrupts : Specifies the interrupt the OST is connected to.
72
73
74Example
75==========================================================
76
77#include <dt-bindings/clock/jz4770-cgu.h>
78#include <dt-bindings/clock/ingenic,tcu.h>
79
80/ {
81 tcu: timer@10002000 {
82 compatible = "ingenic,jz4770-tcu", "simple-mfd";
83 reg = <0x10002000 0x1000>;
84 #address-cells = <1>;
85 #size-cells = <1>;
86 ranges = <0x0 0x10002000 0x1000>;
87
88 #clock-cells = <1>;
89
90 clocks = <&cgu JZ4770_CLK_RTC
91 &cgu JZ4770_CLK_EXT
92 &cgu JZ4770_CLK_PCLK>;
93 clock-names = "rtc", "ext", "pclk";
94
95 interrupt-controller;
96 #interrupt-cells = <1>;
97
98 interrupt-parent = <&intc>;
99 interrupts = <27 26 25>;
100
101 watchdog: watchdog@0 {
102 compatible = "ingenic,jz4740-watchdog";
103 reg = <0x0 0xc>;
104
105 clocks = <&tcu TCU_CLK_WDT>;
106 clock-names = "wdt";
107 };
108
109 pwm: pwm@40 {
110 compatible = "ingenic,jz4740-pwm";
111 reg = <0x40 0x80>;
112
113 #pwm-cells = <3>;
114
115 clocks = <&tcu TCU_CLK_TIMER0
116 &tcu TCU_CLK_TIMER1
117 &tcu TCU_CLK_TIMER2
118 &tcu TCU_CLK_TIMER3
119 &tcu TCU_CLK_TIMER4
120 &tcu TCU_CLK_TIMER5
121 &tcu TCU_CLK_TIMER6
122 &tcu TCU_CLK_TIMER7>;
123 clock-names = "timer0", "timer1", "timer2", "timer3",
124 "timer4", "timer5", "timer6", "timer7";
125 };
126
127 ost: timer@e0 {
128 compatible = "ingenic,jz4770-ost";
129 reg = <0xe0 0x20>;
130
131 clocks = <&tcu TCU_CLK_OST>;
132 clock-names = "ost";
133
134 interrupts = <15>;
135 };
136 };
137};