diff mbox series

[01/13] dt-bindings: timer: Convert ingenic,tcu.txt to YAML

Message ID 20200413152633.198301-1-paul@crapouillou.net
State Accepted, archived
Headers show
Series [01/13] dt-bindings: timer: Convert ingenic,tcu.txt to YAML | expand

Checks

Context Check Description
robh/checkpatch warning "total: 0 errors, 2 warnings, 281 lines checked"

Commit Message

Paul Cercueil April 13, 2020, 3:26 p.m. UTC
Convert the ingenic,tcu.txt file to YAML.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---

Notes:
    This one patch was sent as standalone before, so it's technically
    a V2. Support for 'assigned-clocks', 'assigned-clock-parents',
    'assigned-clock-rates' was added.

 .../devicetree/bindings/timer/ingenic,tcu.txt | 138 ---------
 .../bindings/timer/ingenic,tcu.yaml           | 281 ++++++++++++++++++
 2 files changed, 281 insertions(+), 138 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/timer/ingenic,tcu.txt
 create mode 100644 Documentation/devicetree/bindings/timer/ingenic,tcu.yaml

Comments

Rob Herring April 20, 2020, 8:47 p.m. UTC | #1
On Mon, 13 Apr 2020 17:26:21 +0200, Paul Cercueil wrote:
> Convert the ingenic,tcu.txt file to YAML.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
> 
> Notes:
>     This one patch was sent as standalone before, so it's technically
>     a V2. Support for 'assigned-clocks', 'assigned-clock-parents',
>     'assigned-clock-rates' was added.
> 
>  .../devicetree/bindings/timer/ingenic,tcu.txt | 138 ---------
>  .../bindings/timer/ingenic,tcu.yaml           | 281 ++++++++++++++++++
>  2 files changed, 281 insertions(+), 138 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/timer/ingenic,tcu.txt
>  create mode 100644 Documentation/devicetree/bindings/timer/ingenic,tcu.yaml
> 

Applied, thanks.

Rob
Thomas Bogendoerfer April 29, 2020, 9:04 p.m. UTC | #2
On Mon, Apr 13, 2020 at 05:26:27PM +0200, Paul Cercueil wrote:
> If N fields of X cells should be provided, then that's what the
> devicetree should represent, instead of having one single field of
> (N*X) cells.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  arch/mips/boot/dts/ingenic/jz4740.dtsi | 19 +++++++++----------
>  arch/mips/boot/dts/ingenic/jz4770.dtsi | 12 +++++-------
>  arch/mips/boot/dts/ingenic/jz4780.dtsi | 24 +++++++++++-------------
>  arch/mips/boot/dts/ingenic/x1000.dtsi  |  9 ++++-----
>  4 files changed, 29 insertions(+), 35 deletions(-)

applied to mips-next. Please check if my resolution of the conflict
in arch/mips/boot/dts/ingenic/jz4780.dtsi is correct.

Thomas.
Thomas Bogendoerfer April 29, 2020, 9:04 p.m. UTC | #3
On Mon, Apr 13, 2020 at 05:26:28PM +0200, Paul Cercueil wrote:
> Add the TCU nodes to the JZ4780, JZ4770 and JZ4740 devicetree files.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  arch/mips/boot/dts/ingenic/jz4740.dtsi | 14 +++++++++++
>  arch/mips/boot/dts/ingenic/jz4770.dtsi | 34 ++++++++++++++++++++++++++
>  arch/mips/boot/dts/ingenic/jz4780.dtsi | 24 ++++++++++++++++++
>  3 files changed, 72 insertions(+)

applied to mips-next.

Thomas.
Thomas Bogendoerfer April 29, 2020, 9:05 p.m. UTC | #4
On Mon, Apr 13, 2020 at 05:26:29PM +0200, Paul Cercueil wrote:
> Add support for the RTC, AIC, CODEC, MMC 0/1/2, ADC, GPU, LCD,
> USB OTG, USB PHY controllers.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  arch/mips/boot/dts/ingenic/jz4770.dtsi | 177 ++++++++++++++++++++++++-
>  1 file changed, 170 insertions(+), 7 deletions(-)

applied to mips-next.

Thomas.
Thomas Bogendoerfer April 29, 2020, 9:05 p.m. UTC | #5
On Mon, Apr 13, 2020 at 05:26:30PM +0200, Paul Cercueil wrote:
> Add support for the face buttons, the ACT8600 PMUC, the LCD panel
> with backlight, the rumble, internal/external SD readers, and other
> things.
> 
> Note that the otg-phy node was dropped in the process as it was neither
> useful nor used, and was inside a non-compliant board "bus".
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  arch/mips/boot/dts/ingenic/gcw0.dts | 499 +++++++++++++++++++++++++++-
>  1 file changed, 484 insertions(+), 15 deletions(-)

applied to mips-next.

