ETAMPDET - External Tamper Detect

Description

External Tamper Detect (ETAMPDET) Peripheral API.

This module contains functions to control the ETAMPDET peripheral of Silicon Labs 32-bit MCUs and SoCs. The ETAMPDET can alert the system to unauthorized physical access with very low current consumption.

Data Structures

struct sl_etampdet_config_channel_t
ETAMPDET channel configuration structure.
struct sl_etampdet_config_t
ETAMPDET configuration structure.

Functions

void sl_etampdet_init (const sl_etampdet_config_t *config)
Initialize ETAMPDET.
void sl_etampdet_init_channel (const sl_etampdet_config_channel_t *config_channel)
Initialize ETAMPDET channel.
void sl_etampdet_wait_sync (void)
Wait for the ETAMPDET to complete all synchronization of register changes and commands.
void sl_etampdet_wait_ready (void)
Wait for the ETAMPDET to complete disabling procedure.
void sl_etampdet_enable (void)
Enable ETAMPDET.
void sl_etampdet_disable (void)
Disable ETAMPDET.
void sl_etampdet_load ( sl_etampdet_channel_t channel)
Load seed value into channel LFSR.
void sl_etampdet_start ( sl_etampdet_channel_t channel)
Start ETAMPDET channel.
void sl_etampdet_stop ( sl_etampdet_channel_t channel)
Stop ETAMPDET channel.
void sl_etampdet_enable_interrupts (uint32_t interrupts)
Enable ETAMPDET interrupts.
void sl_etampdet_disable_interrupts (uint32_t interrupts)
Disable ETAMPDET interrupts.
void sl_etampdet_set_interrupts (uint32_t interrupts)
Set ETAMPDET interrupts.
void sl_etampdet_clear_interrupts (uint32_t interrupts)
Clear ETAMPDET interrupts.
uint32_t sl_etampdet_get_interrupts (void)
Gets pending ETAMPDET interrupt flags.
uint32_t sl_etampdet_get_enabled_interrupts (void)
Gets enabled and pending ETAMPDET interrupt flags.
void sl_etampdet_lock (void)
Lock ETAMPDET registers.
void sl_etampdet_unlock (void)
Unlock ETAMPDET registers.
uint32_t sl_etampdet_get_status (void)
Gets ETAMPDET STATUS register value.
void sl_etampdet_set_seed_value (uint32_t seed_value, sl_etampdet_channel_t channel)
Set ETAMPDET channel seed value.
uint32_t sl_etampdet_get_seed_value ( sl_etampdet_channel_t channel)
Get ETAMPDET channel seed value.

Macros

#define ETAMPDET_CONFIG_CHANNEL_DEFAULT
ETAMPDET default channel configuration.
#define ETAMPDET_CONFIG_DEFAULT
ETAMPDET default configuration.

Enumerations

