| 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.yaml 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>; |
| }; |
| }; |
| }; |