Thomas.
Thomas Bogendoerfer April 29, 2020, 9:05 p.m. UTC | #6
On Mon, Apr 13, 2020 at 05:26:31PM +0200, Paul Cercueil wrote:
> The OST driver provides a clocksource and sched_clock that are much more
> accurate than the default ones.
> 
> The PWM driver allows to use the PWM pins on the external header of the
> board.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  arch/mips/configs/ci20_defconfig | 62 +++++++++++++++++---------------
>  1 file changed, 34 insertions(+), 28 deletions(-)

applied to mips-next.

Thomas.
Thomas Bogendoerfer April 29, 2020, 9:06 p.m. UTC | #7
On Mon, Apr 13, 2020 at 05:26:32PM +0200, Paul Cercueil wrote:
> Enable support for the new hardware that was added in the devicetree.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  arch/mips/configs/gcw0_defconfig | 131 ++++++++++++++++++++++++++++++-
>  1 file changed, 128 insertions(+), 3 deletions(-)

applied to mips-next.

Thomas.
Thomas Bogendoerfer April 29, 2020, 9:06 p.m. UTC | #8
On Mon, Apr 13, 2020 at 05:26:33PM +0200, Paul Cercueil wrote:
> Drop a bootload of 10-years-old dirty code, that is not used anymore, as
> it has been replaced with clean code over the ages.
> 
> Merge the very few bits left inside setup.c, so that everything is clean
> and tidy now.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  arch/mips/include/asm/mach-jz4740/base.h  |  27 -----
>  arch/mips/include/asm/mach-jz4740/dma.h   |  23 ----
>  arch/mips/include/asm/mach-jz4740/irq.h   |  45 +-------
>  arch/mips/include/asm/mach-jz4740/timer.h | 126 ----------------------
>  arch/mips/jz4740/Makefile                 |   7 +-
>  arch/mips/jz4740/pm.c                     |  34 ------
>  arch/mips/jz4740/prom.c                   |  19 ----
>  arch/mips/jz4740/reset.c                  |  24 -----
>  arch/mips/jz4740/reset.h                  |   7 --
>  arch/mips/jz4740/setup.c                  |  63 ++++++++++-
>  arch/mips/jz4740/time.c                   |  17 ---
>  arch/mips/jz4740/timer.c                  |  42 --------
>  12 files changed, 61 insertions(+), 373 deletions(-)
>  delete mode 100644 arch/mips/include/asm/mach-jz4740/base.h
>  delete mode 100644 arch/mips/include/asm/mach-jz4740/dma.h
>  delete mode 100644 arch/mips/include/asm/mach-jz4740/timer.h
>  delete mode 100644 arch/mips/jz4740/pm.c
>  delete mode 100644 arch/mips/jz4740/prom.c
>  delete mode 100644 arch/mips/jz4740/reset.c
>  delete mode 100644 arch/mips/jz4740/reset.h
>  delete mode 100644 arch/mips/jz4740/time.c
>  delete mode 100644 arch/mips/jz4740/timer.c

applied to mips-next.

Thomas.
Paul Cercueil April 30, 2020, 12:17 p.m. UTC | #9
Hi Thomas,

Le mer. 29 avril 2020 à 23:04, Thomas Bogendoerfer 
<tsbogend@alpha.franken.de> a écrit :
> On Mon, Apr 13, 2020 at 05:26:27PM +0200, Paul Cercueil wrote:
>>  If N fields of X cells should be provided, then that's what the
>>  devicetree should represent, instead of having one single field of
>>  (N*X) cells.
>> 
>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>  ---
>>   arch/mips/boot/dts/ingenic/jz4740.dtsi | 19 +++++++++----------
>>   arch/mips/boot/dts/ingenic/jz4770.dtsi | 12 +++++-------
>>   arch/mips/boot/dts/ingenic/jz4780.dtsi | 24 
>> +++++++++++-------------
>>   arch/mips/boot/dts/ingenic/x1000.dtsi  |  9 ++++-----
>>   4 files changed, 29 insertions(+), 35 deletions(-)
> 
> applied to mips-next. Please check if my resolution of the conflict
> in arch/mips/boot/dts/ingenic/jz4780.dtsi is correct.

Looks good, thanks.

-Paul

