www.usr.com/support/gpl/USR9107_release.1.4.tar.gz
[bcm963xx.git] / bcmdrivers / broadcom / include / bcm963xx / bcmadsl.h
1 /*
2 <:copyright-broadcom 
3  
4  Copyright (c) 2002 Broadcom Corporation 
5  All Rights Reserved 
6  No portions of this material may be reproduced in any form without the 
7  written permission of: 
8           Broadcom Corporation 
9           16215 Alton Parkway 
10           Irvine, California 92619 
11  All information contained in this document is Broadcom Corporation 
12  company private, proprietary, and trade secret. 
13  
14 :>
15 */
16 //**************************************************************************
17 // File Name  : Adsl.h
18 //
19 // Description: This file contains the definitions, structures and function
20 //              prototypes for ADSL PHY interface
21 //
22 //**************************************************************************
23 #if !defined(_BCMADSL_H_)
24 #define _BCMADSL_H_
25
26 #if defined(__cplusplus)
27 extern "C" {
28 #endif
29
30 /* Incldes. */
31 #include "AdslMibDef.h"
32
33 //**************************************************************************
34 // Type Definitions
35 //**************************************************************************
36
37 // Return status values
38 typedef enum BcmAdslStatus
39 {
40     BCMADSL_STATUS_SUCCESS = 0,
41     BCMADSL_STATUS_ERROR
42 } BCMADSL_STATUS;
43
44 // Return status values
45 typedef enum AdslLinkState
46 {
47     BCM_ADSL_LINK_UP = 0,
48     BCM_ADSL_LINK_DOWN,
49         BCM_ADSL_TRAINING_G992_EXCHANGE,
50         BCM_ADSL_TRAINING_G992_CHANNEL_ANALYSIS,
51         BCM_ADSL_TRAINING_G992_STARTED,
52         BCM_ADSL_TRAINING_G994,
53         BCM_ADSL_G994_NONSTDINFO_RECEIVED,
54     BCM_ADSL_BERT_COMPLETE,
55         BCM_ADSL_ATM_IDLE,
56     BCM_ADSL_EVENT,
57     BCM_ADSL_G997_FRAME_RECEIVED,
58     BCM_ADSL_G997_FRAME_SENT
59 } ADSL_LINK_STATE;
60
61 #ifndef DISABLE_ADSL_OLD_DEF
62 #define ADSL_LINK_UP            BCM_ADSL_LINK_UP
63 #define ADSL_LINK_DOWN          BCM_ADSL_LINK_DOWN
64 #endif
65
66 /* ADSL test modes */
67 typedef enum AdslTestMode
68 {
69     ADSL_TEST_NORMAL = 0,
70     ADSL_TEST_REVERB,
71     ADSL_TEST_MEDLEY,
72     ADSL_TEST_SELECT_TONES,
73     ADSL_TEST_NO_AUTO_RETRAIN,
74         ADSL_TEST_MARGIN_TWEAK,
75         ADSL_TEST_ESTIMATE_PLL_PHASE,
76         ADSL_TEST_REPORT_PLL_PHASE_STATUS,
77         ADSL_TEST_AFELOOPBACK,
78     ADSL_TEST_L3,
79     ADSL_TEST_DIAGMODE,
80     ADSL_TEST_L0
81 } ADSL_TEST_MODE;
82
83 // ADSL_CHANNEL_ADDR Contains ADSL Utopia PHY addresses
84 typedef struct AdslChannelAddr
85 {
86     UINT16 usFastChannelAddr;
87     UINT16 usInterleavedChannelAddr;
88 } ADSL_CHANNEL_ADDR, *PADSL_CHANNEL_ADDR;
89
90 // ADSL_CONNECTION_INFO Contains ADSL Connection Info
91 typedef struct AdslConnectionInfo
92 {
93         ADSL_LINK_STATE LinkState; 
94     UINT32 ulFastUpStreamRate;
95     UINT32 ulFastDnStreamRate;
96     UINT32 ulInterleavedUpStreamRate;
97     UINT32 ulInterleavedDnStreamRate;
98 } ADSL_CONNECTION_INFO, *PADSL_CONNECTION_INFO;
99
100 /* OEM parameter definition */
101 #define ADSL_OEM_G994_VENDOR_ID       1    /* Vendor ID used during G.994 handshake */
102 #define ADSL_OEM_G994_XMT_NS_INFO     2    /* G.994 non-standard info field to send */
103 #define ADSL_OEM_G994_RCV_NS_INFO     3    /* G.994 received non-standard */
104 #define ADSL_OEM_EOC_VENDOR_ID        4    /* EOC reg. 0 */
105 #define ADSL_OEM_EOC_VERSION          5    /* EOC reg. 1 */
106 #define ADSL_OEM_EOC_SERIAL_NUMBER    6    /* EOC reg. 2 */
107 #define ADSL_OEM_T1413_VENDOR_ID      7    /* Vendor ID used during T1.413 handshake */
108 #define ADSL_OEM_T1413_EOC_VENDOR_ID  8    /* EOC reg. 0 (vendor ID) in T1.413 mode */
109
110 /* XMT gain definitions */
111 #define ADSL_XMT_GAIN_AUTO                        0x80000000
112
113 typedef struct
114 {
115     int                         diagCmd;
116     int                         diagMap;
117     int                         logTime;
118         int                             srvIpAddr;
119         int                             gwIpAddr;
120 } ADSL_DIAG, *PADSL_DIAG;
121
122 typedef struct
123 {
124     short                       x;
125     short                       y;
126 } ADSL_CONSTELLATION_POINT, *PADSL_CONSTELLATION_POINT;
127
128 #define ADSL_CONSTEL_DATA_ID            0
129 #define ADSL_CONSTEL_PILOT_ID           1
130
131 #define ADSL_MIB_INFO   adslMibInfo
132 typedef ADSL_MIB_INFO   *PADSL_MIB_INFO;
133
134 typedef void (*ADSL_FN_NOTIFY_CB) (ADSL_LINK_STATE AdslLinkState, UINT32 ulParm); 
135
136 //**************************************************************************
137 // Function Prototypes
138 //**************************************************************************
139
140 BCMADSL_STATUS BcmAdsl_Check(void);
141 BCMADSL_STATUS BcmAdsl_Initialize(ADSL_FN_NOTIFY_CB pFnNotifyCb, UINT32 ulParm, adslCfgProfile *pAdslCfg);
142 #ifdef LINUX
143 BCMADSL_STATUS BcmAdsl_MapAtmPortIDs(UINT16 usAtmFastPortId, UINT16 usAtmInterleavedPortId);
144 #endif
145 BCMADSL_STATUS BcmAdsl_Uninitialize(void);
146 BCMADSL_STATUS BcmAdsl_ConnectionStart(void);
147 BCMADSL_STATUS BcmAdsl_ConnectionStop(void);
148 BCMADSL_STATUS BcmAdsl_GetPhyAddresses(PADSL_CHANNEL_ADDR pChannelAddr);
149 BCMADSL_STATUS BcmAdsl_SetPhyAddresses(PADSL_CHANNEL_ADDR pChannelAddr);
150 BCMADSL_STATUS BcmAdsl_GetConnectionInfo(PADSL_CONNECTION_INFO pConnectionInfo);
151 BCMADSL_STATUS BcmAdsl_DiagCommand(PADSL_DIAG pAdslDiag);
152 int BcmAdsl_GetObjectValue(char *objId, int objIdLen, char *dataBuf, long *dataBufLen);
153 BCMADSL_STATUS BcmAdsl_StartBERT(unsigned long totalBits);
154 BCMADSL_STATUS BcmAdsl_StopBERT(void);
155 BCMADSL_STATUS BcmAdsl_BertStartEx(unsigned long bertSec);
156 BCMADSL_STATUS BcmAdsl_BertStopEx(void);
157 BCMADSL_STATUS BcmAdsl_CheckPowerLoss(void);
158 BCMADSL_STATUS BcmAdsl_SendDyingGasp(int powerCtl);
159 BCMADSL_STATUS BcmAdsl_Configure(adslCfgProfile *pAdslCfg);
160 BCMADSL_STATUS BcmAdsl_GetVersion(adslVersionInfo *pAdslVer);
161 BCMADSL_STATUS BcmAdsl_SetSDRAMBaseAddr(void *pAddr);
162 BCMADSL_STATUS BcmAdsl_SetVcEntry (int gfc, int port, int vpi, int vci);
163 BCMADSL_STATUS BcmAdsl_SetVcEntryEx (int gfc, int port, int vpi, int vci, int pti_clp);
164
165 BCMADSL_STATUS BcmAdsl_ResetStatCounters(void);
166 BCMADSL_STATUS BcmAdsl_SetAtmLoopbackMode(void);
167 BCMADSL_STATUS BcmAdsl_SetTestMode(ADSL_TEST_MODE testMode);
168 BCMADSL_STATUS BcmAdsl_SelectTones(
169         int             xmtStartTone, 
170         int             xmtNumTones, 
171         int             rcvStartTone,
172         int             rcvNumTones, 
173         char    *xmtToneMap,
174         char    *rcvToneMap
175         );
176 BCMADSL_STATUS BcmAdsl_SetDiagMode(int diagMode);
177
178 int BcmAdsl_GetConstellationPoints (int toneId, ADSL_CONSTELLATION_POINT *pointBuf, int numPoints);
179
180 int BcmAdsl_GetOemParameter (int paramId, void *buf, int len);
181 int BcmAdsl_SetOemParameter (int paramId, void *buf, int len);
182 int BcmAdsl_SetXmtGain(int gain);
183
184 UINT32  BcmAdsl_GetSelfTestMode(void);
185 void    BcmAdsl_SetSelfTestMode(UINT32 stMode);
186 UINT32  BcmAdsl_GetSelfTestResults(void);
187
188 BCMADSL_STATUS BcmAdsl_G997SendData(void *buf, int len);
189 void *BcmAdsl_G997FrameGet(int *pLen);
190 void *BcmAdsl_G997FrameGetNext(int *pLen);
191 void  BcmAdsl_G997FrameFinished(void);
192 void BcmAdsl_DyingGaspHandler(void *context);
193
194 #if defined(__cplusplus)
195 }
196 #endif
197
198 #endif // _BCMADSL_H_
199