Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 75b7329a authored by Paul Burton's avatar Paul Burton
Browse files

Merge branch 'ingenic-tcu-v5.4' into mips-next



Merge the Ingenic TCU patchset from the ingenic-tcu-v5.4 branch which
was created to enable follow-on changes in other subsystems.

Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
parents 6393e606 abc55228
Loading
Loading
Loading
Loading
+0 −22
Original line number Diff line number Diff line
Ingenic JZ47xx PWM Controller
=============================

Required properties:
- compatible: Should be "ingenic,jz4740-pwm"
- #pwm-cells: Should be 3. See pwm.txt in this directory for a description
  of the cells format.
- clocks : phandle to the external clock.
- clock-names : Should be "ext".


Example:

	pwm: pwm@10002000 {
		compatible = "ingenic,jz4740-pwm";
		reg = <0x10002000 0x1000>;

		#pwm-cells = <3>;

		clocks = <&ext>;
		clock-names = "ext";
	};
+137 −0
Original line number Diff line number Diff line
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>;
		};
	};
};
+0 −17
Original line number Diff line number Diff line
Ingenic Watchdog Timer (WDT) Controller for JZ4740 & JZ4780

Required properties:
compatible: "ingenic,jz4740-watchdog" or "ingenic,jz4780-watchdog"
reg: Register address and length for watchdog registers
clocks: phandle to the RTC clock
clock-names: should be "rtc"

Example:

watchdog: jz4740-watchdog@10002000 {
	compatible = "ingenic,jz4740-watchdog";
	reg = <0x10002000 0x10>;

	clocks = <&cgu JZ4740_CLK_RTC>;
	clock-names = "rtc";
};
+1 −0
Original line number Diff line number Diff line
@@ -143,6 +143,7 @@ implementation.
   arm64/index
   ia64/index
   m68k/index
   mips/index
   riscv/index
   s390/index
   sh/index
+11 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

===========================
MIPS-specific Documentation
===========================

.. toctree::
   :maxdepth: 1
   :numbered:

   ingenic-tcu
Loading