SDL API Guide for J7200
sdl_pok_def.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Texas Instruments Incorporated.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  */
47 #ifndef SDL_POK_DEF_H
48 #define SDL_POK_DEF_H
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 #include <sdl_types.h>
55 #include <include/soc.h>
56 #if defined (SOC_J7200)
57 #include <src/ip/pok/soc/j7200/sdl_ip_pok.h>
58 #endif
59 
73 typedef struct SDL_pokShiftsAndMasks
74 {
75  volatile uint32_t *pokAddr;
76  volatile uint32_t *pokOVAddr;
77  volatile uint32_t *pokDetAddr;
78  volatile uint32_t *pokEnSelAddr;
79  volatile uint32_t *pokEnPPAddr;
80  volatile uint32_t *deglitchSelAddr;
81  uint32_t pokEnPPMask;
82  uint32_t pokEnPPShift;
83  uint32_t hystMask;
84  uint32_t hystShift;
85  uint32_t hystOVMask;
86  uint32_t hystOVShift;
87  uint32_t vdDetMask;
88  uint32_t vdDetShift;
89  uint32_t vdDetOVMask;
90  uint32_t vdDetOVShift;
91  uint32_t detEnMask;
92  uint32_t detEnShift;
93  uint32_t ovSelMask;
94  uint32_t ovSelShift;
95  uint32_t pokEnSelMask;
96  uint32_t pokEnSelShift;
97  uint32_t trimMask;
98  uint32_t trimShift;
99  uint32_t trimOVMask;
100  uint32_t trimOVShift;
101  uint32_t deglitchSelMask;
104 
105 typedef struct SDL_pokPRGInfo
106 {
107  volatile uint32_t *addr;
108  uint32_t pokEnPPMask;
109  uint32_t pokEnPPShift;
111 
127 typedef uint8_t SDL_pok_type;
128 
130 #define SDL_TYPE_POK ((SDL_pok_type) 1U)
131 
132 #define SDL_TYPE_POK_SA ((SDL_pok_type) 2U)
133 
134 /* @} */
135 
147 typedef uint8_t SDL_pwrss_deglitch;
148 
150 #define SDL_PWRSS_DEGLITCH_5US ((SDL_pwrss_deglitch) 0U)
151 
152 #define SDL_PWRSS_DEGLITCH_10US ((SDL_pwrss_deglitch) 1U)
153 
154 #define SDL_PWRSS_DEGLITCH_15US ((SDL_pwrss_deglitch) 2U)
155 
156 #define SDL_PWRSS_DEGLITCH_20US ((SDL_pwrss_deglitch) 3U)
157 
158 #define SDL_PWRSS_DEGLITCH_GET_VALUE ((SDL_pwrss_deglitch) 4U)
159 
160 #define SDL_PWRSS_DEGLITCH_NO_ACTION ((SDL_pwrss_deglitch) 5U)
161 
162 /* @} */
163 
175 typedef uint8_t SDL_pwrss_pp;
176 
178 #define SDL_PWRSS_PP_MODE_DISABLE ((SDL_pwrss_pp) 0U)
179 
180 #define SDL_PWRSS_PP_MODE_ENABLE ((SDL_pwrss_pp) 1U)
181 
182 #define SDL_PWRSS_PP_MODE_NO_ACTION ((SDL_pwrss_pp) 2U)
183 
184 /* @} */
185 
186 
198 typedef uint8_t SDL_pwrss_hysteresis;
199 
201 #define SDL_PWRSS_SET_HYSTERESIS_DISABLE ((SDL_pwrss_hysteresis) 0U)
202 
203 #define SDL_PWRSS_SET_HYSTERESIS_ENABLE ((SDL_pwrss_hysteresis) 1U)
204 
205 #define SDL_PWRSS_GET_HYSTERESIS_VALUE ((SDL_pwrss_hysteresis) 2U)
206 
207 #define SDL_PWRSS_HYSTERESIS_NO_ACTION ((SDL_pwrss_hysteresis) 3U)
208 
209 /* @} */
210 
233 typedef uint8_t SDL_pwrss_trim;
240 #define SDL_PWRSS_MAX_TRIM_VALUE ((SDL_pwrss_trim) 127U)
241 
243 #define SDL_PWRSS_TRIM_NO_ACTION ((SDL_pwrss_trim) 128U)
244 
246 #define SDL_PWRSS_GET_TRIM_VALUE ((SDL_pwrss_trim) 129U)
247 
249 #define SDL_PWRSS_INVALID_TRIM_VALUE ((SDL_pwrss_trim) 255U)
250 
251 
252 /* @} */
253 
264 typedef uint8_t SDL_pwrss_vd_mode;
265 
267 #define SDL_PWRSS_SET_UNDER_VOLTAGE_DET_ENABLE ((SDL_pwrss_vd_mode) 0U)
268 
269 #define SDL_PWRSS_SET_OVER_VOLTAGE_DET_ENABLE ((SDL_pwrss_vd_mode) 1U)
270 
271 #define SDL_PWRSS_SET_PP_VOLTAGE_DET_ENABLE ((SDL_pwrss_vd_mode) 2U)
272 
273 #define SDL_PWRSS_GET_VOLTAGE_DET_MODE ((SDL_pwrss_vd_mode) 3U)
274 
275 #define SDL_PWRSS_VOLTAGE_DET_NO_ACTION ((SDL_pwrss_vd_mode) 4U)
276 
277 /* @} */
278 
289 typedef uint8_t SDL_POK_detection_status;
291 #define SDL_POK_DETECTION_DISABLED ((SDL_POK_detection_status) 0U)
292 
293 #define SDL_POK_DETECTION_ENABLED ((SDL_POK_detection_status) 1U)
294 
295 /* @} */
296 
307 typedef uint8_t SDL_POK_detection;
309 #define SDL_POK_DETECTION_DISABLE ((SDL_POK_detection) 0U)
310 
311 #define SDL_POK_DETECTION_ENABLE ((SDL_POK_detection) 1U)
312 
313 #define SDL_POK_DETECTION_NO_ACTION ((SDL_POK_detection) 2U)
314 
315 #define SDL_POK_GET_DETECTION_VALUE ((SDL_POK_detection) 3U)
316 
317 
318 /* @} */
319 
330 typedef uint8_t SDL_POK_enSelSrc;
332 #define SDL_POK_ENSEL_HWTIEOFFS ((SDL_POK_enSelSrc) 0U)
333 
334 #define SDL_POK_ENSEL_PRG_CTRL ((SDL_POK_enSelSrc) 1U)
335 
336 #define SDL_POK_ENSEL_NO_ACTION ((SDL_POK_enSelSrc) 2U)
337 
338 #define SDL_POK_GET_ENSEL_VALUE ((SDL_POK_enSelSrc) 3U)
339 
340 /* @} */
341 
352 typedef uint8_t SDL_por_trim_sel;
353 
355 #define SDL_POR_TRIM_SELECTION_FROM_HHV_DEFAULT ((uint8_t) 0U)
356 
359 #define SDL_POR_TRIM_SELECTION_FROM_CTRL_REGS ((uint8_t) 1U)
360 
362 #define SDL_POR_TRIM_SELECTION_NO_CHANGE ((uint8_t) 2U)
363 
365 #define SDL_POR_TRIM_SELECTION_GET_VALUE ((uint8_t) 3U)
366 
367 
368 /* @} */
369 
380 typedef uint8_t SDL_por_module_status ;
381 
383 #define SDL_POR_MODULE_STATUS_FUNCTIONAL_MODE ((SDL_por_module_status) 0U)
384 
385 #define SDL_POR_MODULE_STATUS_RESET_MODE ((SDL_por_module_status) 1U)
386 /* @} */
387 
388 
398 typedef SDL_wkup_ctrl_mmr_cfg0Regs SDL_wkupCtrlRegsBase_t;
399 
400 /* @} */
401 
402 /* @} */
415 typedef struct SDL_pokCfg
416 {
434 
442 typedef struct SDL_pokVal
443 {
460 } SDL_pokVal_t;
461 
462 
471 typedef struct SDL_pokPorCfg
472 {
478 
487 typedef struct SDL_pokPorVal
488 {
494 
495 /* @} */
496 
497 int32_t SDL_pok_getPRGInfo(SDL_wkupCtrlRegsBase_t *pBaseAddress,
498  SDL_PRG_Inst instance,
499  SDL_pokPRGInfo_t *pPRGInfo);
500 
501 
502 /* Function to get the error signal wrt given POKID for v1 of IP */
503 void sdlGetErrSig(uint32_t id, SDL_POK_Inst *instance, uint32_t *esm_err_sig_ov, uint32_t *esm_err_sig_uv, bool *usePorCfgFlag);
504 
507 #ifdef __cplusplus
508 }
509 #endif /* extern "C" */
510 
511 #endif /* end of SDL_POK_DEF_H definition */
SDL_POK_enSelSrc pokEnSelSrcCtrl
Definition: sdl_pok_def.h:457
uint32_t ovSelShift
Definition: sdl_pok_def.h:94
POK Configuration structure.
Definition: sdl_pok_def.h:415
uint32_t pokEnSelMask
Definition: sdl_pok_def.h:95
uint8_t SDL_pwrss_trim
Definition: sdl_pok_def.h:233
POK functionality of POR Configuration structure.
Definition: sdl_pok_def.h:471
SDL_POK_detection_status detectionStatus
Definition: sdl_pok_def.h:455
uint32_t pokEnPPMask
Definition: sdl_pok_def.h:81
SDL_wkup_ctrl_mmr_cfg0Regs SDL_wkupCtrlRegsBase_t
Definition: sdl_pok_def.h:398
uint32_t trimShift
Definition: sdl_pok_def.h:98
SDL_POK_enSelSrc pokEnSelSrcCtrl
Definition: sdl_pok_def.h:430
SDL_pwrss_trim trim
Definition: sdl_pok_def.h:451
uint8_t SDL_pok_type
Definition: sdl_pok_def.h:127
SDL_pwrss_deglitch deglitch
Definition: sdl_pok_def.h:432
uint8_t SDL_pwrss_vd_mode
Definition: sdl_pok_def.h:264
uint32_t hystMask
Definition: sdl_pok_def.h:83
SDL_pwrss_deglitch deglitch
Definition: sdl_pok_def.h:459
uint32_t pokEnPPShift
Definition: sdl_pok_def.h:82
volatile uint32_t * pokAddr
Definition: sdl_pok_def.h:75
uint8_t SDL_por_module_status
Definition: sdl_pok_def.h:380
uint32_t vdDetOVShift
Definition: sdl_pok_def.h:90
Definition: sdl_pok_def.h:105
volatile uint32_t * pokDetAddr
Definition: sdl_pok_def.h:77
SDL_por_trim_sel trim_select
Definition: sdl_pok_def.h:476
uint8_t SDL_pwrss_deglitch
Definition: sdl_pok_def.h:147
SDL_pwrss_trim trimOV
Definition: sdl_pok_def.h:426
uint32_t hystOVMask
Definition: sdl_pok_def.h:85
uint8_t SDL_por_trim_sel
Definition: sdl_pok_def.h:352
SDL_POK_detection detectionCtrl
Definition: sdl_pok_def.h:428
uint8_t SDL_POK_detection
Definition: sdl_pok_def.h:307
uint32_t hystShift
Definition: sdl_pok_def.h:84
uint8_t SDL_pwrss_pp
Definition: sdl_pok_def.h:175
uint32_t pokEnPPShift
Definition: sdl_pok_def.h:109
uint8_t SDL_POK_detection_status
Definition: sdl_pok_def.h:289
SDL_pwrss_trim trimOV
Definition: sdl_pok_def.h:453
int32_t SDL_pok_getPRGInfo(SDL_wkupCtrlRegsBase_t *pBaseAddress, SDL_PRG_Inst instance, SDL_pokPRGInfo_t *pPRGInfo)
SDL_pwrss_vd_mode voltDetMode
Definition: sdl_pok_def.h:422
SDL_por_trim_sel trim_select
Definition: sdl_pok_def.h:492
uint8_t SDL_pwrss_hysteresis
Definition: sdl_pok_def.h:198
volatile uint32_t * pokEnPPAddr
Definition: sdl_pok_def.h:79
uint32_t hystOVShift
Definition: sdl_pok_def.h:86
uint32_t pokEnPPMask
Definition: sdl_pok_def.h:108
volatile uint32_t * deglitchSelAddr
Definition: sdl_pok_def.h:80
uint32_t ovSelMask
Definition: sdl_pok_def.h:93
uint8_t SDL_POK_enSelSrc
Definition: sdl_pok_def.h:330
uint32_t vdDetMask
Definition: sdl_pok_def.h:87
POK functionality of POR Value structure.
Definition: sdl_pok_def.h:487
bool maskHHVOutputEnable
Definition: sdl_pok_def.h:474
SDL_pwrss_vd_mode voltDetMode
Definition: sdl_pok_def.h:449
uint32_t deglitchSelShift
Definition: sdl_pok_def.h:102
uint32_t trimOVShift
Definition: sdl_pok_def.h:100
This file contains SOC specific defintions.
volatile uint32_t * pokOVAddr
Definition: sdl_pok_def.h:76
volatile uint32_t * pokEnSelAddr
Definition: sdl_pok_def.h:78
uint32_t vdDetShift
Definition: sdl_pok_def.h:88
bool maskHHVOutputEnable
Definition: sdl_pok_def.h:490
uint32_t pokEnSelShift
Definition: sdl_pok_def.h:96
uint32_t detEnMask
Definition: sdl_pok_def.h:91
SDL_pwrss_trim trim
Definition: sdl_pok_def.h:424
SDL_pwrss_hysteresis hystCtrl
Definition: sdl_pok_def.h:445
SDL_pwrss_hysteresis hystCtrlOV
Definition: sdl_pok_def.h:447
uint32_t trimMask
Definition: sdl_pok_def.h:97
POK Configuration structure read value.
Definition: sdl_pok_def.h:442
volatile uint32_t * addr
Definition: sdl_pok_def.h:107
void sdlGetErrSig(uint32_t id, SDL_POK_Inst *instance, uint32_t *esm_err_sig_ov, uint32_t *esm_err_sig_uv, bool *usePorCfgFlag)
uint32_t vdDetOVMask
Definition: sdl_pok_def.h:89
Definition: sdl_pok_def.h:73
uint32_t trimOVMask
Definition: sdl_pok_def.h:99
SDL_pwrss_hysteresis hystCtrl
Definition: sdl_pok_def.h:418
uint32_t detEnShift
Definition: sdl_pok_def.h:92
SDL_pwrss_hysteresis hystCtrlOV
Definition: sdl_pok_def.h:420
uint32_t deglitchSelMask
Definition: sdl_pok_def.h:101