RTEMS  5.0.0
gmacb_phy.h
Go to the documentation of this file.
1 /* ---------------------------------------------------------------------------- */
2 /* Atmel Microcontroller Software Support */
3 /* SAM Software Package License */
4 /* ---------------------------------------------------------------------------- */
5 /* Copyright (c) 2015, Atmel Corporation */
6 /* */
7 /* All rights reserved. */
8 /* */
9 /* Redistribution and use in source and binary forms, with or without */
10 /* modification, are permitted provided that the following condition is met: */
11 /* */
12 /* - Redistributions of source code must retain the above copyright notice, */
13 /* this list of conditions and the disclaimer below. */
14 /* */
15 /* Atmel's name may not be used to endorse or promote products derived from */
16 /* this software without specific prior written permission. */
17 /* */
18 /* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
19 /* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
20 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
21 /* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
22 /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
23 /* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
24 /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
25 /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
26 /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
27 /* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
28 /* ---------------------------------------------------------------------------- */
29 
54 #ifndef _GMACB_PHY_H
55 #define _GMACB_PHY_H
56 
57 
58 /*---------------------------------------------------------------------------
59  * Headers
60  *---------------------------------------------------------------------------*/
61 
62 #include "board.h"
63 
64 /*---------------------------------------------------------------------------
65  * Definitions
66  *---------------------------------------------------------------------------*/
67 
69 #define GMACB_RESET_LENGTH 0xD
70 
71 /*---------------------------------------------------------------------------
72  * Types
73  *---------------------------------------------------------------------------*/
74 
75 
77 typedef struct _GMacb {
81  uint32_t retryMax;
83  uint8_t phyAddress;
84 } GMacb;
85 
86 /*---------------------------------------------------------------------------
87  * Exported functions
88  *---------------------------------------------------------------------------*/
89 extern void GMACB_SetupTimeout(GMacb *pMacb, uint32_t toMax);
90 
91 extern void GMACB_Init(GMacb *pMacb, sGmacd *pGmacd, uint8_t phyAddress);
92 
93 extern uint8_t GMACB_InitPhy(
94  GMacb *pMacb,
95  uint32_t mck,
96  const Pin *pResetPins,
97  uint32_t nbResetPins,
98  const Pin *pEmacPins,
99  uint32_t nbEmacPins);
100 
101 extern uint8_t GMACB_AutoNegotiate(GMacb *pMacb);
102 
103 extern uint8_t GMACB_GetLinkSpeed(GMacb *pMacb, uint8_t applySettings);
104 
105 extern uint8_t GMACB_Send(GMacb *pMacb, void *pBuffer, uint32_t size);
106 
107 extern uint32_t GMACB_Poll(GMacb *pMacb, uint8_t *pBuffer, uint32_t size);
108 
109 extern void GMACB_DumpRegisters(GMacb *pMacb);
110 
111 extern uint8_t GMACB_ResetPhy(GMacb *pMacb);
112 
113 #endif // #ifndef _GMACB_H
114 
Definition: pio.h:172
struct _GMacb GMacb
Definition: gmacb_phy.h:77
sGmacd * pGmacd
Definition: gmacb_phy.h:79
Definition: gmacd.h:185
uint8_t phyAddress
Definition: gmacb_phy.h:83
unsigned size
Definition: tte.h:74
uint32_t retryMax
Definition: gmacb_phy.h:81