Nordic Semiconductor nRF5 AirFuel SDK  version 2.2.0
PTU / PRU common test multiplexer API

Macros

#define TMUX_SET(hal_fun, arg)
 Macro for multiplexing **hal**set() functions. More...
 
#define TMUX_GET(hal_fun, arg, override_val)
 Macro for multiplexing **hal**get() functions. More...
 

Enumerations

enum  tmux_select_t { TMUX_SELECT_NO_OVERRIDE = 0, TMUX_SELECT_OVERRIDE }
 Enumerator used for configuring test multiplexer.
 

Functions

uint32_t tmux_init (void)
 Initialize the PTU's test multiplexer. More...
 
void tmux_get_select (tmux_select_t select)
 Select source for all **tmux**get() functions. More...
 
void tmux_set_select (tmux_select_t select)
 Select whether override values shall be used when writing to **hal**set() functions. More...
 

API implementation

uint32_t pru_tmux_vrect_get (uint16_t *p_vrect)
 Test wrapper for pru_hal_vrect_get(). More...
 
uint32_t pru_tmux_irect_get (uint16_t *p_irect)
 Test wrapper for pru_hal_irect_get(). More...
 
uint32_t pru_tmux_vout_enable_get (bool *enable)
 Test wrapper for pru_hal_vout_enable_get(). More...
 
uint32_t pru_tmux_vout_get (uint16_t *p_vout)
 Test wrapper for pru_hal_vout_get(). More...
 
uint32_t pru_tmux_iout_get (uint16_t *p_iout)
 Test wrapper for pru_hal_iout_get(). More...
 
uint32_t pru_tmux_temperature_get (int16_t *p_temperature)
 Test wrapper for pru_hal_temperature_get(). More...
 
uint32_t pru_tmux_wired_charge_detect_status_get (bool *p_wired)
 Test wrapper for pru_hal_wired_charge_detect_status_get(). More...
 
uint32_t pru_tmux_charge_complete_status_get (bool *p_charge_complete)
 Test wrapper for pru_hal_charge_complete_status_get(). More...
 
uint32_t pru_tmux_vout_enable_set (bool enable)
 Test wrapper for pru_hal_vout_enable_set(). More...
 
uint32_t pru_tmux_adj_power_set (ctl_adj_power_t adj_setting)
 Test wrapper for pru_hal_adj_power_set(). More...
 
uint32_t pru_tmux_adj_power_get (ctl_adj_power_t *adj_setting)
 Test wrapper for pru_hal_adj_power_get(). More...
 
uint32_t pru_tmux_power_adjusted_get (bool *adjusted)
 Test wrapper for pru_hal_power_adjusted_get(). More...
 
uint32_t pru_tmux_power_adjusted_set (bool adjusted)
 Test wrapper for pru_hal_power_adjusted_set(). More...
 
void pru_tmux_override_values_set (pru_tmux_override_t *values)
 Set override values. More...
 
void pru_tmux_override_values_get (pru_tmux_override_t *values)
 Get ovveride values. More...
 

API implementation.

uint32_t ptu_tmux_poweramp_enable_set (bool enable)
 Test wrapper for ptu_hal_poweramp_enable_set(). More...
 
uint32_t ptu_tmux_poweramp_level_set (uint16_t level)
 Test wrapper for ptu_hal_poweramp_level_set(). More...
 
uint32_t ptu_tmux_poweramp_enable_get (bool *enable)
 Test wrapper for ptu_hal_poweramp_enable_get();. More...
 
uint32_t ptu_tmux_poweramp_level_get (uint16_t *p_level)
 Test wrapper for ptu_hal_poweramp_level_get(). More...
 
uint32_t ptu_tmux_itx_get (uint16_t *p_itx)
 Test wrapper for ptu_hal_itx_get(). More...
 
uint32_t ptu_tmux_vtx_get (uint16_t *p_vtx)
 Test wrapper for ptu_hal_vtx_get(). More...
 
uint32_t ptu_tmux_ptx_get (uint16_t *p_ptx)
 Test wrapper for ptu_hal_ptx_get(). More...
 
uint32_t ptu_tmux_temperature_get (int16_t *p_temperature)
 Test wrapper for ptu_hal_temperature_get(). More...
 

Detailed Description

Macro Definition Documentation

#define TMUX_SET (   hal_fun,
  arg 
)
Value:
do \
{ \
if(set_mux_select == TMUX_SELECT_NO_OVERRIDE) \
{ \
return hal_fun(arg); \
} \
else \
{ \
ASSERT(set_mux_select == TMUX_SELECT_OVERRIDE) \
return NRF_SUCCESS; \
} \
} while(0)
static tmux_select_t set_mux_select
Definition: pru_test_mux.c:32

Macro for multiplexing **hal**set() functions.

