dt-bindings: doc: net: keystone-netcp: document cpts
authorGrygorii Strashko <grygorii.strashko@ti.com>
Thu, 6 Jun 2019 16:30:38 +0000 (19:30 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 9 Jun 2019 19:53:06 +0000 (12:53 -0700)
The Keystone 2 66AK2HK/E/L 1G Ethernet Switch Subsystems contains The
Common Platform Time Sync (CPTS) module which is in general compatible with
CPTS module found on "legacy" TI AM3/4/5 SoCs. So, the basic support for
Keystone 2 CPTS is available by default, but not documented.
The Keystone 2 CPTS module supports also some additional features like time
sync reference (RFTCLK) clock selection through CPTS_RFTCLK_SEL register
(offset: x08) in CPTS module, which is modelled as multiplexer clock.

This patch adds missed binding documentation for Keystone 2 66AK2HK/E/L
CPTS module.

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/devicetree/bindings/net/keystone-netcp.txt

index 6262c2f293b056cb2f8fc14e317f188a018f9dfe..24f11e042f8dcf6ca39bee43ee7853e510ff58f8 100644 (file)
@@ -104,6 +104,23 @@ Required properties:
                        - 10Gb mac<->mac forced mode : 11
 ----phy-handle:        phandle to PHY device
 
+- cpts:                sub-node time synchronization (CPTS) submodule configuration
+-- clocks:     CPTS reference clock. Should point on cpts-refclk-mux clock.
+-- clock-names: should be "cpts"
+-- cpts-refclk-mux: multiplexer clock definition sub-node for CPTS reference (RFTCLK) clock
+--- #clock-cells: should be 0
+--- clocks:    list of CPTS reference (RFTCLK) clock's parents as defined in Data manual
+--- ti,mux-tbl: array of multiplexer indexes as defined in Data manual
+--- assigned-clocks: should point on cpts-refclk-mux clock
+--- assigned-clock-parents: should point on required RFTCLK clock parent to be selected
+-- cpts_clock_mult: (optional) Numerator to convert input clock ticks
+               into nanoseconds
+-- cpts_clock_shift: (optional) Denominator to convert input clock ticks into
+               nanoseconds.
+               Mult and shift will be calculated basing on CPTS
+               rftclk frequency if both cpts_clock_shift and
+               cpts_clock_mult properties are not provided.
+
 Optional properties:
 - enable-ale:  NetCP driver keeps the address learning feature in the ethernet
                switch module disabled. This attribute is to enable the address
@@ -168,6 +185,23 @@ netcp: netcp@2000000 {
                        tx-queue = <648>;
                        tx-channel = <8>;
 
+                       cpts {
+                               clocks = <&cpts_refclk_mux>;
+                               clock-names = "cpts";
+
+                               cpts_refclk_mux: cpts-refclk-mux {
+                                       #clock-cells = <0>;
+                                       clocks = <&chipclk12>, <&chipclk13>,
+                                                <&timi0>, <&timi1>,
+                                                <&tsipclka>, <&tsrefclk>,
+                                                <&tsipclkb>;
+                                       ti,mux-tbl = <0x0>, <0x1>, <0x2>,
+                                               <0x3>, <0x4>, <0x8>, <0xC>;
+                                       assigned-clocks = <&cpts_refclk_mux>;
+                                       assigned-clock-parents = <&chipclk12>;
+                               };
+                       };
+
                        interfaces {
                                gbe0: interface-0 {
                                        slave-port = <0>;
@@ -219,3 +253,13 @@ netcp: netcp@2000000 {
                };
        };
 };
+
+CPTS board configuration - select external CPTS RFTCLK:
+
+&tsrefclk{
+       clock-frequency = <500000000>;
+};
+
+&cpts_refclk_mux {
+       assigned-clock-parents = <&tsrefclk>;
+};