OpenBIC
OpenSource Bridge-IC
plat_power_seq.h File Reference
#include "plat_gpio.h"
Include dependency graph for plat_power_seq.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _cxl_power_control_gpio
 
struct  _cxl_power_good_gpio
 

Macros

#define DC_ON_DELAY5_SEC   5
 
#define VR_READY_DELAY_SEC   7
 
#define CXL_READY_SECONDS   30
 
#define CXL_READY_RETRY_TIMES   10
 
#define CXL1_HEART_BEAT_LABEL   "HB0"
 
#define CXL2_HEART_BEAT_LABEL   "HB1"
 
#define CXL_READY_INTERVAL_SECONDS   3
 
#define SWITCH_IOE_MUX_TIMEOUT_SECONDS   1
 
#define CHK_PWR_DELAY_MSEC   1
 
#define SYS_CLK_STABLE_DELAY_MSEC   25
 
#define PWR_RST_DELAY_MSEC   25
 
#define P1V8_POWER_OFF_DELAY_MSEC   3500
 
#define POWER_SEQ_CTRL_STACK_SIZE   1000
 

Typedefs

typedef struct _cxl_power_control_gpio cxl_power_control_gpio
 
typedef struct _cxl_power_good_gpio cxl_power_good_gpio
 

Enumerations

enum  CXL_NUM { CXL_ID_1 = 0 , CXL_ID_2 , MAX_CXL_ID }
 
enum  POWER_ON_STAGE {
  BOARD_POWER_ON_STAGE0 = 0x00 , BOARD_POWER_ON_STAGE1 , BOARD_POWER_ON_STAGE2 , RETIMER_POWER_ON_STAGE0 ,
  RETIMER_POWER_ON_STAGE1 , E1S_POWER_ON_STAGE0 , E1S_POWER_ON_STAGE1 , E1S_POWER_ON_STAGE2 ,
  E1S_POWER_ON_STAGE3 , ASIC_POWER_ON_STAGE1 = 0x00 , ASIC_POWER_ON_STAGE2 , DIMM_POWER_ON_STAGE1 ,
  DIMM_POWER_ON_STAGE2 , DIMM_POWER_ON_STAGE3 , ASIC_POWER_ON_STAGE = 0x00 , DIMM_POWER_ON_STAGE1 ,
  DIMM_POWER_ON_STAGE2 , DIMM_POWER_ON_STAGE3 , BOARD_POWER_ON_STAGE , CLK_POWER_ON_STAGE = 0 ,
  ASIC_POWER_ON_STAGE_1 , ASIC_POWER_ON_STAGE_2 , DIMM_POWER_ON_STAGE_1 , DIMM_POWER_ON_STAGE_2 ,
  DIMM_POWER_ON_STAGE_3 , MAX_POWER_ON_STAGES , ASIC_POWER_ON_STAGE_1 = 0 , CLK_POWER_ON_STAGE ,
  ASIC_POWER_ON_STAGE_2 , ASIC_POWER_ON_STAGE_3 , DIMM_POWER_ON_STAGE_1 , DIMM_POWER_ON_STAGE_2 ,
  DIMM_POWER_ON_STAGE_3 , MAX_POWER_ON_STAGES
}
 
enum  POWER_OFF_STAGE {
  E1S_POWER_OFF_STAGE0 = 0x00 , E1S_POWER_OFF_STAGE1 , E1S_POWER_OFF_STAGE2 , E1S_POWER_OFF_STAGE3 ,
  RETIMER_POWER_OFF_STAGE0 , RETIMER_POWER_OFF_STAGE1 , RETIMER_POWER_OFF_STAGE2 , BOARD_POWER_OFF_STAGE0 ,
  BOARD_POWER_OFF_STAGE1 , BOARD_POWER_OFF_STAGE2 , DIMM_POWER_OFF_STAGE1 = 0x00 , DIMM_POWER_OFF_STAGE2 ,
  DIMM_POWER_OFF_STAGE3 , ASIC_POWER_OFF_STAGE1 , ASIC_POWER_OFF_STAGE2 , BOARD_POWER_OFF_STAGE ,
  DIMM_POWER_OFF_STAGE1 = 0x00 , DIMM_POWER_OFF_STAGE2 , DIMM_POWER_OFF_STAGE3 , ASIC_POWER_OFF_STAGE1 ,
  ASIC_POWER_OFF_STAGE2 , BOARD_POWER_OFF_STAGE , DIMM_POWER_OFF_STAGE_1 = 0 , DIMM_POWER_OFF_STAGE_2 ,
  DIMM_POWER_OFF_STAGE_3 , ASIC_POWER_OFF_STAGE_1 , ASIC_POWER_OFF_STAGE_2 , ASIC_POWER_OFF_STAGE_3 ,
  CLK_POWER_OFF_STAGE , MAX_POWER_OFF_STAGES , DIMM_POWER_OFF_STAGE_1 = 0 , DIMM_POWER_OFF_STAGE_2 ,
  DIMM_POWER_OFF_STAGE_3 , ASIC_POWER_OFF_STAGE_1 , ASIC_POWER_OFF_STAGE_2 , ASIC_POWER_OFF_STAGE_3 ,
  CLK_POWER_OFF_STAGE , MAX_POWER_OFF_STAGES
}
 