enum sl_etampdet_channel_t {
channel_0 = 0,
channel_1
}
ETAMPDET channels.
enum sl_etampdet_channel_cnt_mismatch_threshold_t {
detect_filt_threshold_1 = _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold1,
detect_filt_threshold_2 = _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold2,
detect_filt_threshold_3 = _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold3,
detect_filt_threshold_4 = _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold4,
detect_filt_threshold_5 = _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold5,
detect_filt_threshold_6 = _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold6,
detect_filt_threshold_7 = _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold7,
detect_filt_threshold_8 = _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold8
}
ETAMPDET filter thresholds.
enum sl_etampdet_channel_filt_win_size_t {
detect_filt_win_size_2 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize2,
detect_filt_win_size_3 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize3,
detect_filt_win_size_4 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize4,
detect_filt_win_size_5 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize5,
detect_filt_win_size_6 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize6,
detect_filt_win_size_7 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize7,
detect_filt_win_size_8 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize8,
detect_filt_win_size_9 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize9,
detect_filt_win_size_10 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize10,
detect_filt_win_size_11 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize11,
detect_filt_win_size_12 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize12,
detect_filt_win_size_13 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize13,
detect_filt_win_size_14 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize14,
detect_filt_win_size_15 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize15,
detect_filt_win_size_16 = _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize16
}
ETAMPDET filter moving window size.
enum sl_etampdet_upper_clk_presc_t {
upper_clk_prescaler_bypass = _ETAMPDET_CLKPRESCVAL_UPPERPRESC_Bypass,
upper_clk_prescaler_divide_2 = _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy2,
upper_clk_prescaler_divide_4 = _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy4,
upper_clk_prescaler_divide_8 = _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy8,
upper_clk_prescaler_divide_16 = _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy16,
upper_clk_prescaler_divide_32 = _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy32,
upper_clk_prescaler_divide_64 = _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy64
}
ETAMPDET upper part of divider ripple counter.
enum sl_etampdet_lower_clk_presc_t {
lower_clk_prescaler_bypass = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_Bypass,
lower_clk_prescaler_divide_2 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy2,
lower_clk_prescaler_divide_3 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy3,
lower_clk_prescaler_divide_4 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy4,
lower_clk_prescaler_divide_5 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy5,
lower_clk_prescaler_divide_6 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy6,
lower_clk_prescaler_divide_7 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy7,
lower_clk_prescaler_divide_8 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy8,
lower_clk_prescaler_divide_9 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy9,
lower_clk_prescaler_divide_10 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy10,
lower_clk_prescaler_divide_11 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy11,
lower_clk_prescaler_divide_12 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy12,
lower_clk_prescaler_divide_13 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy13,
lower_clk_prescaler_divide_14 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy14,
lower_clk_prescaler_divide_15 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy15,
lower_clk_prescaler_divide_16 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy16,
lower_clk_prescaler_divide_17 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy17,
lower_clk_prescaler_divide_18 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy18,
lower_clk_prescaler_divide_19 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy19,
lower_clk_prescaler_divide_20 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy20,
lower_clk_prescaler_divide_21 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy21,
lower_clk_prescaler_divide_22 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy22,
lower_clk_prescaler_divide_23 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy23,
lower_clk_prescaler_divide_24 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy24,
lower_clk_prescaler_divide_25 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy25,
lower_clk_prescaler_divide_26 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy26,
lower_clk_prescaler_divide_27 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy27,
lower_clk_prescaler_divide_28 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy28,
lower_clk_prescaler_divide_29 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy29,
lower_clk_prescaler_divide_30 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy30,
lower_clk_prescaler_divide_31 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy31,
lower_clk_prescaler_divide_32 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy32,
lower_clk_prescaler_divide_33 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy33,
lower_clk_prescaler_divide_34 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy34,
lower_clk_prescaler_divide_35 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy35,
lower_clk_prescaler_divide_36 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy36,
lower_clk_prescaler_divide_37 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy37,
lower_clk_prescaler_divide_38 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy38,
lower_clk_prescaler_divide_39 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy39,
lower_clk_prescaler_divide_40 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy40,
lower_clk_prescaler_divide_41 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy41,
lower_clk_prescaler_divide_42 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy42,
lower_clk_prescaler_divide_43 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy43,
lower_clk_prescaler_divide_44 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy44,
lower_clk_prescaler_divide_45 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy45,
lower_clk_prescaler_divide_46 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy46,
lower_clk_prescaler_divide_47 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy47,
lower_clk_prescaler_divide_48 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy48,
lower_clk_prescaler_divide_49 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy49,
lower_clk_prescaler_divide_50 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy50,
lower_clk_prescaler_divide_51 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy51,
lower_clk_prescaler_divide_52 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy52,
lower_clk_prescaler_divide_53 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy53,
lower_clk_prescaler_divide_54 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy54,
lower_clk_prescaler_divide_55 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy55,
lower_clk_prescaler_divide_56 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy56,
lower_clk_prescaler_divide_57 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy57,
lower_clk_prescaler_divide_58 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy58,
lower_clk_prescaler_divide_59 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy59,
lower_clk_prescaler_divide_60 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy60,
lower_clk_prescaler_divide_61 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy61,
lower_clk_prescaler_divide_62 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy62,
lower_clk_prescaler_divide_63 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy63,
lower_clk_prescaler_divide_64 = _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy64
}
ETAMPDET lower part of divider binary counter.

Function Documentation

sl_etampdet_init()

void sl_etampdet_init ( const sl_etampdet_config_t * config )

