MCUSW
Loading...
Searching...
No Matches
EthTrcv.h
Go to the documentation of this file.
1/*
2*
3* Copyright (c) 2024 Texas Instruments Incorporated
4*
5* All rights reserved not granted herein.
6*
7* Limited License.
8*
9* Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10* license under copyrights and patents it now or hereafter owns or controls to make,
11* have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12* terms herein. With respect to the foregoing patent license, such license is granted
13* solely to the extent that any such patent is necessary to Utilize the software alone.
14* The patent license shall not apply to any combinations which include this software,
15* other than combinations with devices manufactured by or for TI ("TI Devices").
16* No hardware patent is licensed hereunder.
17*
18* Redistributions must preserve existing copyright notices and reproduce this license
19* (including the above copyright notice and the disclaimer and (if applicable) source
20* code license limitations below) in the documentation and/or other materials provided
21* with the distribution
22*
23* Redistribution and use in binary form, without modification, are permitted provided
24* that the following conditions are met:
25*
26* * No reverse engineering, decompilation, or disassembly of this software is
27* permitted with respect to any software provided in binary form.
28*
29* * any redistribution and use are licensed by TI for use only with TI Devices.
30*
31* * Nothing shall obligate TI to provide you with source code for the software
32* licensed and provided to you in object code.
33*
34* If software source code is provided to you, modification and redistribution of the
35* source code are permitted provided that the following conditions are met:
36*
37* * any redistribution and use of the source code, including any resulting derivative
38* works, are licensed by TI for use only with TI Devices.
39*
40* * any redistribution and use of any object code compiled from the source code
41* and any resulting derivative works, are licensed by TI for use only with TI Devices.
42*
43* Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44*
45* may be used to endorse or promote products derived from this software without
46* specific prior written permission.
47*
48* DISCLAIMER.
49*
50* THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53* IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59* OF THE POSSIBILITY OF SUCH DAMAGE.
60*
61*/
62
85/*
86 * Below are the global requirements which are met by this EthTrcv
87 * driver which can't be mapped to a particular source ID
88 */
89/*
90 * Requirements: MCAL-1751, MCAL-1754, MCAL-1755,
91 * MCAL-1756, MCAL-1757, MCAL-1818, MCAL-981
92 */
93
94#ifndef ETHTRCV_H_
95#define ETHTRCV_H_
96
97/* ========================================================================== */
98/* Include Files */
99/* ========================================================================== */
100
101/* Requirements: MCAL-1825 */
102#include "EthTrcv_Types.h"
103
104#ifdef __cplusplus
105extern "C" {
106#endif
107
108/* ========================================================================== */
109/* Macros & Typedefs */
110/* ========================================================================== */
111
118/*
119 * Requirements: MCAL-1752
120 */
122#define ETHTRCV_SW_MAJOR_VERSION (11U)
124#define ETHTRCV_SW_MINOR_VERSION (0U)
126#define ETHTRCV_SW_PATCH_VERSION (0U)
135/*
136 * Requirements: MCAL-1752
137 */
139#define ETHTRCV_AR_RELEASE_MAJOR_VERSION (4U)
141#define ETHTRCV_AR_RELEASE_MINOR_VERSION (3U)
143#define ETHTRCV_AR_RELEASE_REVISION_VERSION (1U)
151#define ETHTRCV_VENDOR_ID (44U)
153#define ETHTRCV_MODULE_ID (73U)
155#define ETHTRCV_INSTANCE_ID (0U)
171#define ETHTRCV_INIT_ID ((uint8) 0x01U)
172
174#define ETHTRCV_CONTROLLER_INIT_ID ((uint8) 0x02U)
175
177#define ETHTRCV_SETTRCVMODE_ID ((uint8) 0x03U)
178
180#define ETHTRCV_GETTRCVMODE_ID ((uint8) 0x04U)
181
183#define ETHTRCV_SRTAUTONEGOTIA_ID ((uint8) 0x05U)
184
186#define ETHTRCV_GETLNKSTATE_ID ((uint8) 0x06U)
187
189#define ETHTRCV_GETBAUD_ID ((uint8) 0x07U)
190
192#define ETHTRCV_GETDPLXMODE_ID ((uint8) 0x08U)
193
195#define ETHTRCV_READMIIIND_ID ((uint8) 0x09U)
196
198#define ETHTRCV_WRITEMIIIND_ID ((uint8) 0x0AU)
199
201#define ETHTRCV_VERSION_ID ((uint8) 0x0BU)
202
204#define ETHTRCV_MAINFCT_WRITE_ID ((uint8) 0x0CU)
205
207#define ETHTRCV_GETTRCVWKUPMODE_ID ((uint8) 0x0DU)
208
210#define ETHTRCV_SETTRCVWKUPMODE_ID ((uint8) 0x0EU)
211
213#define ETHTRCV_CHKWKUP_ID ((uint8) 0x0FU)
214
216#define ETHTRCV_SETPHYTESTMODE_ID ((uint8) 0x10U)
217
219#define ETHTRCV_SETPHYLOOPBACKMODE_ID ((uint8) 0x11U)
220
222#define ETHTRCV_GETPHYSIGNALQUALITY_ID ((uint8) 0x12U)
223
225#define ETHTRCV_SETPHYTXMODE_ID ((uint8) 0x13U)
226
228#define ETHTRCV_GETCABLEDIAGNOSTICSRESULT_ID ((uint8) 0x014U)
229
231#define ETHTRCV_GETPHYIDENTIFIER_ID ((uint8) 0x015U)
232
242/*
243 * Requirements: MCAL-1763
244 */
245
246#ifndef ETHTRCV_E_INV_TRCV_IDX
248#define ETHTRCV_E_INV_TRCV_IDX ((uint8) 0x01U)
249#endif
250
251#ifndef ETHTRCV_E_UNINIT
253#define ETHTRCV_E_UNINIT ((uint8) 0x02U)
254#endif
255
256#ifndef ETHTRCV_E_PARAM_POINTER
258#define ETHTRCV_E_PARAM_POINTER ((uint8) 0x03U)
259#endif
260
261#ifndef ETHTRCV_E_INIT_FAILED
263#define ETHTRCV_E_INIT_FAILED ((uint8) 0x04U)
264#endif
265
266#ifndef ETHTRCV_E_NOT_SUPPORTED
268#define ETHTRCV_E_NOT_SUPPORTED ((uint8) 0x05U)
269#endif
272/* ========================================================================== */
273/* Structures and Enums */
274/* ========================================================================== */
275
276/* None */
277
278/* ========================================================================== */
279/* Function Declarations */
280/* ========================================================================== */
281
303FUNC(void, ETHTRCV_CODE)
304EthTrcv_Init(P2CONST(EthTrcv_ConfigType, AUTOMATIC, ETHTRCV_PBCFG) CfgPtr);
305
329FUNC(Std_ReturnType, ETHTRCV_CODE)
331
332
333#if (STD_ON == ETHTRCV_SETTRANSCEIVERMODE_API)
360FUNC(Std_ReturnType, ETHTRCV_CODE)
362 EthTrcv_ModeType CtrlMode);
363#endif
364
365#if (STD_ON == ETHTRCV_GETTRANSCEIVERMODE_API)
389FUNC(Std_ReturnType, ETHTRCV_CODE)
391 EthTrcv_ModeType *TrcvModePtr);
392#endif
393
394#if (ETHTRCV_WAKEUPSUPPORT_API != ETHTRCV_WAKEUP_NOT_SUPPORTED)
426FUNC(Std_ReturnType, ETHTRCV_CODE)
427EthTrcv_SetTransceiverWakeupMode(uint8 TrcvIdx,
428 EthTrcv_WakeupModeType TrcvWakeupMode);
429#endif
430
431#if (ETHTRCV_WAKEUPSUPPORT_API != ETHTRCV_WAKEUP_NOT_SUPPORTED)
458FUNC(Std_ReturnType, ETHTRCV_CODE)
459EthTrcv_GetTransceiverWakeupMode(uint8 TrcvIdx,
460 EthTrcv_WakeupModeType *TrcvWakeupModePtr);
461#endif
462
463#if (ETHTRCV_WAKEUPSUPPORT_API != ETHTRCV_WAKEUP_NOT_SUPPORTED)
489FUNC(Std_ReturnType, ETHTRCV_CODE)
490EthTrcv_CheckWakeup(uint8 TrcvIdx);
491#endif
492
493/* Requirements: MCAL-1820 */
494/* The function is not required or called by an upper layer BSW software
495 * component. So making internal */
496#if (STD_ON == ETHTRCV_STARTAUTONEGOTIATION_API)
521FUNC(Std_ReturnType, ETHTRCV_CODE)
523#endif
524
525#if (STD_ON == ETHTRCV_GETLINKSTATE_API)
551FUNC(Std_ReturnType, ETHTRCV_CODE)
553 EthTrcv_LinkStateType *LinkStatePtr);
554#endif
555
556/*
557 * Requirements: MCAL-1821
558 */
559/* The function is not required or called by an upper layer BSW software
560 * component. So making internal */
561#if (STD_ON == ETHTRCV_GETBAUDRATE_API)
588FUNC(Std_ReturnType, ETHTRCV_CODE)
590 EthTrcv_BaudRateType *BaudRatePtr);
591#endif
592
593#if (STD_ON == ETHTRCV_GETDUPLEXMODE_API)
619FUNC(Std_ReturnType, ETHTRCV_CODE)
621 EthTrcv_DuplexModeType *DuplexModePtr);
622#endif
623
624#if (STD_ON == ETHTRCV_SETPHYTESTMODE_API)
647FUNC(Std_ReturnType, ETHTRCV_CODE)
649 EthTrcv_PhyTestModeType Mode);
650#endif
651
652#if (STD_ON == ETHTRCV_SETPHYLOOPBACKMODE_API)
676FUNC(Std_ReturnType, ETHTRCV_CODE)
678 EthTrcv_PhyLoopbackModeType Mode);
679#endif
680
681#if (STD_ON == ETHTRCV_GETPHYSIGNALQUALITY_API)
706FUNC(Std_ReturnType, ETHTRCV_CODE)
708 uint32* SignalQualityPtr);
709#endif
710
711#if (STD_ON == ETHTRCV_SETPHYTXMODE_API)
735FUNC(Std_ReturnType, ETHTRCV_CODE)
736 EthTrcv_SetPhyTxMode(uint8 TrcvIdx,
737 EthTrcv_PhyTxModeType Mode);
738#endif
739
740#if (STD_ON == ETHTRCV_GETCABLEDIAGNOSTICSRESULT_API)
765FUNC(Std_ReturnType, ETHTRCV_CODE)
767 EthTrcv_CableDiagResultType * ResultPtr);
768#endif
769
770#if (STD_ON == ETHTRCV_GETPHYIDENTIFIER_API)
803FUNC(Std_ReturnType, ETHTRCV_CODE)
805 uint32* OrgUniqueIdPtr,
806 uint8* ModelNrPtr,
807 uint8* RevisionNrPtr);
808#endif
809
810#if (STD_ON == ETHTRCV_VERSION_INFO_API)
832FUNC(void, ETHTRCV_CODE)
833EthTrcv_GetVersionInfo(P2VAR(Std_VersionInfoType, AUTOMATIC, ETHTRCV_APPL_DATA) VersionInfoPtr);
834#endif
835
867/* Important Note:
868 * There is discrepancy in the Eth and EthTrcv specs. Data type for RegVal in
869 * EthTrcv_ReadMiiIndication is uint8 as per Eth Trcv spec where as Eth_ReadMii
870 * takes uint16 pointer RegValPtr. To avoid data loss we change RegVal data type
871 * to uint16 */
872FUNC(void, ETHTRCV_CODE)
874 uint8 TrcvIdx,
875 uint8 RegIdx,
876 uint16 RegVal);
877
907FUNC(void, ETHTRCV_CODE)
909 uint8 TrcvIdx,
910 uint8 RegId);
911
931FUNC(void, ETHTRCV_CODE)
933
934#ifdef __cplusplus
935}
936#endif
937
938#endif /* ETHTRCV_H_ */
939
Std_ReturnType EthTrcv_GetLinkState(uint8 TrcvIdx, EthTrcv_LinkStateType *LinkStatePtr)
This function obtains the link state of the indexed transceiver.
Std_ReturnType EthTrcv_SetPhyTxMode(uint8 TrcvIdx, EthTrcv_PhyTxModeType Mode)
This function Activates a given transmission mode.
Std_ReturnType EthTrcv_GetTransceiverMode(uint8 TrcvIdx, EthTrcv_ModeType *TrcvModePtr)
This function obtains the state of the indexed transceiver.
void EthTrcv_Init(const EthTrcv_ConfigType *CfgPtr)
This function initializes the Ethernet Transceiver controller. All the required initialization for th...
Std_ReturnType EthTrcv_GetDuplexMode(uint8 TrcvIdx, EthTrcv_DuplexModeType *DuplexModePtr)
This function obtains the duplex mode of the indexed transceiver.
void EthTrcv_ReadMiiIndication(uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint16 RegVal)
This function is called when information has been read out via MII interface. Triggered by previous E...
Std_ReturnType EthTrcv_GetPhyIdentifier(uint8 TrcvIdx, uint32 *OrgUniqueIdPtr, uint8 *ModelNrPtr, uint8 *RevisionNrPtr)
This function Obtains the PHY identifier of the Ethernet Transceiver according to IEEE 802....
void EthTrcv_GetVersionInfo(Std_VersionInfoType *VersionInfoPtr)
Function returns the version information of this module.
void EthTrcv_MainFunction(void)
This function is used for polling state changes and wakeup reasons. It calls EthIf_TrcvModeIndication...
Std_ReturnType EthTrcv_GetCableDiagnosticsResult(uint8 TrcvIdx, EthTrcv_CableDiagResultType *ResultPtr)
This function Retrieves the cable diagnostics result of a given transceiver.
Std_ReturnType EthTrcv_SetPhyTestMode(uint8 TrcvIdx, EthTrcv_PhyTestModeType Mode)
This function Activates a given test mode.
Std_ReturnType EthTrcv_GetBaudRate(uint8 TrcvIdx, EthTrcv_BaudRateType *BaudRatePtr)
This function obtains the baud rate of the indexed transceiver.
Std_ReturnType EthTrcv_GetPhySignalQuality(uint8 TrcvIdx, uint32 *SignalQualityPtr)
This function Obtains the current signal quality of the link of the indexed transceiver.
Std_ReturnType EthTrcv_SetTransceiverMode(uint8 TrcvIdx, EthTrcv_ModeType CtrlMode)
This function enables / disables the indexed transceiver.
Std_ReturnType EthTrcv_TransceiverInit(uint8 TrcvIdx)
This function initializes the Ethernet Transceiver controller. All the required initialization for th...
void EthTrcv_WriteMiiIndication(uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegId)
This function is called when information has been written via MII interface. Triggered by previous Et...
Std_ReturnType EthTrcv_StartAutoNegotiation(uint8 TrcvIdx)
This function restarts the negotiation of the transmission parameters used by the indexed.
Std_ReturnType EthTrcv_SetPhyLoopbackMode(uint8 TrcvIdx, EthTrcv_PhyLoopbackModeType Mode)
This function Activates a given loopback mode.