-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcy_pdaltmode_host_details.h
executable file
·252 lines (225 loc) · 8.3 KB
/
cy_pdaltmode_host_details.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
/***************************************************************************//**
* \file cy_pdaltmode_host_details.h
* \version 1.0
*
* \brief
* This header file defines the data structures and function prototypes associated
* with the Host Details feature.
*
********************************************************************************
* \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_HOST_DETAILS_H_
#define _CY_PDALTMODE_HOST_DETAILS_H_
/*****************************************************************************
* Header file addition
*****************************************************************************/
#include "cy_pdaltmode_defines.h"
/**
* \addtogroup group_pdaltmode_intel
* \{
*
********************************************************************************
*
* \defgroup group_pdaltmode_intel_macros Macros
* \defgroup group_pdaltmode_intel_enums Enumerated Types
* \defgroup group_pdaltmode_intel_data_structures Data Structures
* \defgroup group_pdaltmode_intel_functions Functions
*/
/*******************************************************************************
* MACRO definition
******************************************************************************/
/**
* \addtogroup group_pdaltmode_intel_macros
* \{
*/
#if STORE_DETAILS_OF_HOST
/** Postponing Ridge update in case tAME timer is still running */
#define DO_NOT_UPDATE_US_IF_T_AME_TIMER_IS_RUNNING (1u)
#endif /* STORE_DETAILS_OF_HOST */
/** \} group_pdaltmode_intel_macros */
/*****************************************************************************
* Global function declaration
*****************************************************************************/
/**
* \addtogroup group_pdaltmode_intel_functions
* \{
*/
/*******************************************************************************
* Function name: Cy_PdAltMode_HostDetails_Task
****************************************************************************//**
*
* Host Details Task
*
* \param ptrAltModeContext
* Pointer to the Alt Mode context
*
* \return
* None
*
*******************************************************************************/
void Cy_PdAltMode_HostDetails_Task(cy_stc_pdaltmode_context_t *ptrAltModeContext);
/*******************************************************************************
* Function name: Cy_PdAltMode_HostDetails_CheckIfRidgeNeedsToBeUpdated
****************************************************************************//**
*
* Check if Ridge needs to be updated.
*
* \param ptrAltModeContext
* PDAltMode Library Context pointer
*
* \param regConfig
* Ridge Register
*
* \return
* Flag that indicates if Ridge needs update.
*
*******************************************************************************/
bool Cy_PdAltMode_HostDetails_CheckIfRidgeNeedsToBeUpdated(cy_stc_pdaltmode_context_t *ptrAltModeContext, uint32_t regConfig);
/*******************************************************************************
* Function name: Cy_PdAltMode_HostDetails_StatusUpdateAfterHostConnection
****************************************************************************//**
*
* Status update after host connection
*
* \param ptrAltModeContext
* PDAltMode Library Context pointer
*
* \return
* None
*
*******************************************************************************/
void Cy_PdAltMode_HostDetails_StatusUpdateAfterHostConnection(cy_stc_pdaltmode_context_t *ptrAltModeContext);
/*******************************************************************************
* Function name: Cy_PdAltMode_HostDetails_ChangeDsPortBehaviorBasedOnHostCapability
****************************************************************************//**
*
* Change Ds port behavior based on host capability.
*
* \param ptrAltModeContext
* PdAltMode Library Context pointer
*
* \return
* None
*
*******************************************************************************/
void Cy_PdAltMode_HostDetails_ChangeDsPortBehaviorBasedOnHostCapability(cy_stc_pdaltmode_context_t *ptrAltModeContext);
/*******************************************************************************
* Function name: Cy_PdAltMode_HostDetails_ControlModeBasedOnHostType
****************************************************************************//**
*
* Control mode based on host type.
*
* \param ptrAltModeContext
* PdAltMode Library Context pointer
*
* \param modeMask
* Host Details Control Mode mask
*
* \return
* None
*
*******************************************************************************/
void Cy_PdAltMode_HostDetails_ControlModeBasedOnHostType(cy_stc_pdaltmode_context_t *ptrAltModeContext, uint8_t modeMask);
/*******************************************************************************
* Function name: Cy_PdAltMode_HostDetails_Init
****************************************************************************//**
*
* Initiate Host Details structure.
*
* \param hostAltModeContext
* Host PdAltMode Library Context pointer
*
* \param deviceAltModeContext
* Device PdAltMode Library Context pointer
*
* \return
* None
*
*******************************************************************************/
void Cy_PdAltMode_HostDetails_Init(cy_stc_pdaltmode_context_t *hostAltModeContext, cy_stc_pdaltmode_context_t *deviceAltModeContext );
/*******************************************************************************
* Function name: Cy_PdAltMode_HostDetails_SendHardResetCbk
****************************************************************************//**
*
* Timer Callback to send Hard Reset.
*
* \param id
* Timer index
*
* \param ptrContext
* Callback Context pointer
*
* \return
* None.
*
*******************************************************************************/
void Cy_PdAltMode_HostDetails_SendHardResetCbk(cy_timer_id_t id, void * ptrContext);
/*******************************************************************************
* Function name: Cy_PdAltMode_HostDetails_RestartDpmState
****************************************************************************//**
*
* DPM callback to Reset DPM.
*
* \param id
* Timer index
*
* \param ptrContext
* Callback Context pointer
*
* \return
* None
*
*******************************************************************************/
void Cy_PdAltMode_HostDetails_RestartDpmState(cy_timer_id_t id, void * ptrContext);
/*******************************************************************************
* Function name: Cy_PdAltMode_HostDetails_GetStatus
****************************************************************************//**
*
* Returns Host Details status pointer.
*
* \param port
* Selected port
*
* \return
* Returns pointer to host context status structure
*
*******************************************************************************/
cy_stc_pdaltmode_host_details_t* Cy_PdAltMode_HostDetails_GetStatus(uint8_t port);
/*******************************************************************************
* Function name: Cy_PdAltMode_HostDetails_ClearRidgeRdyBitOnDisconnect
****************************************************************************//**
*
* Clears RidgeRdy bit on disconnect.
*
* \param ptrAltModeContext
* Pointer to PD Alternate Mode context
*
* \return
* None
*
*******************************************************************************/
void Cy_PdAltMode_HostDetails_ClearRidgeRdyBitOnDisconnect(cy_stc_pdaltmode_context_t *ptrAltModeContext);
/*******************************************************************************
* Function Name: Cy_PdAltMode_HostDetails_IsUsb4Connected
****************************************************************************//**
*
* Returns USB4 connection status.
*
* \param ptrAltModeContext
* Pointer to PD Alternate Mode context
*
* \return
* true if USB4 is connected, false otherwise.
*
*******************************************************************************/
bool Cy_PdAltMode_HostDetails_IsUsb4Connected(cy_stc_pdaltmode_context_t *ptrAltModeContext);
/** \} group_pdaltmode_intel_functions */
/** \} group_pdaltmode_intel */
#endif /* _CY_PDALTMODE_HOST_DETAILS_H_ */
/* [] END OF FILE */