Initialize ETAMPDET.

Parameters
[in] config The pointer to the initialization structure.
Note
User should call sl_etampdet_init_channel() for full initialization. This function should be called before sl_etampdet_init_channel()
The control registers setting of the GPIOs to be used by ETAMPDET should be at the default values to ensure that other clients are not accidentally driving the GPIOs that ETAMPDET is using.

sl_etampdet_init_channel()

void sl_etampdet_init_channel ( const sl_etampdet_config_channel_t * config_channel )

Initialize ETAMPDET channel.

Parameters
[in] config_channel The pointer to the channel initialization structure.
Note
User should call sl_etampdet_init() for full initialization.

sl_etampdet_wait_sync()

void sl_etampdet_wait_sync ( void )
inline

Wait for the ETAMPDET to complete all synchronization of register changes and commands.

sl_etampdet_wait_ready()

void sl_etampdet_wait_ready ( void )
inline

Wait for the ETAMPDET to complete disabling procedure.

sl_etampdet_enable()

void sl_etampdet_enable ( void )
inline

Enable ETAMPDET.

sl_etampdet_disable()

void sl_etampdet_disable ( void )
inline

Disable ETAMPDET.

sl_etampdet_load()

void sl_etampdet_load ( sl_etampdet_channel_t channel )
inline

Load seed value into channel LFSR.

Parameters
[in] channel The channel number.

sl_etampdet_start()

void sl_etampdet_start ( sl_etampdet_channel_t channel )
inline

Start ETAMPDET channel.

Parameters
[in] channel The channel number.

sl_etampdet_stop()

void sl_etampdet_stop ( sl_etampdet_channel_t channel )
inline

Stop ETAMPDET channel.

Parameters
[in] channel The channel number.

sl_etampdet_enable_interrupts()

void sl_etampdet_enable_interrupts ( uint32_t interrupts )
inline

Enable ETAMPDET interrupts.

Parameters
[in] interrupts The interrupts flags to enable.

sl_etampdet_disable_interrupts()

void sl_etampdet_disable_interrupts ( uint32_t interrupts )
inline

Disable ETAMPDET interrupts.

Parameters
[in] interrupts The interrupts flags to disable.

sl_etampdet_set_interrupts()

void sl_etampdet_set_interrupts ( uint32_t interrupts )
inline

Set ETAMPDET interrupts.

Parameters
[in] interrupts The interrupts flags to set.

sl_etampdet_clear_interrupts()

void sl_etampdet_clear_interrupts ( uint32_t interrupts )
inline

Clear ETAMPDET interrupts.

Parameters
[in] interrupts The interrupts flags to clear.

sl_etampdet_get_interrupts()

uint32_t sl_etampdet_get_interrupts ( void )
inline

Gets pending ETAMPDET interrupt flags.

Note
Event bits are not cleared by using this function.
Returns
Pending ETAMPDET interrupt sources. Returns a set of interrupt flags OR-ed together for multiple interrupt sources.

sl_etampdet_get_enabled_interrupts()

uint32_t sl_etampdet_get_enabled_interrupts ( void )
inline

Gets enabled and pending ETAMPDET interrupt flags.

Useful for handling more interrupt sources in the same interrupt handler.

Note
Interrupt flags are not cleared by using this function.
Returns
Pending and enabled ETAMPDET interrupt sources. The return value is the bitwise AND of
  • the enabled interrupt sources in ETAMPDET_IEN and
  • the pending interrupt flags ETAMPDET_IF.

sl_etampdet_lock()

void sl_etampdet_lock ( void )
inline

Lock ETAMPDET registers.

Note
When ETAMPDET registers are locked, ETAMPDET_EN, ETAMPDET_CFG, ETAMPDET_CMD, ETAMPDET_CHNLSEEDVALx, ETAMPDET_CNTMISMATCHMAX, ETAMPDET_CHNLFILTWINSIZE, ETAMPDET_EM4WUEN and ETAMPDET_CLKPRESCVAL registers cannot be written to.

sl_etampdet_unlock()

void sl_etampdet_unlock ( void )
inline

Unlock ETAMPDET registers.

Note
When ETAMPDET registers are unlocked, registers are writable.

sl_etampdet_get_status()

