From: Rob Herring <robh@kernel.org>
To: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Nishanth Menon <nm@ti.com>,
devicetree@vger.kernel.org, Lokesh Vutla <lokeshvutla@ti.com>,
netdev@vger.kernel.org,
Richard Cochran <richardcochran@gmail.com>,
Sekhar Nori <nsekhar@ti.com>,
linux-kernel@vger.kernel.org, Tero Kristo <t-kristo@ti.com>,
Murali Karicheri <m-karicheri2@ti.com>,
"David S. Miller" <davem@davemloft.net>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH net-next 1/7] dt-binding: ti: am65x: document common platform time sync cpts module
Date: Mon, 4 May 2020 23:04:19 -0500 [thread overview]
Message-ID: <20200505040419.GA8509@bogus> (raw)
In-Reply-To: <20200501205011.14899-2-grygorii.strashko@ti.com>
On Fri, May 01, 2020 at 11:50:05PM +0300, Grygorii Strashko wrote:
> Document device tree bindings for TI AM654/J721E SoC The Common Platform
> Time Sync (CPTS) module. The CPTS module is used to facilitate host control
> of time sync operations. Main features of CPTS module are:
> - selection of multiple external clock sources
> - 64-bit timestamp mode in ns with ppm and nudge adjustment.
> - control of time sync events via interrupt or polling
> - hardware timestamp of ext. events (HWx_TS_PUSH)
> - periodic generator function outputs (TS_GENFx)
> - PPS in combination with timesync router
> - Depending on integration it enables compliance with the IEEE 1588-2008
> standard for a precision clock synchronization protocol, Ethernet Enhanced
> Scheduled Traffic Operations (CPTS_ESTFn) and PCIe Subsystem Precision Time
> Measurement (PTM).
>
> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
> ---
> .../bindings/net/ti,k3-am654-cpsw-nuss.yaml | 7 +
> .../bindings/net/ti,k3-am654-cpts.yaml | 152 ++++++++++++++++++
> 2 files changed, 159 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml b/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
> index 78bf511e2892..0f3fde45e200 100644
> --- a/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
> +++ b/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
> @@ -144,6 +144,13 @@ patternProperties:
> description:
> CPSW MDIO bus.
>
> + "^cpts$":
Fixed strings go under 'properties'.
> + type: object
> + allOf:
> + - $ref: "ti,am654-cpts.yaml#"
> + description:
> + CPSW Common Platform Time Sync (CPTS) module.
> +
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml b/Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml
> new file mode 100644
> index 000000000000..1b535d41e5c6
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml
> @@ -0,0 +1,152 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/ti,am654-cpts.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: The TI AM654x/J721E Common Platform Time Sync (CPTS) module Device Tree Bindings
> +
> +maintainers:
> + - Grygorii Strashko <grygorii.strashko@ti.com>
> + - Sekhar Nori <nsekhar@ti.com>
> +
> +description: |+
> + The TI AM654x/J721E CPTS module is used to facilitate host control of time
> + sync operations.
> + Main features of CPTS module are
> + - selection of multiple external clock sources
> + - Software control of time sync events via interrupt or polling
> + - 64-bit timestamp mode in ns with PPM and nudge adjustment.
> + - hardware timestamp push inputs (HWx_TS_PUSH)
> + - timestamp counter compare output (TS_COMP)
> + - timestamp counter bit output (TS_SYNC)
> + - periodic Generator function outputs (TS_GENFx)
> + - Ethernet Enhanced Scheduled Traffic Operations (CPTS_ESTFn) (TSN)
> + - external hardware timestamp push inputs (HWx_TS_PUSH) timestamping
> +
> + Depending on integration it enables compliance with the IEEE 1588-2008
> + standard for a precision clock synchronization protocol, Ethernet Enhanced
> + Scheduled Traffic Operations (CPTS_ESTFn) and PCIe Subsystem Precision Time
> + Measurement (PTM).
> +
> + TI AM654x/J721E SoCs has several similar CPTS modules integrated into the
> + different parts of the system which could be synchronized with each other
> + - Main CPTS
> + - MCU CPSW CPTS with IEEE 1588-2008 support
> + - PCIe subsystem CPTS for PTM support
> +
> + Depending on CPTS module integration and when CPTS is integral part of
> + another module (MCU CPSW for example) "compatible" and "reg" can
> + be omitted - parent module is fully responsible for CPTS enabling and
> + configuration.
That's fine, but you should still have compatible and reg.
> +
> +properties:
> + $nodename:
> + pattern: "^cpts(@.*|-[0-9a-f])*$"
> +
> + compatible:
> + oneOf:
> + - const: ti,am65-cpts
> + - const: ti,j721e-cpts
> +
> + reg:
> + maxItems: 1
> + description:
> + The physical base address and size of CPTS IO range
Wrong indentation.
> +
> + reg-names:
> + items:
> + - const: cpts
Don't really need *-names when there's only one and you haven't picked
very meaningful names.
> +
> + clocks:
> + description: CPTS reference clock
> +
> + clock-names:
> + items:
> + - const: cpts
> +
> + interrupts-extended:
Use 'interrupts' here, the tooling will fixup things to allow both.
> + items:
> + - description: CPTS events interrupt
> +
> + interrupt-names:
> + items:
> + - const: "cpts"
Don't need quotes.
> +
> + ti,cpts-ext-ts-inputs:
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + maximum: 8
> + description:
> + Number of hardware timestamp push inputs (HWx_TS_PUSH)
Wrong indentation.
> +
> + ti,cpts-periodic-outputs:
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + maximum: 8
> + description:
> + Number of timestamp Generator function outputs (TS_GENFx)
Wrong indentation.
> +
> + refclk-mux:
> + type: object
> + description: CPTS reference clock multiplexer clock
> + properties:
> + '#clock-cells':
> + const: 0
> +
> + clocks:
> + maxItems: 8
> +
> + assigned-clocks:
> + maxItems: 1
> +
> + assigned-clocks-parents:
> + maxItems: 1
> +
> + required:
> + - clocks
> +
> +required:
> + - clocks
> + - clock-names
> + - interrupts-extended
> + - interrupt-names
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + cpts@310d0000 {
> + compatible = "ti,am65-cpts";
> + reg = <0x0 0x310d0000 0x0 0x400>;
> + reg-names = "cpts";
> + clocks = <&main_cpts_mux>;
> + clock-names = "cpts";
> + interrupts-extended = <&k3_irq 163 0 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "cpts";
> + ti,cpts-periodic-outputs = <6>;
> + ti,cpts-ext-ts-inputs = <8>;
> +
> + main_cpts_mux: refclk-mux {
> + #clock-cells = <0>;
> + clocks = <&k3_clks 118 5>, <&k3_clks 118 11>,
> + <&k3_clks 157 91>, <&k3_clks 157 77>,
> + <&k3_clks 157 102>, <&k3_clks 157 80>,
> + <&k3_clks 120 3>, <&k3_clks 121 3>;
> + assigned-clocks = <&main_cpts_mux>;
> + assigned-clock-parents = <&k3_clks 118 11>;
> + };
> + };
> + - |
> +
> + cpts {
> + clocks = <&k3_clks 18 2>;
> + clock-names = "cpts";
> + interrupts-extended = <&gic500 GIC_SPI 858 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "cpts";
> + ti,cpts-ext-ts-inputs = <4>;
> + ti,cpts-periodic-outputs = <2>;
How is this example accessed?
> + };
> --
> 2.17.1
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Richard Cochran <richardcochran@gmail.com>,
Murali Karicheri <m-karicheri2@ti.com>,
"David S. Miller" <davem@davemloft.net>,
Tero Kristo <t-kristo@ti.com>, Lokesh Vutla <lokeshvutla@ti.com>,
netdev@vger.kernel.org, Sekhar Nori <nsekhar@ti.com>,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, Nishanth Menon <nm@ti.com>
Subject: Re: [PATCH net-next 1/7] dt-binding: ti: am65x: document common platform time sync cpts module
Date: Mon, 4 May 2020 23:04:19 -0500 [thread overview]
Message-ID: <20200505040419.GA8509@bogus> (raw)
In-Reply-To: <20200501205011.14899-2-grygorii.strashko@ti.com>
On Fri, May 01, 2020 at 11:50:05PM +0300, Grygorii Strashko wrote:
> Document device tree bindings for TI AM654/J721E SoC The Common Platform
> Time Sync (CPTS) module. The CPTS module is used to facilitate host control
> of time sync operations. Main features of CPTS module are:
> - selection of multiple external clock sources
> - 64-bit timestamp mode in ns with ppm and nudge adjustment.
> - control of time sync events via interrupt or polling
> - hardware timestamp of ext. events (HWx_TS_PUSH)
> - periodic generator function outputs (TS_GENFx)
> - PPS in combination with timesync router
> - Depending on integration it enables compliance with the IEEE 1588-2008
> standard for a precision clock synchronization protocol, Ethernet Enhanced
> Scheduled Traffic Operations (CPTS_ESTFn) and PCIe Subsystem Precision Time
> Measurement (PTM).
>
> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
> ---
> .../bindings/net/ti,k3-am654-cpsw-nuss.yaml | 7 +
> .../bindings/net/ti,k3-am654-cpts.yaml | 152 ++++++++++++++++++
> 2 files changed, 159 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml b/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
> index 78bf511e2892..0f3fde45e200 100644
> --- a/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
> +++ b/Documentation/devicetree/bindings/net/ti,k3-am654-cpsw-nuss.yaml
> @@ -144,6 +144,13 @@ patternProperties:
> description:
> CPSW MDIO bus.
>
> + "^cpts$":
Fixed strings go under 'properties'.
> + type: object
> + allOf:
> + - $ref: "ti,am654-cpts.yaml#"
> + description:
> + CPSW Common Platform Time Sync (CPTS) module.
> +
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml b/Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml
> new file mode 100644
> index 000000000000..1b535d41e5c6
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/ti,k3-am654-cpts.yaml
> @@ -0,0 +1,152 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/ti,am654-cpts.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: The TI AM654x/J721E Common Platform Time Sync (CPTS) module Device Tree Bindings
> +
> +maintainers:
> + - Grygorii Strashko <grygorii.strashko@ti.com>
> + - Sekhar Nori <nsekhar@ti.com>
> +
> +description: |+
> + The TI AM654x/J721E CPTS module is used to facilitate host control of time
> + sync operations.
> + Main features of CPTS module are
> + - selection of multiple external clock sources
> + - Software control of time sync events via interrupt or polling
> + - 64-bit timestamp mode in ns with PPM and nudge adjustment.
> + - hardware timestamp push inputs (HWx_TS_PUSH)
> + - timestamp counter compare output (TS_COMP)
> + - timestamp counter bit output (TS_SYNC)
> + - periodic Generator function outputs (TS_GENFx)
> + - Ethernet Enhanced Scheduled Traffic Operations (CPTS_ESTFn) (TSN)
> + - external hardware timestamp push inputs (HWx_TS_PUSH) timestamping
> +
> + Depending on integration it enables compliance with the IEEE 1588-2008
> + standard for a precision clock synchronization protocol, Ethernet Enhanced
> + Scheduled Traffic Operations (CPTS_ESTFn) and PCIe Subsystem Precision Time
> + Measurement (PTM).
> +
> + TI AM654x/J721E SoCs has several similar CPTS modules integrated into the
> + different parts of the system which could be synchronized with each other
> + - Main CPTS
> + - MCU CPSW CPTS with IEEE 1588-2008 support
> + - PCIe subsystem CPTS for PTM support
> +
> + Depending on CPTS module integration and when CPTS is integral part of
> + another module (MCU CPSW for example) "compatible" and "reg" can
> + be omitted - parent module is fully responsible for CPTS enabling and
> + configuration.
That's fine, but you should still have compatible and reg.
> +
> +properties:
> + $nodename:
> + pattern: "^cpts(@.*|-[0-9a-f])*$"
> +
> + compatible:
> + oneOf:
> + - const: ti,am65-cpts
> + - const: ti,j721e-cpts
> +
> + reg:
> + maxItems: 1
> + description:
> + The physical base address and size of CPTS IO range
Wrong indentation.
> +
> + reg-names:
> + items:
> + - const: cpts
Don't really need *-names when there's only one and you haven't picked
very meaningful names.
> +
> + clocks:
> + description: CPTS reference clock
> +
> + clock-names:
> + items:
> + - const: cpts
> +
> + interrupts-extended:
Use 'interrupts' here, the tooling will fixup things to allow both.
> + items:
> + - description: CPTS events interrupt
> +
> + interrupt-names:
> + items:
> + - const: "cpts"
Don't need quotes.
> +
> + ti,cpts-ext-ts-inputs:
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + maximum: 8
> + description:
> + Number of hardware timestamp push inputs (HWx_TS_PUSH)
Wrong indentation.
> +
> + ti,cpts-periodic-outputs:
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + maximum: 8
> + description:
> + Number of timestamp Generator function outputs (TS_GENFx)
Wrong indentation.
> +
> + refclk-mux:
> + type: object
> + description: CPTS reference clock multiplexer clock
> + properties:
> + '#clock-cells':
> + const: 0
> +
> + clocks:
> + maxItems: 8
> +
> + assigned-clocks:
> + maxItems: 1
> +
> + assigned-clocks-parents:
> + maxItems: 1
> +
> + required:
> + - clocks
> +
> +required:
> + - clocks
> + - clock-names
> + - interrupts-extended
> + - interrupt-names
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + cpts@310d0000 {
> + compatible = "ti,am65-cpts";
> + reg = <0x0 0x310d0000 0x0 0x400>;
> + reg-names = "cpts";
> + clocks = <&main_cpts_mux>;
> + clock-names = "cpts";
> + interrupts-extended = <&k3_irq 163 0 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "cpts";
> + ti,cpts-periodic-outputs = <6>;
> + ti,cpts-ext-ts-inputs = <8>;
> +
> + main_cpts_mux: refclk-mux {
> + #clock-cells = <0>;
> + clocks = <&k3_clks 118 5>, <&k3_clks 118 11>,
> + <&k3_clks 157 91>, <&k3_clks 157 77>,
> + <&k3_clks 157 102>, <&k3_clks 157 80>,
> + <&k3_clks 120 3>, <&k3_clks 121 3>;
> + assigned-clocks = <&main_cpts_mux>;
> + assigned-clock-parents = <&k3_clks 118 11>;
> + };
> + };
> + - |
> +
> + cpts {
> + clocks = <&k3_clks 18 2>;
> + clock-names = "cpts";
> + interrupts-extended = <&gic500 GIC_SPI 858 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "cpts";
> + ti,cpts-ext-ts-inputs = <4>;
> + ti,cpts-periodic-outputs = <2>;
How is this example accessed?
> + };
> --
> 2.17.1
>
next prev parent reply other threads:[~2020-05-05 4:04 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-01 20:50 [PATCH net-next 0/7] net: ethernet: ti: k3: introduce common platform time sync driver - cpts Grygorii Strashko
2020-05-01 20:50 ` Grygorii Strashko
2020-05-01 20:50 ` [PATCH net-next 1/7] dt-binding: ti: am65x: document common platform time sync cpts module Grygorii Strashko
2020-05-01 20:50 ` Grygorii Strashko
2020-05-05 4:04 ` Rob Herring [this message]
2020-05-05 4:04 ` Rob Herring
2020-05-05 15:01 ` Grygorii Strashko
2020-05-05 15:01 ` Grygorii Strashko
2020-05-06 19:07 ` Rob Herring
2020-05-06 19:07 ` Rob Herring
2020-05-06 19:10 ` Grygorii Strashko
2020-05-06 19:10 ` Grygorii Strashko
2020-05-05 4:05 ` Rob Herring
2020-05-05 4:05 ` Rob Herring
2020-05-05 10:26 ` Grygorii Strashko
2020-05-05 10:26 ` Grygorii Strashko
2020-05-01 20:50 ` [PATCH net-next 2/7] net: ethernet: ti: introduce am654 common platform time sync driver Grygorii Strashko
2020-05-01 20:50 ` Grygorii Strashko
2020-05-01 20:50 ` [PATCH net-next 3/7] net: ethernet: ti: am65-cpsw-nuss: enable packet timestamping support Grygorii Strashko
2020-05-01 20:50 ` Grygorii Strashko
2020-05-05 10:17 ` Anders Roxell
2020-05-05 10:17 ` Anders Roxell
2020-05-05 11:05 ` Grygorii Strashko
2020-05-05 11:05 ` Grygorii Strashko
2020-05-05 11:16 ` Anders Roxell
2020-05-05 11:16 ` Anders Roxell
2020-05-05 11:59 ` Anders Roxell
2020-05-05 11:59 ` Anders Roxell
2020-05-05 12:20 ` Grygorii Strashko
2020-05-05 12:20 ` Grygorii Strashko
2020-05-05 13:31 ` Anders Roxell
2020-05-05 13:31 ` Anders Roxell
2020-05-05 12:55 ` Grygorii Strashko
2020-05-05 12:55 ` Grygorii Strashko
2020-05-01 20:50 ` [PATCH net-next 4/7] arm64: dts: ti: k3-am65-mcu: add cpsw cpts node Grygorii Strashko
2020-05-01 20:50 ` Grygorii Strashko
2020-05-01 20:50 ` [PATCH net-next 5/7] arm64: dts: ti: k3-am65-main: add main navss " Grygorii Strashko
2020-05-01 20:50 ` Grygorii Strashko
2020-05-01 20:50 ` [PATCH net-next 6/7] arm64: dts: ti: k3-j721e-mcu: add mcu cpsw " Grygorii Strashko
2020-05-01 20:50 ` Grygorii Strashko
2020-05-01 20:50 ` [PATCH net-next 7/7] arm64: dts: ti: j721e-main: add main navss " Grygorii Strashko
2020-05-01 20:50 ` Grygorii Strashko
2020-05-04 19:02 ` [PATCH net-next 0/7] net: ethernet: ti: k3: introduce common platform time sync driver - cpts David Miller
2020-05-04 19:02 ` David Miller
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=20200505040419.GA8509@bogus \
--to=robh@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=grygorii.strashko@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lokeshvutla@ti.com \
--cc=m-karicheri2@ti.com \
--cc=netdev@vger.kernel.org \
--cc=nm@ti.com \
--cc=nsekhar@ti.com \
--cc=richardcochran@gmail.com \
--cc=t-kristo@ti.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.