1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/net/ti,k3-am654-cpts.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: The TI AM654x/J721E Common Platform Time Sync (CPTS) module Device Tree Bindings
10 - Grygorii Strashko <grygorii.strashko@ti.com>
11 - Sekhar Nori <nsekhar@ti.com>
14 The TI AM654x/J721E CPTS module is used to facilitate host control of time
16 Main features of CPTS module are
17 - selection of multiple external clock sources
18 - Software control of time sync events via interrupt or polling
19 - 64-bit timestamp mode in ns with PPM and nudge adjustment.
20 - hardware timestamp push inputs (HWx_TS_PUSH)
21 - timestamp counter compare output (TS_COMP)
22 - timestamp counter bit output (TS_SYNC)
23 - periodic Generator function outputs (TS_GENFx)
24 - Ethernet Enhanced Scheduled Traffic Operations (CPTS_ESTFn) (TSN)
25 - external hardware timestamp push inputs (HWx_TS_PUSH) timestamping
27 Depending on integration it enables compliance with the IEEE 1588-2008
28 standard for a precision clock synchronization protocol, Ethernet Enhanced
29 Scheduled Traffic Operations (CPTS_ESTFn) and PCIe Subsystem Precision Time
32 TI AM654x/J721E SoCs has several similar CPTS modules integrated into the
33 different parts of the system which could be synchronized with each other
35 - MCU CPSW CPTS with IEEE 1588-2008 support
36 - PCIe subsystem CPTS for PTM support
38 Depending on CPTS module integration and when CPTS is integral part of
39 another module (MCU CPSW for example) "compatible" and "reg" can
40 be omitted - parent module is fully responsible for CPTS enabling and
45 pattern: "^cpts@[0-9a-f]+$"
50 - const: ti,j721e-cpts
55 The physical base address and size of CPTS IO range
62 description: CPTS reference clock
70 - description: CPTS events interrupt
76 ti,cpts-ext-ts-inputs:
78 - $ref: /schemas/types.yaml#/definitions/uint32
81 Number of hardware timestamp push inputs (HWx_TS_PUSH)
83 ti,cpts-periodic-outputs:
85 - $ref: /schemas/types.yaml#/definitions/uint32
88 Number of timestamp Generator function outputs (TS_GENFx)
92 description: CPTS reference clock multiplexer clock
103 assigned-clocks-parents:
117 additionalProperties: false
121 #include <dt-bindings/interrupt-controller/irq.h>
122 #include <dt-bindings/interrupt-controller/arm-gic.h>
125 compatible = "ti,am65-cpts";
126 reg = <0x0 0x310d0000 0x0 0x400>;
128 clocks = <&main_cpts_mux>;
129 clock-names = "cpts";
130 interrupts-extended = <&k3_irq 163 0 IRQ_TYPE_LEVEL_HIGH>;
131 interrupt-names = "cpts";
132 ti,cpts-periodic-outputs = <6>;
133 ti,cpts-ext-ts-inputs = <8>;
135 main_cpts_mux: refclk-mux {
137 clocks = <&k3_clks 118 5>, <&k3_clks 118 11>,
138 <&k3_clks 157 91>, <&k3_clks 157 77>,
139 <&k3_clks 157 102>, <&k3_clks 157 80>,
140 <&k3_clks 120 3>, <&k3_clks 121 3>;
141 assigned-clocks = <&main_cpts_mux>;
142 assigned-clock-parents = <&k3_clks 118 11>;