Parameters
[in]hal_funis the HAL function to be written.
[in]argis the argument of the HAL function to be written.

Definition at line 35 of file test_mux_common.h.

#define TMUX_GET (   hal_fun,
  arg,
  override_val 
)
Value:
do \
{ \
if(get_mux_select == TMUX_SELECT_NO_OVERRIDE) \
{ \
return hal_fun(arg); \
} \
else \
{ \
ASSERT(get_mux_select == TMUX_SELECT_OVERRIDE) \
*arg = override_val; \
return NRF_SUCCESS; \
} \
} while(0)
static tmux_select_t get_mux_select
Definition: pru_test_mux.c:31

Macro for multiplexing **hal**get() functions.

Parameters
[in]hal_funis the HAL function to be read.
[out]argis the variable where the read value shall be written.
[in]override_valis the corresponding override value for the HAL function.

Definition at line 56 of file test_mux_common.h.

Function Documentation

uint32_t tmux_init ( void  )

Initialize the PTU's test multiplexer.

Return values
NRF_SUCCESSInitialization succeeded.

Definition at line 53 of file pru_test_mux.c.

54 {
64  return pru_hal_init();
65 }
#define PRU_IOUT_DEFAULT
Definition: pru_hw_config.h:52
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
#define PRU_TEMPERATURE_DEFAULT
Definition: pru_hw_config.h:50
#define PRU_VOUT_DEFAULT
Definition: pru_hw_config.h:51
#define PRU_VRECT_DEFAULT
Definition: pru_hw_config.h:49
#define PRU_ADJUSTED_DEFAULT
Definition: pru_hw_config.h:54
uint32_t pru_hal_init(void)
Initialize the PRU's Hardware abstraction layer.
Definition: pru_hal_evkit.c:54
#define PRU_IRECT_DEFAULT
Definition: pru_hw_config.h:53
void tmux_get_select ( tmux_select_t  select)

Select source for all **tmux**get() functions.

Parameters
[in]selectselects the source for values returned by **tmux**get() functions.
  • TMUX_SELECT_NO_OVERRIDE **tmux**get() functions will return values from **hal**get() functions.
  • TMUX_SELECT_OVERRIDE **tmux**get() functions will return values set by **tmux**override_set() functions.

Definition at line 135 of file pru_test_mux.c.

136 {
137  get_mux_select = select;
138 }
static tmux_select_t get_mux_select
Definition: pru_test_mux.c:31
void tmux_set_select ( tmux_select_t  select)

Select whether override values shall be used when writing to **hal**set() functions.

Parameters
[in]selectselects the source for values written to HAL.
  • TMUX_SELECT_NO_OVERRIDE values given in **tmux**set() functions will be written to **hal**set() functions.
  • TMUX_SELECT_OVERRIDE values given in **tmux**override_set() functions will be written to **hal**set() functions.

Definition at line 140 of file pru_test_mux.c.

141 {
142  set_mux_select = select;
144 }
static void m_update_hal_from_override_values(void)
Write all override values to **hal**set() functions if overriding of **set functions is enabled...
Definition: pru_test_mux.c:38
static tmux_select_t set_mux_select
Definition: pru_test_mux.c:32
uint32_t pru_tmux_vrect_get ( uint16_t *  p_vrect)

Test wrapper for pru_hal_vrect_get().

Parameters
[out]p_vrectreturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 67 of file pru_test_mux.c.

