dt-bindings: net: ti: Update maintainers list
[linux-block.git] / Documentation / devicetree / bindings / net / ti,k3-am654-cpts.yaml
CommitLineData
6e87ac74
GS
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
b38eb47f 4$id: http://devicetree.org/schemas/net/ti,k3-am654-cpts.yaml#
6e87ac74
GS
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
dd3cb467 7title: The TI AM654x/J721E Common Platform Time Sync (CPTS) module
6e87ac74
GS
8
9maintainers:
84f90efd 10 - Siddharth Vadapalli <s-vadapalli@ti.com>
84f90efd 11 - Roger Quadros <rogerq@kernel.org>
6e87ac74
GS
12
13description: |+
14 The TI AM654x/J721E CPTS module is used to facilitate host control of time
15 sync operations.
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
26
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
30 Measurement (PTM).
31
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
34 - Main CPTS
35 - MCU CPSW CPTS with IEEE 1588-2008 support
36 - PCIe subsystem CPTS for PTM support
37
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
41 configuration.
42
43properties:
44 $nodename:
4786f4a0 45 pattern: "^cpts@[0-9a-f]+$"
6e87ac74
GS
46
47 compatible:
1c3ac086
RH
48 enum:
49 - ti,am65-cpts
50 - ti,j721e-cpts
6e87ac74
GS
51
52 reg:
53 maxItems: 1
54 description:
4786f4a0 55 The physical base address and size of CPTS IO range
6e87ac74
GS
56
57 reg-names:
58 items:
59 - const: cpts
60
61 clocks:
0499220d 62 maxItems: 1
6e87ac74
GS
63 description: CPTS reference clock
64
65 clock-names:
66 items:
67 - const: cpts
68
4786f4a0 69 interrupts:
6e87ac74
GS
70 items:
71 - description: CPTS events interrupt
72
73 interrupt-names:
74 items:
4786f4a0 75 - const: cpts
6e87ac74 76
b3228c74
GS
77 assigned-clock-parents: true
78
79 assigned-clocks: true
80
81 power-domains:
82 maxItems: 1
83
6e87ac74 84 ti,cpts-ext-ts-inputs:
086e9074 85 $ref: /schemas/types.yaml#/definitions/uint32
6e87ac74
GS
86 maximum: 8
87 description:
4786f4a0 88 Number of hardware timestamp push inputs (HWx_TS_PUSH)
6e87ac74
GS
89
90 ti,cpts-periodic-outputs:
086e9074 91 $ref: /schemas/types.yaml#/definitions/uint32
6e87ac74
GS
92 maximum: 8
93 description:
4786f4a0 94 Number of timestamp Generator function outputs (TS_GENFx)
6e87ac74 95
2b76af68
GS
96 ti,pps:
97 $ref: /schemas/types.yaml#/definitions/uint32-array
98 minItems: 2
99 maxItems: 2
100 description: |
101 The pair of HWx_TS_PUSH input and TS_GENFy output indexes used for
102 PPS events generation. Platform/board specific.
103
6e87ac74
GS
104 refclk-mux:
105 type: object
057062ad 106 additionalProperties: false
6e87ac74
GS
107 description: CPTS reference clock multiplexer clock
108 properties:
109 '#clock-cells':
110 const: 0
111
112 clocks:
113 maxItems: 8
114
6e87ac74
GS
115 required:
116 - clocks
117
118required:
4786f4a0
GS
119 - compatible
120 - reg
6e87ac74
GS
121 - clocks
122 - clock-names
4786f4a0 123 - interrupts
6e87ac74
GS
124 - interrupt-names
125
126additionalProperties: false
127
128examples:
129 - |
130 #include <dt-bindings/interrupt-controller/irq.h>
131 #include <dt-bindings/interrupt-controller/arm-gic.h>
132
133 cpts@310d0000 {
134 compatible = "ti,am65-cpts";
0db958b6 135 reg = <0x310d0000 0x400>;
6e87ac74
GS
136 reg-names = "cpts";
137 clocks = <&main_cpts_mux>;
138 clock-names = "cpts";
139 interrupts-extended = <&k3_irq 163 0 IRQ_TYPE_LEVEL_HIGH>;
140 interrupt-names = "cpts";
141 ti,cpts-periodic-outputs = <6>;
142 ti,cpts-ext-ts-inputs = <8>;
143
144 main_cpts_mux: refclk-mux {
145 #clock-cells = <0>;
146 clocks = <&k3_clks 118 5>, <&k3_clks 118 11>,
147 <&k3_clks 157 91>, <&k3_clks 157 77>,
148 <&k3_clks 157 102>, <&k3_clks 157 80>,
149 <&k3_clks 120 3>, <&k3_clks 121 3>;
150 assigned-clocks = <&main_cpts_mux>;
151 assigned-clock-parents = <&k3_clks 118 11>;
152 };
153 };