uint32_t sl_etampdet_get_status ( void )
inline

Gets ETAMPDET STATUS register value.

Returns
Current STATUS register value.

sl_etampdet_set_seed_value()

void sl_etampdet_set_seed_value ( uint32_t seed_value,
sl_etampdet_channel_t channel
)
inline

Set ETAMPDET channel seed value.

Parameters
[in] channel The channel to set seed value.
[in] seed_value The seed value to set into LFSR of the channel.
Note
It is recommended to get the random seed value using TRNG (True random Number Generator) peripheral.

sl_etampdet_get_seed_value()

uint32_t sl_etampdet_get_seed_value ( sl_etampdet_channel_t channel )
inline

Get ETAMPDET channel seed value.

Parameters
[in] channel The channel to get seed value from.
Returns
The seed value of the channel.

Macro Definition Documentation

ETAMPDET_CONFIG_CHANNEL_DEFAULT

#define ETAMPDET_CONFIG_CHANNEL_DEFAULT
Value:
{ \
0x13579BDF, /* Set default seed value. */ \
channel_0, /* Choose channel 0.*/ \
detect_filt_win_size_2, /* Set default filter win size. */ \
detect_filt_threshold_1, /* Set Detect filter threshold. */ \
false, /* Enable channel driving pad. */ \
false, /* Disable channel filtering. */ \
false, /* Disable 1 clock delay. */ \
false, /* Enable EM4 wakeup. */ \
} \

ETAMPDET default channel configuration.

ETAMPDET_CONFIG_DEFAULT

#define ETAMPDET_CONFIG_DEFAULT
Value:
{ \
upper_clk_prescaler_bypass, /* Bypass upper prescaler. */ \
lower_clk_prescaler_bypass, /* Bypass lower prescaler.*/ \
} \

ETAMPDET default configuration.

Enumeration Type Documentation

sl_etampdet_channel_t

ETAMPDET channels.

Enumerator
channel_0

Channel 0.

channel_1

Channel 1.

sl_etampdet_channel_cnt_mismatch_threshold_t

ETAMPDET filter thresholds.

Enumerator
detect_filt_threshold_1

Raise detect flag after seeing 1 event before reset counter expire.

detect_filt_threshold_2

Raise detect flag after seeing 2 events before reset counter expire.

detect_filt_threshold_3

Raise detect flag after seeing 3 events before reset counter expire.

detect_filt_threshold_4

Raise detect flag after seeing 4 events before reset counter expire.

detect_filt_threshold_5

Raise detect flag after seeing 5 events before reset counter expire.

detect_filt_threshold_6

Raise detect flag after seeing 6 events before reset counter expire.

detect_filt_threshold_7

Raise detect flag after seeing 7 events before reset counter expire.

detect_filt_threshold_8

Raise detect flag after seeing 8 events before reset counter expire.

sl_etampdet_channel_filt_win_size_t

ETAMPDET filter moving window size.

Enumerator
detect_filt_win_size_2

Detect filter moving window size 2.

detect_filt_win_size_3

Detect filter moving window size 3.

detect_filt_win_size_4

Detect filter moving window size 4.

detect_filt_win_size_5

Detect filter moving window size 5.

detect_filt_win_size_6

Detect filter moving window size 6.

detect_filt_win_size_7

Detect filter moving window size 7.

detect_filt_win_size_8

Detect filter moving window size 8.

detect_filt_win_size_9

Detect filter moving window size 9.

detect_filt_win_size_10

Detect filter moving window size 10.

detect_filt_win_size_11

Detect filter moving window size 11.

detect_filt_win_size_12

Detect filter moving window size 12.

detect_filt_win_size_13

Detect filter moving window size 13.

detect_filt_win_size_14

Detect filter moving window size 14.

detect_filt_win_size_15

Detect filter moving window size 15.

detect_filt_win_size_16

Detect filter moving window size 16.

sl_etampdet_upper_clk_presc_t

ETAMPDET upper part of divider ripple counter.

Enumerator
upper_clk_prescaler_bypass

Ripple counter divider bypassed.

upper_clk_prescaler_divide_2

Divide by 2.

upper_clk_prescaler_divide_4

Divide by 4.