> Thomas.
> 
> --
> Crap can work. Given enough thrust pigs will fly, but it's not 
> necessarily a
> good idea.                                                [ RFC1925, 
> 2.3 ]
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/timer/ingenic,tcu.txt b/Documentation/devicetree/bindings/timer/ingenic,tcu.txt
deleted file mode 100644
index 91f704951845..000000000000
--- a/Documentation/devicetree/bindings/timer/ingenic,tcu.txt
+++ /dev/null
@@ -1,138 +0,0 @@ 
-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.rst.
-
-Required properties:
-
-- compatible: Must be one of:
-  * ingenic,jz4740-tcu
-  * ingenic,jz4725b-tcu
-  * ingenic,jz4770-tcu
-  * ingenic,x1000-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>;
-		};
-	};
-};
diff --git a/Documentation/devicetree/bindings/timer/ingenic,tcu.yaml b/Documentation/devicetree/bindings/timer/ingenic,tcu.yaml
new file mode 100644
index 000000000000..e21e9972ed65
--- /dev/null
+++ b/Documentation/devicetree/bindings/timer/ingenic,tcu.yaml
@@ -0,0 +1,281 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/timer/ingenic,tcu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ingenic SoCs Timer/Counter Unit (TCU) devicetree bindings
+
+description: |
+  For a description of the TCU hardware and drivers, have a look at
+  Documentation/mips/ingenic-tcu.rst.
+
+maintainers:
+  - Paul Cercueil <paul@crapouillou.net>
+
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - ingenic,jz4740-tcu
+          - ingenic,jz4725b-tcu
+          - ingenic,jz4770-tcu
+          - ingenic,jz4780-tcu
+          - ingenic,x1000-tcu
+  required:
+    - compatible
+
+properties:
+  $nodename:
+    pattern: "^timer@[0-9a-f]+$"
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  "#clock-cells":
+    const: 1
+
+  "#interrupt-cells":
+    const: 1
+
+  interrupt-controller: true
+
+  ranges: true
+
+  compatible:
+    oneOf:
+      - items:
+        - enum:
+          - ingenic,jz4740-tcu
+          - ingenic,jz4725b-tcu
+          - ingenic,jz4770-tcu
+          - ingenic,x1000-tcu
+        - const: simple-mfd
+      - items:
+        - const: ingenic,jz4780-tcu
+        - const: ingenic,jz4770-tcu
+        - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: RTC clock
+      - description: EXT clock
+      - description: PCLK clock
+      - description: TCU clock
+    minItems: 3
+
+  clock-names:
+    items:
+      - const: rtc
+      - const: ext
+      - const: pclk
+      - const: tcu
+    minItems: 3
+
+  interrupts:
+    items:
+      - description: TCU0 interrupt
+      - description: TCU1 interrupt
+      - description: TCU2 interrupt
+    minItems: 1
+
+  assigned-clocks:
+    minItems: 1
+    maxItems: 8
+
+  assigned-clock-parents:
+    minItems: 1
+    maxItems: 8
+
+  assigned-clock-rates:
+    minItems: 1
+    maxItems: 8
+
+  ingenic,pwm-channels-mask:
+    description: Bitmask of TCU channels reserved for PWM use.
+    allOf:
+      - $ref: /schemas/types.yaml#/definitions/uint32
+      - minimum: 0x00
+      - maximum: 0xff
+      - default: 0xfc
+
+patternProperties:
+  "^watchdog@[a-f0-9]+$":
+    type: object
+    allOf: [ $ref: ../watchdog/watchdog.yaml# ]
+    properties:
+      compatible:
+        oneOf:
+          - enum:
+            - ingenic,jz4740-watchdog
+            - ingenic,jz4780-watchdog
+          - items:
+            - const: ingenic,jz4770-watchdog
+            - const: ingenic,jz4740-watchdog
+
+      reg:
+        maxItems: 1
+
+      clocks:
+        maxItems: 1
+
+      clock-names:
+        const: wdt
+
+    required:
+      - compatible
+      - reg
+      - clocks
+      - clock-names
+
+  "^pwm@[a-f0-9]+$":
+    type: object
+    allOf: [ $ref: ../pwm/pwm.yaml# ]
+    properties:
+      compatible:
+        oneOf:
+          - enum:
+            - ingenic,jz4740-pwm
+          - items:
+            - enum:
+              - ingenic,jz4770-pwm
+              - ingenic,jz4780-pwm
+            - const: ingenic,jz4740-pwm
+
+      reg:
+        maxItems: 1
+
+      clocks:
+        minItems: 6
+        maxItems: 8
+
+      clock-names:
+        items:
+          - const: timer0
+          - const: timer1
+          - const: timer2
+          - const: timer3
+          - const: timer4
+          - const: timer5
+          - const: timer6
+          - const: timer7
+        minItems: 6
+
+    required:
+      - compatible
+      - reg
+      - clocks
+      - clock-names
+
+  "^timer@[a-f0-9]+$":
+    type: object
+    properties:
+      compatible:
+        oneOf:
+          - enum:
+            - ingenic,jz4725b-ost
+            - ingenic,jz4770-ost
+          - items:
+            - const: ingenic,jz4780-ost
+            - const: ingenic,jz4770-ost
+
+      reg:
+        maxItems: 1
+
+      clocks:
+        maxItems: 1
+
+      clock-names:
+        const: ost
+
+      interrupts:
+        maxItems: 1
+
+    required:
+      - compatible
+      - reg
+      - clocks
+      - clock-names
+      - interrupts
+
+    additionalProperties: false
+
+required:
+  - "#clock-cells"
+  - "#interrupt-cells"
+  - interrupt-controller
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #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,jz4770-watchdog", "ingenic,jz4740-watchdog";
+        reg = <0x0 0xc>;
+
+        clocks = <&tcu TCU_CLK_WDT>;
+        clock-names = "wdt";
+      };
+
+      pwm: pwm@40 {
+        compatible = "ingenic,jz4770-pwm", "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>;
+      };
+    };