cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ti,k3-am654-cpts.yaml (3987B)


      1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
      2%YAML 1.2
      3---
      4$id: http://devicetree.org/schemas/net/ti,k3-am654-cpts.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: The TI AM654x/J721E Common Platform Time Sync (CPTS) module Device Tree Bindings
      8
      9maintainers:
     10  - Grygorii Strashko <grygorii.strashko@ti.com>
     11  - Sekhar Nori <nsekhar@ti.com>
     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:
     45    pattern: "^cpts@[0-9a-f]+$"
     46
     47  compatible:
     48    enum:
     49      - ti,am65-cpts
     50      - ti,j721e-cpts
     51
     52  reg:
     53    maxItems: 1
     54    description:
     55      The physical base address and size of CPTS IO range
     56
     57  reg-names:
     58    items:
     59      - const: cpts
     60
     61  clocks:
     62    maxItems: 1
     63    description: CPTS reference clock
     64
     65  clock-names:
     66    items:
     67      - const: cpts
     68
     69  interrupts:
     70    items:
     71      - description: CPTS events interrupt
     72
     73  interrupt-names:
     74    items:
     75      - const: cpts
     76
     77  assigned-clock-parents: true
     78
     79  assigned-clocks: true
     80
     81  power-domains:
     82    maxItems: 1
     83
     84  ti,cpts-ext-ts-inputs:
     85    $ref: /schemas/types.yaml#/definitions/uint32
     86    maximum: 8
     87    description:
     88      Number of hardware timestamp push inputs (HWx_TS_PUSH)
     89
     90  ti,cpts-periodic-outputs:
     91    $ref: /schemas/types.yaml#/definitions/uint32
     92    maximum: 8
     93    description:
     94      Number of timestamp Generator function outputs (TS_GENFx)
     95
     96  refclk-mux:
     97    type: object
     98    description: CPTS reference clock multiplexer clock
     99    properties:
    100      '#clock-cells':
    101        const: 0
    102
    103      clocks:
    104        maxItems: 8
    105
    106    required:
    107      - clocks
    108
    109required:
    110  - compatible
    111  - reg
    112  - clocks
    113  - clock-names
    114  - interrupts
    115  - interrupt-names
    116
    117additionalProperties: false
    118
    119examples:
    120  - |
    121    #include <dt-bindings/interrupt-controller/irq.h>
    122    #include <dt-bindings/interrupt-controller/arm-gic.h>
    123
    124    cpts@310d0000 {
    125         compatible = "ti,am65-cpts";
    126         reg = <0x310d0000 0x400>;
    127         reg-names = "cpts";
    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>;
    134
    135         main_cpts_mux: refclk-mux {
    136               #clock-cells = <0>;
    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>;
    143         };
    144    };