From: Paul Cercueil <paul@crapouillou.net>
To: Daniel Lezcano <daniel.lezcano@linaro.org>,
Thomas Gleixner <tglx@linutronix.de>,
Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>
Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
od@zcrc.me, 周琰杰 <zhouyanjie@wanyeetech.com>
Subject: Re: [PATCH v2] dt-bindings: timer: Convert ingenic,tcu.txt to YAML
Date: Tue, 03 Mar 2020 11:55:43 -0300 [thread overview]
Message-ID: <1583247343.3.1@crapouillou.net> (raw)
In-Reply-To: <20200302200551.19845-1-paul@crapouillou.net>
@Rob:
Le lun., mars 2, 2020 at 17:05, Paul Cercueil <paul@crapouillou.net> a
écrit :
> Convert the ingenic,tcu.txt file to YAML.
>
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>
> @Daniel:
>
> As for v1, if Rob acks it, please take this patch to your tree, since
> the .txt file was modified there. Going through your tree would avoid
> a
> merge conflict.
>
> Thanks,
> -Paul
>
> Changelog:
> v2: - Add missing 'reg' properties to child nodes
> - Removed 'additionalProperties: false' on child objects which
> included external YAML
> - Add description of interrupts
> - Fix pattern regex
> - Add missing ingenic,jz4780-tcu compatible string (which
> requires
> fallback to ingenic,jz4770-tcu)
> - Add 'select' to fix matching of schema
>
> .../devicetree/bindings/timer/ingenic,tcu.txt | 138 ---------
> .../bindings/timer/ingenic,tcu.yaml | 269
> ++++++++++++++++++
> 2 files changed, 269 insertions(+), 138 deletions(-)
> delete mode 100644
> Documentation/devicetree/bindings/timer/ingenic,tcu.txt
> create mode 100644
> Documentation/devicetree/bindings/timer/ingenic,tcu.yaml
>
> 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..14b68c87319f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/timer/ingenic,tcu.yaml
> @@ -0,0 +1,269 @@
> +# 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
> +
> + 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
Actually this prevents the 'assigned-clock' properties from being
added. I was expecting these to be always accepted, akin to the
'pinctrl-*' properties.
Should I add entries for these here?
-Paul
> +
> +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>;
> + };
> + };
> --
> 2.25.1
>
next prev parent reply other threads:[~2020-03-03 14:56 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-02 20:05 [PATCH v2] dt-bindings: timer: Convert ingenic,tcu.txt to YAML Paul Cercueil
2020-03-03 14:55 ` Paul Cercueil [this message]
2020-03-10 20:13 ` Rob Herring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1583247343.3.1@crapouillou.net \
--to=paul@crapouillou.net \
--cc=daniel.lezcano@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=od@zcrc.me \
--cc=robh+dt@kernel.org \
--cc=tglx@linutronix.de \
--cc=zhouyanjie@wanyeetech.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.