upper_clk_prescaler_divide_8

Divide by 8.

upper_clk_prescaler_divide_16

Divide by 16.

upper_clk_prescaler_divide_32

Divide by 32.

upper_clk_prescaler_divide_64

Divide by 64.

sl_etampdet_lower_clk_presc_t

ETAMPDET lower part of divider binary counter.

Enumerator
lower_clk_prescaler_bypass

Divider is bypassed.

lower_clk_prescaler_divide_2

Divide by 2.

lower_clk_prescaler_divide_3

Divide by 3.

lower_clk_prescaler_divide_4

Divide by 4.

lower_clk_prescaler_divide_5

Divide by 5.

lower_clk_prescaler_divide_6

Divide by 6.

lower_clk_prescaler_divide_7

Divide by 7.

lower_clk_prescaler_divide_8

Divide by 8.

lower_clk_prescaler_divide_9

Divide by 9.

lower_clk_prescaler_divide_10

Divide by 10.

lower_clk_prescaler_divide_11

Divide by 11.

lower_clk_prescaler_divide_12

Divide by 12.

lower_clk_prescaler_divide_13

Divide by 13.

lower_clk_prescaler_divide_14

Divide by 14.

lower_clk_prescaler_divide_15

Divide by 15.

lower_clk_prescaler_divide_16

Divide by 16.

lower_clk_prescaler_divide_17

Divide by 17.

lower_clk_prescaler_divide_18

Divide by 18.

lower_clk_prescaler_divide_19

Divide by 19.

lower_clk_prescaler_divide_20

Divide by 20.

lower_clk_prescaler_divide_21

Divide by 21.

lower_clk_prescaler_divide_22

Divide by 22.

lower_clk_prescaler_divide_23

Divide by 23.

lower_clk_prescaler_divide_24

Divide by 24.

lower_clk_prescaler_divide_25

Divide by 25.

lower_clk_prescaler_divide_26

Divide by 26.

lower_clk_prescaler_divide_27

Divide by 27.

lower_clk_prescaler_divide_28

Divide by 28.

lower_clk_prescaler_divide_29

Divide by 29.

lower_clk_prescaler_divide_30

Divide by 30.

lower_clk_prescaler_divide_31

Divide by 31.

lower_clk_prescaler_divide_32

Divide by 32.

lower_clk_prescaler_divide_33

Divide by 33.

lower_clk_prescaler_divide_34

Divide by 34.

lower_clk_prescaler_divide_35

Divide by 35.

lower_clk_prescaler_divide_36

Divide by 36.

lower_clk_prescaler_divide_37

Divide by 37.

lower_clk_prescaler_divide_38

Divide by 38.

lower_clk_prescaler_divide_39

Divide by 39.

lower_clk_prescaler_divide_40

Divide by 40.

lower_clk_prescaler_divide_41

Divide by 41.

lower_clk_prescaler_divide_42

Divide by 42.

lower_clk_prescaler_divide_43

Divide by 43.

lower_clk_prescaler_divide_44

Divide by 44.

lower_clk_prescaler_divide_45

Divide by 45.

lower_clk_prescaler_divide_46

Divide by 46.

lower_clk_prescaler_divide_47

Divide by 47.

lower_clk_prescaler_divide_48

Divide by 48.

lower_clk_prescaler_divide_49

Divide by 49.

lower_clk_prescaler_divide_50

Divide by 50.

lower_clk_prescaler_divide_51

Divide by 51.

lower_clk_prescaler_divide_52

Divide by 52.

lower_clk_prescaler_divide_53

Divide by 53.

lower_clk_prescaler_divide_54

Divide by 54.

lower_clk_prescaler_divide_55

Divide by 55.

lower_clk_prescaler_divide_56

Divide by 56.

lower_clk_prescaler_divide_57

Divide by 57.

lower_clk_prescaler_divide_58

Divide by 58.

lower_clk_prescaler_divide_59

Divide by 59.

lower_clk_prescaler_divide_60

Divide by 60.

lower_clk_prescaler_divide_61

Divide by 61.

lower_clk_prescaler_divide_62

Divide by 62.

lower_clk_prescaler_divide_63

Divide by 63.

lower_clk_prescaler_divide_64

Divide by 64.