-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcy_pdaltmode_usb4.h
executable file
·262 lines (240 loc) · 8.75 KB
/
cy_pdaltmode_usb4.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
/***************************************************************************//**
* \file cy_pdaltmode_usb4.h
* \version 1.0
*
* \brief
* This header file defines the data structures and function prototypes associated
* with the USB4 mode handler.
*
********************************************************************************
* \copyright
* Copyright 2024, Cypress Semiconductor Corporation (an Infineon company)
* or an affiliate of Cypress Semiconductor Corporation. All rights reserved.
* You may use this file only in accordance with the license, terms, conditions,
* disclaimers, and limitations in the end user license agreement accompanying
* the software package with which this file was provided.
*******************************************************************************/
#ifndef _CY_PDALTMODE_USB4_H_
#define _CY_PDALTMODE_USB4_H_
/*****************************************************************************
* Header file addition
*****************************************************************************/
#include <stdint.h>
#include "cy_pdaltmode_defines.h"
/**
* \addtogroup group_pdaltmode_usb4
* \{
* Provides APIs and data structures to support USB4 functionality.
*
********************************************************************************
*
* \defgroup group_pdaltmode_usb4_enums Enumerated Types
* \defgroup group_pdaltmode_usb4_functions Functions
*/
/*****************************************************************************
* Global function declaration
*****************************************************************************/
/**
* \addtogroup group_pdaltmode_usb4_functions
* \{
*/
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_Enter
****************************************************************************//**
*
* Initiate USB4 enter mode command to port partner or cable.
*
* \param ptrAltModeContext
* PD Alt Mode Library Context pointer
*
* \param sopType
* SOP packet type
*
* \param retry
* Indicates that the request is being retried
*
* \return
* New VDM manager task
*
*******************************************************************************/
cy_en_pdaltmode_vdm_task_t Cy_PdAltMode_Usb4_Enter(cy_stc_pdaltmode_context_t *ptrAltModeContext, cy_en_pd_sop_t sopType, bool retry);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_UpdateDataStatus
****************************************************************************//**
*
* Get USB4 enter mode command parameters.
*
* \param ptrAltModeContext
* PdAltMode Library Context pointer
*
* \param eudo
* Enter USB Data Object used to enter USB4
*
* \param val
* Original value of the MUX data status register
*
* \return
* Updated value of the MUX data status register
*
*******************************************************************************/
uint32_t Cy_PdAltMode_Usb4_UpdateDataStatus (cy_stc_pdaltmode_context_t *ptrAltModeContext, cy_pd_pd_do_t eudo, uint32_t val);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_DataRstRetryCbk
****************************************************************************//**
*
* Data Reset Retry callback
*
* \param id
* Timer index
*
* \param context
* Callback Context pointer
*
* \return
* None
*
*******************************************************************************/
void Cy_PdAltMode_Usb4_DataRstRetryCbk (cy_timer_id_t id, void *context);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_TbtHandler
****************************************************************************//**
*
* USB4 TBT handler
*
* \param ptrAltModeContext
* PD Alt Mode Library Context pointer
*
* \param vdmEvt
* VDM Task Manager event
*
* \return
* Return VDM Task
*
*******************************************************************************/
cy_en_pdaltmode_vdm_task_t Cy_PdAltMode_Usb4_TbtHandler(cy_stc_pdaltmode_context_t *ptrAltModeContext, cy_en_pdaltmode_vdm_evt_t vdmEvt);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_GetEudo
****************************************************************************//**
*
* Returns EUDO buffer pointer
*
* \param ptrAltModeContext
* PD Alt Mode Library Context pointer
*
* \return
* EUDO buffer pointer
*
*******************************************************************************/
cy_pd_pd_do_t* Cy_PdAltMode_Usb4_GetEudo(cy_stc_pdaltmode_context_t *ptrAltModeContext);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_EvalCblResp
****************************************************************************//**
*
* Evaluates accepted cable Enter USB command response.
*
* \param ptrAltModeContext
* PD Alt Mode Library Context pointer
*
* \return
* Next VDM manager task to perform.
*
*******************************************************************************/
cy_en_pdaltmode_vdm_task_t Cy_PdAltMode_Usb4_EvalCblResp(cy_stc_pdaltmode_context_t *ptrAltModeContext);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_FailCblResp
****************************************************************************//**
*
* Evaluates failed cable Enter USB command response.
*
* \param ptrAltModeContext
* PD Alt Mode Library Context pointer
*
* \return
* Next VDM manager task to perform
*
*******************************************************************************/
cy_en_pdaltmode_vdm_task_t Cy_PdAltMode_Usb4_FailCblResp(cy_stc_pdaltmode_context_t *ptrAltModeContext);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_DataRstRecCbk
****************************************************************************//**
*
* Callback to handle Data Reset command response.
*
* \param ptrPdStackContext
* PD Stack Library Context pointer
*
* \param status
* Data Reset response status
*
* \param recVdm
* Data Reset response pointer
*
* \return
* None
*
*******************************************************************************/
void Cy_PdAltMode_Usb4_DataRstRecCbk(cy_stc_pdstack_context_t *ptrPdStackContext, cy_en_pdstack_resp_status_t status, const cy_stc_pdstack_pd_packet_t* recVdm);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_EvalAcceptResp
****************************************************************************//**
*
* Evaluates accepted UFP Enter USB command response.
*
* \param ptrAltModeContext
* PD Alt Mode Library Context pointer
*
* \return
* Next VDM manager task to perform
*
*******************************************************************************/
cy_en_pdaltmode_vdm_task_t Cy_PdAltMode_Usb4_EvalAcceptResp(cy_stc_pdaltmode_context_t *ptrAltModeContext);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_EvalFailResp
****************************************************************************//**
*
* Evaluates failed UFP Enter USB command response
*
* \param ptrAltModeContext
* PD Alt Mode Library Context pointer
*
* \return
* Next VDM manager task to perform
*
*******************************************************************************/
cy_en_pdaltmode_vdm_task_t Cy_PdAltMode_Usb4_EvalFailResp(cy_stc_pdaltmode_context_t *ptrAltModeContext);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_EnterUsb4RetryCbk
****************************************************************************//**
*
* Callback to process Enter USB command retry attempt.
*
* \param id Timer ID used to postpone received Attention VDM
* \param context Timer callback context
*
* \return None
*
*******************************************************************************/
void Cy_PdAltMode_Usb4_EnterUsb4RetryCbk (cy_timer_id_t id, void *context);
/*******************************************************************************
* Function name: Cy_PdAltMode_Usb4_EnterRecCbk
****************************************************************************//**
*
* Callback to evaluate Enter_USB command response.
*
* \param ptrPdStackContext
* PD Stack Library Context pointer
*
* \param status
* Data Reset response status
*
* \param recVdm
* Data Reset response pointer
*
* \return
* None
*
*******************************************************************************/
void Cy_PdAltMode_Usb4_EnterRecCbk(cy_stc_pdstack_context_t *ptrPdStackContext, cy_en_pdstack_resp_status_t status, const cy_stc_pdstack_pd_packet_t* recVdm);
/** \} group_pdaltmode_usb4_functions */
/** \} group_pdaltmode_usb4 */
#endif /* _CY_PDALTMODE_USB4_H_ */