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