138 lines
3.3 KiB
Plaintext
138 lines
3.3 KiB
Plaintext
Ingenic JZ47xx SoCs Timer/Counter Unit devicetree bindings
|
|
==========================================================
|
|
|
|
For a description of the TCU hardware and drivers, have a look at
|
|
Documentation/mips/ingenic-tcu.txt.
|
|
|
|
Required properties:
|
|
|
|
- compatible: Must be one of:
|
|
* ingenic,jz4740-tcu
|
|
* ingenic,jz4725b-tcu
|
|
* ingenic,jz4770-tcu
|
|
followed by "simple-mfd".
|
|
- reg: Should be the offset/length value corresponding to the TCU registers
|
|
- clocks: List of phandle & clock specifiers for clocks external to the TCU.
|
|
The "pclk", "rtc" and "ext" clocks should be provided. The "tcu" clock
|
|
should be provided if the SoC has it.
|
|
- clock-names: List of name strings for the external clocks.
|
|
- #clock-cells: Should be <1>;
|
|
Clock consumers specify this argument to identify a clock. The valid values
|
|
may be found in <dt-bindings/clock/ingenic,tcu.h>.
|
|
- interrupt-controller : Identifies the node as an interrupt controller
|
|
- #interrupt-cells : Specifies the number of cells needed to encode an
|
|
interrupt source. The value should be 1.
|
|
- interrupts : Specifies the interrupt the controller is connected to.
|
|
|
|
Optional properties:
|
|
|
|
- ingenic,pwm-channels-mask: Bitmask of TCU channels reserved for PWM use.
|
|
Default value is 0xfc.
|
|
|
|
|
|
Children nodes
|
|
==========================================================
|
|
|
|
|
|
PWM node:
|
|
---------
|
|
|
|
Required properties:
|
|
|
|
- compatible: Must be one of:
|
|
* ingenic,jz4740-pwm
|
|
* ingenic,jz4725b-pwm
|
|
- #pwm-cells: Should be 3. See ../pwm/pwm.txt for a description of the cell
|
|
format.
|
|
- clocks: List of phandle & clock specifiers for the TCU clocks.
|
|
- clock-names: List of name strings for the TCU clocks.
|
|
|
|
|
|
Watchdog node:
|
|
--------------
|
|
|
|
Required properties:
|
|
|
|
- compatible: Must be "ingenic,jz4740-watchdog"
|
|
- clocks: phandle to the WDT clock
|
|
- clock-names: should be "wdt"
|
|
|
|
|
|
OS Timer node:
|
|
---------
|
|
|
|
Required properties:
|
|
|
|
- compatible: Must be one of:
|
|
* ingenic,jz4725b-ost
|
|
* ingenic,jz4770-ost
|
|
- clocks: phandle to the OST clock
|
|
- clock-names: should be "ost"
|
|
- interrupts : Specifies the interrupt the OST is connected to.
|
|
|
|
|
|
Example
|
|
==========================================================
|
|
|
|
#include <dt-bindings/clock/jz4770-cgu.h>
|
|
#include <dt-bindings/clock/ingenic,tcu.h>
|
|
|
|
/ {
|
|
tcu: timer@10002000 {
|
|
compatible = "ingenic,jz4770-tcu", "simple-mfd";
|
|
reg = <0x10002000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0x0 0x10002000 0x1000>;
|
|
|
|
#clock-cells = <1>;
|
|
|
|
clocks = <&cgu JZ4770_CLK_RTC
|
|
&cgu JZ4770_CLK_EXT
|
|
&cgu JZ4770_CLK_PCLK>;
|
|
clock-names = "rtc", "ext", "pclk";
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <27 26 25>;
|
|
|
|
watchdog: watchdog@0 {
|
|
compatible = "ingenic,jz4740-watchdog";
|
|
reg = <0x0 0xc>;
|
|
|
|
clocks = <&tcu TCU_CLK_WDT>;
|
|
clock-names = "wdt";
|
|
};
|
|
|
|
pwm: pwm@40 {
|
|
compatible = "ingenic,jz4740-pwm";
|
|
reg = <0x40 0x80>;
|
|
|
|
#pwm-cells = <3>;
|
|
|
|
clocks = <&tcu TCU_CLK_TIMER0
|
|
&tcu TCU_CLK_TIMER1
|
|
&tcu TCU_CLK_TIMER2
|
|
&tcu TCU_CLK_TIMER3
|
|
&tcu TCU_CLK_TIMER4
|
|
&tcu TCU_CLK_TIMER5
|
|
&tcu TCU_CLK_TIMER6
|
|
&tcu TCU_CLK_TIMER7>;
|
|
clock-names = "timer0", "timer1", "timer2", "timer3",
|
|
"timer4", "timer5", "timer6", "timer7";
|
|
};
|
|
|
|
ost: timer@e0 {
|
|
compatible = "ingenic,jz4770-ost";
|
|
reg = <0xe0 0x20>;
|
|
|
|
clocks = <&tcu TCU_CLK_OST>;
|
|
clock-names = "ost";
|
|
|
|
interrupts = <15>;
|
|
};
|
|
};
|
|
};
|