RTEMS: bsps/arm/atsam/contrib/libraries/libboard/include/gmacb_phy.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
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 {
79 sGmacd *pGmacd;
81 uint32_t retryMax;
83 uint8_t phyAddress;
84} GMacb;
85
86/*---------------------------------------------------------------------------
87 * Exported functions
88 *---------------------------------------------------------------------------*/
89extern void GMACB_SetupTimeout(GMacb *pMacb, uint32_t toMax);
90
91extern void GMACB_Init(GMacb *pMacb, sGmacd *pGmacd, uint8_t phyAddress);
92
93extern 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
101extern uint8_t GMACB_AutoNegotiate(GMacb *pMacb);
102
103extern uint8_t GMACB_GetLinkSpeed(GMacb *pMacb, uint8_t applySettings);
104
105extern uint8_t GMACB_Send(GMacb *pMacb, void *pBuffer, uint32_t size);
106
107extern uint32_t GMACB_Poll(GMacb *pMacb, uint8_t *pBuffer, uint32_t size);
108
109extern void GMACB_DumpRegisters(GMacb *pMacb);
110
111extern uint8_t GMACB_ResetPhy(GMacb *pMacb);
112
113#endif // #ifndef _GMACB_H
114
board.h
GMacb
struct _GMacb GMacb
_GMacb
Definition: gmacb_phy.h:77
_GMacb::pGmacd
sGmacd * pGmacd
Definition: gmacb_phy.h:79
_GMacb::phyAddress
uint8_t phyAddress
Definition: gmacb_phy.h:83
_GMacb::retryMax
uint32_t retryMax
Definition: gmacb_phy.h:81
_GmacDriver
Definition: gmacd.h:185
_Pin
Definition: pio.h:172