linux/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h
<<
>>
Prefs
   1/******************************************************************************
   2  PTP Header file
   3
   4  Copyright (C) 2013  Vayavya Labs Pvt Ltd
   5
   6  This program is free software; you can redistribute it and/or modify it
   7  under the terms and conditions of the GNU General Public License,
   8  version 2, as published by the Free Software Foundation.
   9
  10  This program is distributed in the hope it will be useful, but WITHOUT
  11  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  13  more details.
  14
  15  You should have received a copy of the GNU General Public License along with
  16  this program; if not, write to the Free Software Foundation, Inc.,
  17  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
  18
  19  The full GNU General Public License is included in this distribution in
  20  the file called "COPYING".
  21
  22  Author: Rayagond Kokatanur <rayagond@vayavyalabs.com>
  23******************************************************************************/
  24
  25#ifndef __STMMAC_PTP_H__
  26#define __STMMAC_PTP_H__
  27
  28/* IEEE 1588 PTP register offsets */
  29#define PTP_TCR         0x0700  /* Timestamp Control Reg */
  30#define PTP_SSIR        0x0704  /* Sub-Second Increment Reg */
  31#define PTP_STSR        0x0708  /* System Time – Seconds Regr */
  32#define PTP_STNSR       0x070C  /* System Time – Nanoseconds Reg */
  33#define PTP_STSUR       0x0710  /* System Time – Seconds Update Reg */
  34#define PTP_STNSUR      0x0714  /* System Time – Nanoseconds Update Reg */
  35#define PTP_TAR         0x0718  /* Timestamp Addend Reg */
  36#define PTP_TTSR        0x071C  /* Target Time Seconds Reg */
  37#define PTP_TTNSR       0x0720  /* Target Time Nanoseconds Reg */
  38#define PTP_STHWSR      0x0724  /* System Time - Higher Word Seconds Reg */
  39#define PTP_TSR         0x0728  /* Timestamp Status */
  40
  41#define PTP_STNSUR_ADDSUB_SHIFT 31
  42
  43/* PTP TCR defines */
  44#define PTP_TCR_TSENA           0x00000001 /* Timestamp Enable */
  45#define PTP_TCR_TSCFUPDT        0x00000002 /* Timestamp Fine/Coarse Update */
  46#define PTP_TCR_TSINIT          0x00000004 /* Timestamp Initialize */
  47#define PTP_TCR_TSUPDT          0x00000008 /* Timestamp Update */
  48/* Timestamp Interrupt Trigger Enable */
  49#define PTP_TCR_TSTRIG          0x00000010
  50#define PTP_TCR_TSADDREG        0x00000020 /* Addend Reg Update */
  51#define PTP_TCR_TSENALL         0x00000100 /* Enable Timestamp for All Frames */
  52/* Timestamp Digital or Binary Rollover Control */
  53#define PTP_TCR_TSCTRLSSR       0x00000200
  54
  55/* Enable PTP packet Processing for Version 2 Format */
  56#define PTP_TCR_TSVER2ENA       0x00000400
  57/* Enable Processing of PTP over Ethernet Frames */
  58#define PTP_TCR_TSIPENA         0x00000800
  59/* Enable Processing of PTP Frames Sent over IPv6-UDP */
  60#define PTP_TCR_TSIPV6ENA       0x00001000
  61/* Enable Processing of PTP Frames Sent over IPv4-UDP */
  62#define PTP_TCR_TSIPV4ENA       0x00002000
  63/* Enable Timestamp Snapshot for Event Messages */
  64#define PTP_TCR_TSEVNTENA       0x00004000
  65/* Enable Snapshot for Messages Relevant to Master */
  66#define PTP_TCR_TSMSTRENA       0x00008000
  67/* Select PTP packets for Taking Snapshots */
  68#define PTP_TCR_SNAPTYPSEL_1    0x00010000
  69/* Enable MAC address for PTP Frame Filtering */
  70#define PTP_TCR_TSENMACADDR     0x00040000
  71
  72#endif /* __STMMAC_PTP_H__ */
  73