Functions

void set_mb_dc_status (uint8_t gpio_num)
 
void enable_asic1_rst ()
 
void enable_asic2_rst ()
 
bool is_power_controlled (int cxl_id, int power_pin, uint8_t check_power_status, char *power_name)
 
int check_powers_enabled (int cxl_id, int pwr_stage)
 
int check_powers_disabled (int cxl_id, int pwr_stage)
 
void enable_powers (int cxl_id, int pwr_stage)
 
void disable_powers (int cxl_id, int pwr_stage)
 
int power_on_handler (int cxl_id, int power_stage)
 
int power_off_handler (int cxl_id, int power_stage)
 
void execute_power_on_sequence ()
 
void execute_power_off_sequence ()
 
void cxl1_ready_handler ()
 
void cxl2_ready_handler ()
 
void set_cxl_ready_status (uint8_t cxl_id, bool value)
 
bool get_cxl_ready_status (uint8_t cxl_id)
 
bool cxl1_ready_access (uint8_t sensor_num)
 
bool cxl2_ready_access (uint8_t sensor_num)
 
void set_cxl_vr_access (uint8_t cxl_id, bool value)
 
void set_cxl1_vr_access_delayed_status ()
 
void set_cxl2_vr_access_delayed_status ()
 
bool cxl1_vr_access (uint8_t sensor_num)
 
bool cxl2_vr_access (uint8_t sensor_num)
 
void create_check_cxl_ready_thread ()
 

Macro Definition Documentation

◆ CHK_PWR_DELAY_MSEC

#define CHK_PWR_DELAY_MSEC   1

◆ CXL1_HEART_BEAT_LABEL

#define CXL1_HEART_BEAT_LABEL   "HB0"

◆ CXL2_HEART_BEAT_LABEL

#define CXL2_HEART_BEAT_LABEL   "HB1"

◆ CXL_READY_INTERVAL_SECONDS

#define CXL_READY_INTERVAL_SECONDS   3

◆ CXL_READY_RETRY_TIMES

#define CXL_READY_RETRY_TIMES   10

◆ CXL_READY_SECONDS

#define CXL_READY_SECONDS   30

◆ DC_ON_DELAY5_SEC

#define DC_ON_DELAY5_SEC   5

◆ P1V8_POWER_OFF_DELAY_MSEC

#define P1V8_POWER_OFF_DELAY_MSEC   3500

◆ POWER_SEQ_CTRL_STACK_SIZE

#define POWER_SEQ_CTRL_STACK_SIZE   1000

◆ PWR_RST_DELAY_MSEC

#define PWR_RST_DELAY_MSEC   25

◆ SWITCH_IOE_MUX_TIMEOUT_SECONDS

#define SWITCH_IOE_MUX_TIMEOUT_SECONDS   1

◆ SYS_CLK_STABLE_DELAY_MSEC

#define SYS_CLK_STABLE_DELAY_MSEC   25

◆ VR_READY_DELAY_SEC

#define VR_READY_DELAY_SEC   7

Typedef Documentation

◆ cxl_power_control_gpio

◆ cxl_power_good_gpio

Enumeration Type Documentation

◆ CXL_NUM

enum CXL_NUM
Enumerator
CXL_ID_1 
CXL_ID_2 
MAX_CXL_ID 

◆ POWER_OFF_STAGE

Enumerator
E1S_POWER_OFF_STAGE0 
E1S_POWER_OFF_STAGE1 
E1S_POWER_OFF_STAGE2 
E1S_POWER_OFF_STAGE3 
RETIMER_POWER_OFF_STAGE0 
RETIMER_POWER_OFF_STAGE1 
RETIMER_POWER_OFF_STAGE2 
BOARD_POWER_OFF_STAGE0 
BOARD_POWER_OFF_STAGE1 
BOARD_POWER_OFF_STAGE2 
DIMM_POWER_OFF_STAGE1 
DIMM_POWER_OFF_STAGE2 
DIMM_POWER_OFF_STAGE3 
ASIC_POWER_OFF_STAGE1 
ASIC_POWER_OFF_STAGE2 
BOARD_POWER_OFF_STAGE 
DIMM_POWER_OFF_STAGE1 
DIMM_POWER_OFF_STAGE2 
DIMM_POWER_OFF_STAGE3 
ASIC_POWER_OFF_STAGE1 
ASIC_POWER_OFF_STAGE2 
BOARD_POWER_OFF_STAGE 
DIMM_POWER_OFF_STAGE_1 
DIMM_POWER_OFF_STAGE_2 
DIMM_POWER_OFF_STAGE_3 
ASIC_POWER_OFF_STAGE_1 
ASIC_POWER_OFF_STAGE_2 
ASIC_POWER_OFF_STAGE_3 
CLK_POWER_OFF_STAGE 
MAX_POWER_OFF_STAGES 
DIMM_POWER_OFF_STAGE_1 
DIMM_POWER_OFF_STAGE_2 
DIMM_POWER_OFF_STAGE_3 
ASIC_POWER_OFF_STAGE_1 
ASIC_POWER_OFF_STAGE_2 
ASIC_POWER_OFF_STAGE_3 
CLK_POWER_OFF_STAGE 
MAX_POWER_OFF_STAGES 