68 {
70 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
uint32_t pru_hal_vrect_get(uint16_t *p_vrect)
Read the value of VRECT.
Definition: pru_hal_evkit.c:71
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t pru_tmux_irect_get ( uint16_t *  p_irect)

Test wrapper for pru_hal_irect_get().

Parameters
[out]p_irectreturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 72 of file pru_test_mux.c.

73 {
75 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
uint32_t pru_hal_irect_get(uint16_t *p_irect)
Read the value of IRECT.
Definition: pru_hal_evkit.c:77
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t pru_tmux_vout_enable_get ( bool *  enable)

Test wrapper for pru_hal_vout_enable_get().

Parameters
[out]enablereturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 77 of file pru_test_mux.c.

78 {
80 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
uint32_t pru_hal_vout_enable_get(bool *enable)
Get status of VOUT enable.
Definition: pru_hal_evkit.c:89
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t pru_tmux_vout_get ( uint16_t *  p_vout)

Test wrapper for pru_hal_vout_get().

Parameters
[out]p_voutreturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 82 of file pru_test_mux.c.

83 {
85 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
uint32_t pru_hal_vout_get(uint16_t *p_vout)
Read the voltage output to battery.
Definition: pru_hal_evkit.c:95
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t pru_tmux_iout_get ( uint16_t *  p_iout)

Test wrapper for pru_hal_iout_get().

Parameters
[out]p_ioutreturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 87 of file pru_test_mux.c.

88 {
90 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
uint32_t pru_hal_iout_get(uint16_t *p_iout)
Read the value of IOUT.
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t pru_tmux_temperature_get ( int16_t *  p_temperature)

Test wrapper for pru_hal_temperature_get().

Parameters
[out]p_temperaturereturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 92 of file pru_test_mux.c.

93 {
95 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
uint32_t pru_hal_temperature_get(int16_t *p_temperature)
Read the temperature.
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t pru_tmux_wired_charge_detect_status_get ( bool *  p_wired)

Test wrapper for pru_hal_wired_charge_detect_status_get().

Parameters
[out]p_wiredreturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 97 of file pru_test_mux.c.

98 {
100 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
uint32_t pru_hal_wired_charge_detect_status_get(bool *p_wired)
Get the status of whether the PRU is charged by wire.
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t pru_tmux_charge_complete_status_get ( bool *  p_charge_complete)

Test wrapper for pru_hal_charge_complete_status_get().

Parameters
[out]p_charge_completereturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 102 of file pru_test_mux.c.

103 {
105 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
uint32_t pru_hal_charge_complete_status_get(bool *p_charge_complete)
Get the status of whether the PRU is charged.
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t pru_tmux_vout_enable_set ( bool  enable)

Test wrapper for pru_hal_vout_enable_set().

Parameters
[in]enablevalue to be set.
Return values
NRF_SUCCESSEnabled successfully.

Definition at line 107 of file pru_test_mux.c.

108 {
110 }
#define TMUX_SET(hal_fun, arg)
Macro for multiplexing **hal**set() functions.
uint32_t pru_hal_vout_enable_set(bool enable)
Enable output to battery.
Definition: pru_hal_evkit.c:83
uint32_t pru_tmux_adj_power_set ( ctl_adj_power_t  adj_setting)

Test wrapper for pru_hal_adj_power_set().

Parameters
[in]adj_settingvalue to be set.
Return values
NRF_SUCCESSValue was set successfully.

Definition at line 112 of file pru_test_mux.c.

113 {
114  TMUX_SET(pru_hal_adj_power_set, adj_setting);
115 }
uint32_t pru_hal_adj_power_set(ctl_adj_power_t adj_setting)
Limit maximum power consumed by PRU.
#define TMUX_SET(hal_fun, arg)
Macro for multiplexing **hal**set() functions.
uint32_t pru_tmux_adj_power_get ( ctl_adj_power_t adj_setting)

Test wrapper for pru_hal_adj_power_get().

Parameters
[out]adj_settingreturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 117 of file pru_test_mux.c.

118 {
120 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
uint32_t pru_hal_adj_power_get(ctl_adj_power_t *adj_setting)
Get adjust power setting.
ctl_adj_power_t adj_setting
Definition: pru_test_mux.h:42
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t pru_tmux_power_adjusted_get ( bool *  adjusted)

Test wrapper for pru_hal_power_adjusted_get().

Parameters
[out]adjustedreturn value.
Return values
NRF_SUCCESSValue was read successfully..

Definition at line 122 of file pru_test_mux.c.

123 {
125 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
uint32_t pru_hal_power_adjusted_get(bool *p_adjusted)
This function is called by the PRU profile to see if the PRU has limited its power consumption as ins...
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t pru_tmux_power_adjusted_set ( bool  adjusted)

Test wrapper for pru_hal_power_adjusted_set().

Parameters
[in]adjustedvalue.
Return values
NRF_SUCCESSSuccess.

Definition at line 127 of file pru_test_mux.c.

128 {
130 }
uint32_t pru_hal_power_adjusted_set(bool adjusted)
Set power adjusted value.
#define TMUX_SET(hal_fun, arg)
Macro for multiplexing **hal**set() functions.
void pru_tmux_override_values_set ( pru_tmux_override_t values)

Set override values.

Parameters
[in]valuesvalues to be written.

Definition at line 146 of file pru_test_mux.c.

147 {
148  memcpy(&override_values, values, sizeof(pru_tmux_override_t));
150 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
static void m_update_hal_from_override_values(void)
Write all override values to **hal**set() functions if overriding of **set functions is enabled...
Definition: pru_test_mux.c:38
Collection of PRU HAL variables that can be overrided by test multiplexer.
Definition: pru_test_mux.h:36
void pru_tmux_override_values_get ( pru_tmux_override_t values)

Get ovveride values.

Parameters
[out]valuesreturned override values.

Definition at line 152 of file pru_test_mux.c.

153 {
154  memcpy(values, &override_values, sizeof(pru_tmux_override_t));
155 }
static pru_tmux_override_t override_values
Definition: pru_test_mux.c:33
Collection of PRU HAL variables that can be overrided by test multiplexer.
Definition: pru_test_mux.h:36
uint32_t ptu_tmux_poweramp_enable_set ( bool  enable)

Test wrapper for ptu_hal_poweramp_enable_set().

Parameters
[in]enablevalue to be set.
Return values
NRF_SUCCESSEnabled successfully.

Definition at line 69 of file ptu_test_mux.c.

70 {
72 }
uint32_t ptu_hal_poweramp_enable_set(bool enable)
Enable power amplifier output (resonator power on).
Definition: ptu_hal_evkit.c:55
#define TMUX_SET(hal_fun, arg)
Macro for multiplexing **hal**set() functions.
uint32_t ptu_tmux_poweramp_level_set ( uint16_t  level)

Test wrapper for ptu_hal_poweramp_level_set().

Parameters
[in]levelvalue to be set.
Return values
NRF_SUCCESSValue was set successfully.

Definition at line 74 of file ptu_test_mux.c.

75 {
77 }
#define TMUX_SET(hal_fun, arg)
Macro for multiplexing **hal**set() functions.
uint32_t ptu_hal_poweramp_level_set(uint16_t level)
Set output level of power amplifier (resonator power).
Definition: ptu_hal_evkit.c:69
uint32_t ptu_tmux_poweramp_enable_get ( bool *  enable)

Test wrapper for ptu_hal_poweramp_enable_get();.

Parameters
[out]enablereturn value.
Return values
NRF_SUCCESSEnable was read successfully.

Definition at line 79 of file ptu_test_mux.c.

80 {
81  if (enable == NULL)
82  return NRF_ERROR_INVALID_PARAM;
84 }
static ptu_tmux_override_t override_values
Definition: ptu_test_mux.c:32
uint32_t ptu_hal_poweramp_enable_get(bool *enable)
Get status of power amplifier output enable (resonator power on).
Definition: ptu_hal_evkit.c:61
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t ptu_tmux_poweramp_level_get ( uint16_t *  p_level)

Test wrapper for ptu_hal_poweramp_level_get().

Parameters
[out]p_levelreturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 86 of file ptu_test_mux.c.

87 {
88  if (p_level == NULL)
89  return NRF_ERROR_INVALID_PARAM;
91 }
uint32_t ptu_hal_poweramp_level_get(uint16_t *level)
Get output level setting of power amplifier.
Definition: ptu_hal_evkit.c:75
static ptu_tmux_override_t override_values
Definition: ptu_test_mux.c:32
uint16_t power_amp_level
Definition: ptu_test_mux.h:38
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t ptu_tmux_itx_get ( uint16_t *  p_itx)

Test wrapper for ptu_hal_itx_get().

Parameters
[out]p_itxreturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 93 of file ptu_test_mux.c.

94 {
95  if (p_itx == NULL)
96  return NRF_ERROR_INVALID_PARAM;
98 }
static ptu_tmux_override_t override_values
Definition: ptu_test_mux.c:32
uint32_t ptu_hal_itx_get(uint16_t *p_itx)
Read the value of ITX.
Definition: ptu_hal_evkit.c:83
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t ptu_tmux_vtx_get ( uint16_t *  p_vtx)

Test wrapper for ptu_hal_vtx_get().

Parameters
[out]p_vtxreturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 100 of file ptu_test_mux.c.

101 {
102  if (p_vtx == NULL)
103  return NRF_ERROR_INVALID_PARAM;
105 }
static ptu_tmux_override_t override_values
Definition: ptu_test_mux.c:32
uint32_t ptu_hal_vtx_get(uint16_t *p_vtx)
Read resonator voltage.
Definition: ptu_hal_evkit.c:91
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t ptu_tmux_ptx_get ( uint16_t *  p_ptx)

Test wrapper for ptu_hal_ptx_get().

Parameters
[out]p_ptxreturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 107 of file ptu_test_mux.c.

108 {
109  if (p_ptx == NULL)
110  return NRF_ERROR_INVALID_PARAM;
112 }
static ptu_tmux_override_t override_values
Definition: ptu_test_mux.c:32
uint32_t ptu_hal_ptx_get(uint16_t *p_ptx)
Read resonator voltage.
Definition: ptu_hal_evkit.c:99
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.
uint32_t ptu_tmux_temperature_get ( int16_t *  p_temperature)

Test wrapper for ptu_hal_temperature_get().

Parameters
[out]p_temperaturereturn value.
Return values
NRF_SUCCESSValue was read successfully.

Definition at line 114 of file ptu_test_mux.c.

115 {
116  if (p_temperature == NULL)
117  return NRF_ERROR_INVALID_PARAM;
119 }
uint32_t ptu_hal_temperature_get(int16_t *p_temperature)
Read the board temperature.
static ptu_tmux_override_t override_values
Definition: ptu_test_mux.c:32
#define TMUX_GET(hal_fun, arg, override_val)
Macro for multiplexing **hal**get() functions.