S32 SDK
pcc_hal.h File Reference
#include "device_registers.h"
#include <stdbool.h>

Go to the source code of this file.

Data Structures

struct  peripheral_clock_config_t
 PCC peripheral instance clock configuration. Implements peripheral_clock_config_t_Class. More...
 
struct  pcc_config_t
 PCC configuration. Implements pcc_config_t_Class. More...
 

Enumerations

enum  peripheral_clock_source_t {
  CLK_SRC_OFF = 0x00U, CLK_SRC_SOSC = 0x01U, CLK_SRC_SIRC = 0x02U, CLK_SRC_FIRC = 0x03U,
  CLK_SRC_SPLL = 0x06U
}
 PCC clock source select Implements peripheral_clock_source_t_Class. More...
 
enum  peripheral_clock_frac_t { MULTIPLY_BY_ONE = 0x00U, MULTIPLY_BY_TWO = 0x01U }
 PCC fractional value select Implements peripheral_clock_frac_t_Class. More...
 
enum  peripheral_clock_divider_t {
  DIVIDE_BY_ONE = 0x00U, DIVIDE_BY_TWO = 0x01U, DIVIDE_BY_THREE = 0x02U, DIVIDE_BY_FOUR = 0x03U,
  DIVIDE_BY_FIVE = 0x04U, DIVIDE_BY_SIX = 0x05U, DIVIDE_BY_SEVEN = 0x06U, DIVIDE_BY_EIGTH = 0x07U
}
 PCC divider value select Implements peripheral_clock_divider_t_Class. More...
 

Functions

System Clock.
void PCC_HAL_SetPeripheralClockConfig (PCC_Type *const base, const pcc_config_t *const config)
 Set the peripheral clock configuration. More...
 
static void PCC_HAL_SetClockMode (PCC_Type *const base, const clock_names_t clockName, const bool isClockEnabled)
 Enables/disables the clock for a given peripheral. For example, to enable the ADC0 clock, use like this: More...
 
static void PCC_HAL_SetClockSourceSel (PCC_Type *const base, const clock_names_t clockName, const peripheral_clock_source_t clockSource)
 Selects the clock source for a given peripheral For example, to select the FIRC source for ADC clock, use like this: More...
 
static void PCC_HAL_SetFracValueSel (PCC_Type *const base, const clock_names_t clockName, const peripheral_clock_frac_t fracValue)
 Selects the fractional value for a given peripheral For example, to configure MULTIPLY_BY_ONE as fractional value for WDOG, use like this: More...
 
static void PCC_HAL_SetDividerValueSel (PCC_Type *const base, const clock_names_t clockName, const peripheral_clock_divider_t divValue)
 Selects the divider value for a given peripheral For example, to configure DIVIDE_BY_ONE as divider value for WDOG, use like this: More...
 
static bool PCC_HAL_GetClockMode (const PCC_Type *const base, const clock_names_t clockName)
 Gets the clock gate control mode. More...
 
static peripheral_clock_source_t PCC_HAL_GetClockSourceSel (const PCC_Type *const base, const clock_names_t clockName)
 Gets the selection of a clock source for a specific peripheral. More...
 
static peripheral_clock_frac_t PCC_HAL_GetFracValueSel (const PCC_Type *const base, const clock_names_t clockName)
 Gets the selection of the fractional value for a specific peripheral. More...
 
static peripheral_clock_divider_t PCC_HAL_GetDividerSel (const PCC_Type *const base, const clock_names_t clockName)
 Gets the selection of the divider value for a specific peripheral. More...
 
static bool PCC_HAL_GetPeripheralMode (const PCC_Type *const base, const clock_names_t clockName)
 Tells whether a given peripheral is present or not. More...
 

Variables

const uint16_t clockNameMappings [CLOCK_NAME_COUNT]
 Clock name mappings Constant array storing the mappings between clock names and peripheral clock control indexes. If there is no peripheral clock control index for a clock name, then the corresponding value is PCC_INVALID_INDEX. More...