◆ POWER_ON_STAGE

Enumerator
BOARD_POWER_ON_STAGE0 
BOARD_POWER_ON_STAGE1 
BOARD_POWER_ON_STAGE2 
RETIMER_POWER_ON_STAGE0 
RETIMER_POWER_ON_STAGE1 
E1S_POWER_ON_STAGE0 
E1S_POWER_ON_STAGE1 
E1S_POWER_ON_STAGE2 
E1S_POWER_ON_STAGE3 
ASIC_POWER_ON_STAGE1 
ASIC_POWER_ON_STAGE2 
DIMM_POWER_ON_STAGE1 
DIMM_POWER_ON_STAGE2 
DIMM_POWER_ON_STAGE3 
ASIC_POWER_ON_STAGE 
DIMM_POWER_ON_STAGE1 
DIMM_POWER_ON_STAGE2 
DIMM_POWER_ON_STAGE3 
BOARD_POWER_ON_STAGE 
CLK_POWER_ON_STAGE 
ASIC_POWER_ON_STAGE_1 
ASIC_POWER_ON_STAGE_2 
DIMM_POWER_ON_STAGE_1 
DIMM_POWER_ON_STAGE_2 
DIMM_POWER_ON_STAGE_3 
MAX_POWER_ON_STAGES 
ASIC_POWER_ON_STAGE_1 
CLK_POWER_ON_STAGE 
ASIC_POWER_ON_STAGE_2 
ASIC_POWER_ON_STAGE_3 
DIMM_POWER_ON_STAGE_1 
DIMM_POWER_ON_STAGE_2 
DIMM_POWER_ON_STAGE_3 
MAX_POWER_ON_STAGES 

Function Documentation

◆ check_powers_disabled()

int check_powers_disabled ( int  cxl_id,
int  pwr_stage 
)
Here is the call graph for this function:

◆ check_powers_enabled()

int check_powers_enabled ( int  cxl_id,
int  pwr_stage 
)
Here is the call graph for this function:

◆ create_check_cxl_ready_thread()

void create_check_cxl_ready_thread ( )

◆ cxl1_ready_access()

bool cxl1_ready_access ( uint8_t  sensor_num)
Here is the call graph for this function:

◆ cxl1_ready_handler()

void cxl1_ready_handler ( )

◆ cxl1_vr_access()

bool cxl1_vr_access ( uint8_t  sensor_num)

◆ cxl2_ready_access()

bool cxl2_ready_access ( uint8_t  sensor_num)
Here is the call graph for this function:

◆ cxl2_ready_handler()

void cxl2_ready_handler ( )

◆ cxl2_vr_access()

bool cxl2_vr_access ( uint8_t  sensor_num)

◆ disable_powers()

void disable_powers ( int  cxl_id,
int  pwr_stage 
)
Here is the call graph for this function:

◆ enable_asic1_rst()

void enable_asic1_rst ( )
Here is the call graph for this function:

◆ enable_asic2_rst()

void enable_asic2_rst ( )
Here is the call graph for this function:

◆ enable_powers()

void enable_powers ( int  cxl_id,
int  pwr_stage 
)
Here is the call graph for this function:

◆ execute_power_off_sequence()

void execute_power_off_sequence ( )
Here is the call graph for this function:

◆ execute_power_on_sequence()

void execute_power_on_sequence ( )
Here is the call graph for this function:

◆ get_cxl_ready_status()

bool get_cxl_ready_status ( uint8_t  cxl_id)

◆ is_power_controlled()

bool is_power_controlled ( int  cxl_id,
int  power_pin,
uint8_t  check_power_status,
char *  power_name 
)
Here is the call graph for this function:

◆ power_off_handler()

int power_off_handler ( int  cxl_id,
int  power_stage 
)
Here is the call graph for this function:

◆ power_on_handler()

int power_on_handler ( int  cxl_id,
int  power_stage 
)
Here is the call graph for this function:

◆ set_cxl1_vr_access_delayed_status()

void set_cxl1_vr_access_delayed_status ( )
Here is the call graph for this function:

◆ set_cxl2_vr_access_delayed_status()

void set_cxl2_vr_access_delayed_status ( )
Here is the call graph for this function:

◆ set_cxl_ready_status()

void set_cxl_ready_status ( uint8_t  cxl_id,
bool  value 
)

◆ set_cxl_vr_access()

void set_cxl_vr_access ( uint8_t  cxl_id,
bool  value 
)

◆ set_mb_dc_status()

void set_mb_dc_status ( uint8_t  gpio_num)
Here is the call graph for this function: