Hardware Abstraction Layer (HAL)
All Data Structures Functions Variables Typedefs Enumerations Enumerator Modules Pages

General Description

Routines for accessing global resources shared across multiple drivers.

Functions

uint32_t _cyhal_system_chipcontrol (volatile uint32_t *addr_reg, volatile uint32_t *ctrl_reg, uint8_t reg_offset, uint32_t clear_mask, uint32_t set_mask)
 Write to a chip control register. More...
 
uint32_t _cyhal_system_common_chipcontrol (volatile uint32_t *reg, uint32_t clear_mask, uint32_t set_mask)
 Write to a common chip control register. More...
 
uint32_t _cyhal_system_chipstatus (volatile uint32_t *addr_reg, volatile uint32_t *status_reg, uint8_t reg_offset)
 Read from a chip status register. More...
 
static uint32_t _cyhal_system_gci_chipcontrol (uint8_t reg_offset, uint32_t clear_mask, uint32_t set_mask)
 Write to GCI chip control register. More...
 
static uint32_t _cyhal_system_gci_chipstatus (uint8_t reg_offset)
 Read from GCI chip status register. More...
 
static uint32_t _cyhal_system_gci_gpiocontrol (uint8_t reg_offset, uint32_t clear_mask, uint32_t set_mask)
 Write to GCI GPIO control register. More...
 
static uint32_t _cyhal_system_gci_gpiostatus (uint8_t reg_offset, uint32_t clear_mask, uint32_t set_mask)
 Write to GCI GPIO status register. More...
 
static uint32_t _cyhal_system_gci_gpiowakemask (uint8_t reg_offset, uint32_t clear_mask, uint32_t set_mask)
 Write to GCI GPIO wake make register. More...
 
static uint32_t _cyhal_system_pmu_chipcontrol (uint8_t reg_offset, uint32_t clear_mask, uint32_t set_mask)
 Write to PMU chip control register. More...
 
static uint32_t _cyhal_system_pmu_res_updown_time (uint8_t reg_offset, uint32_t clear_mask, uint32_t set_mask)
 Write to PMU resource up/down register. More...
 
static uint32_t _cyhal_system_pmu_res_dep_mask (uint8_t reg_offset, uint32_t clear_mask, uint32_t set_mask)
 Write to PMU resource dependency mask register. More...
 
static uint32_t _cyhal_system_pmu_regulatorcontrol (uint8_t reg_offset, uint32_t clear_mask, uint32_t set_mask)
 Write to PMU regulator control register. More...
 
static uint32_t _cyhal_system_pmu_pllcontrol (uint8_t reg_offset, uint32_t clear_mask, uint32_t set_mask)
 Write to PMU PLL control register. More...
 
void _cyhal_system_pinmux_connect (cyhal_gpio_t pin, int gci_chipcontrol_mux)
 Connect pin multiplexer. More...
 
bool _cyhal_system_irq_remap_sink (uint8_t bus_line_num, uint8_t sink_num)
 Route an interrupt bus line to an external interrupt. More...
 
bool _cyhal_system_irq_remap_source (uint32_t wrapper_addr, uint8_t source_num, uint8_t bus_line_num)
 Route an interrupt source to an interrupt bus line. More...
 
void _cyhal_syspm_register_peripheral_callback (cyhal_syspm_callback_data_t *callback_data)
 Register an internal peripheral callback. More...
 
void _cyhal_syspm_unregister_peripheral_callback (cyhal_syspm_callback_data_t *callback_data)
 Unregister an internal peripheral callback. More...
 
void _cyhal_system_timer_enable_irq (void)
 Enable external interrupts from Timer to APPS Core.
 
static void _cyhal_system_timer_disable_irq (void)
 Disable external interrupts from Timer to APPS Core.
 
static void _cyhal_system_chipcommon_disable_irq (void)
 Disable external interrupts from ChipCommon to APPS Core.
 
static void _cyhal_system_chipcommon_enable_irq (void)
 Enable external interrupts from ChipCommon to APPS Core.
 
static void _cyhal_system_m2m_disable_irq (void)
 Disable external interrupts from M2M_ExtIRQn to APPS Core.
 
static void _cyhal_system_m2m_enable_irq (void)
 Enable external interrupts from M2M_ExtIRQn to APPS Core.
 
static void _cyhal_system_sw0_disable_irq (void)
 Disable external interrupts from SW0_ExtIRQn to APPS Core.
 
static void _cyhal_system_sw0_enable_irq (void)
 Enable external interrupts from SW0_ExtIRQn to APPS Core.
 

Function Documentation

◆ _cyhal_system_chipcontrol()

uint32_t _cyhal_system_chipcontrol ( volatile uint32_t *  addr_reg,
volatile uint32_t *  ctrl_reg,
uint8_t  reg_offset,
uint32_t  clear_mask,
uint32_t  set_mask 
)

Write to a chip control register.

This is used to write to an indirect register not directly accessible by the CPU.

Parameters
[in]addr_regBase address
[in]ctrl_regControl register
[in]reg_offsetOffset value to access the register
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_common_chipcontrol()

uint32_t _cyhal_system_common_chipcontrol ( volatile uint32_t *  reg,
uint32_t  clear_mask,
uint32_t  set_mask 
)

Write to a common chip control register.

This is used to directly write to a control register.

Parameters
[in]regRegister to write
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_chipstatus()

uint32_t _cyhal_system_chipstatus ( volatile uint32_t *  addr_reg,
volatile uint32_t *  status_reg,
uint8_t  reg_offset 
)

Read from a chip status register.

This is used to read from an indirect status register not directly accessible by the CPU.

Parameters
[in]addr_regBase address
[in]status_regStatus register
[in]reg_offsetOffset value to access the register
Returns
Value read

◆ _cyhal_system_gci_chipcontrol()

static uint32_t _cyhal_system_gci_chipcontrol ( uint8_t  reg_offset,
uint32_t  clear_mask,
uint32_t  set_mask 
)
inlinestatic

Write to GCI chip control register.

This is used to write to an indirect GCI CC register not directly accessible by the CPU.

Parameters
[in]reg_offsetRegister to write
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_gci_chipstatus()

static uint32_t _cyhal_system_gci_chipstatus ( uint8_t  reg_offset)
inlinestatic

Read from GCI chip status register.

This is used to read from an indirect status register not directly accessible by the CPU.

Parameters
[in]reg_offsetOffset value to access the register
Returns
Value read

◆ _cyhal_system_gci_gpiocontrol()

static uint32_t _cyhal_system_gci_gpiocontrol ( uint8_t  reg_offset,
uint32_t  clear_mask,
uint32_t  set_mask 
)
inlinestatic

Write to GCI GPIO control register.

This is used to write to an indirect GCI GPIO register not directly accessible by the CPU.

Parameters
[in]reg_offsetRegister to write
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_gci_gpiostatus()

static uint32_t _cyhal_system_gci_gpiostatus ( uint8_t  reg_offset,
uint32_t  clear_mask,
uint32_t  set_mask 
)
inlinestatic

Write to GCI GPIO status register.

This is used to write to an indirect GCI GPIO status register not directly accessible by the CPU.

Parameters
[in]reg_offsetRegister to write
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_gci_gpiowakemask()

static uint32_t _cyhal_system_gci_gpiowakemask ( uint8_t  reg_offset,
uint32_t  clear_mask,
uint32_t  set_mask 
)
inlinestatic

Write to GCI GPIO wake make register.

This is used to write to an indirect GCI GPIO wake mask register not directly accessible by the CPU.

Parameters
[in]reg_offsetRegister to write
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_pmu_chipcontrol()

static uint32_t _cyhal_system_pmu_chipcontrol ( uint8_t  reg_offset,
uint32_t  clear_mask,
uint32_t  set_mask 
)
inlinestatic

Write to PMU chip control register.

This is used to write to an indirect PMU CC register not directly accessible by the CPU.

Parameters
[in]reg_offsetRegister to write
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_pmu_res_updown_time()

static uint32_t _cyhal_system_pmu_res_updown_time ( uint8_t  reg_offset,
uint32_t  clear_mask,
uint32_t  set_mask 
)
inlinestatic

Write to PMU resource up/down register.

This is used to write to an indirect PMU resource updown register not directly accessible by the CPU.

Parameters
[in]reg_offsetRegister to write
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_pmu_res_dep_mask()

static uint32_t _cyhal_system_pmu_res_dep_mask ( uint8_t  reg_offset,
uint32_t  clear_mask,
uint32_t  set_mask 
)
inlinestatic

Write to PMU resource dependency mask register.

This is used to write to an indirect PMU resource dependency register not directly accessible by the CPU.

Parameters
[in]reg_offsetRegister to write
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_pmu_regulatorcontrol()

static uint32_t _cyhal_system_pmu_regulatorcontrol ( uint8_t  reg_offset,
uint32_t  clear_mask,
uint32_t  set_mask 
)
inlinestatic

Write to PMU regulator control register.

This is used to write to an indirect PMU regulator control register not directly accessible by the CPU.

Parameters
[in]reg_offsetRegister to write
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_pmu_pllcontrol()

static uint32_t _cyhal_system_pmu_pllcontrol ( uint8_t  reg_offset,
uint32_t  clear_mask,
uint32_t  set_mask 
)
inlinestatic

Write to PMU PLL control register.

This is used to write to an indirect PMU PLL control register not directly accessible by the CPU.

Parameters
[in]reg_offsetRegister to write
[in]clear_maskClear mask value
[in]set_maskSet mask value
Returns
Value written

◆ _cyhal_system_pinmux_connect()

void _cyhal_system_pinmux_connect ( cyhal_gpio_t  pin,
int  gci_chipcontrol_mux 
)

Connect pin multiplexer.

This function allows connecting/multiplexing peripherals to pins. Do not use this for CPU (SW) driven GPIO. Use the GPIO driver instead. Note that pin states can always be read by the CPU using the GPIO driver.

Parameters
[in]pinPin pad
[in]gci_chipcontrol_muxMux selection value

◆ _cyhal_system_irq_remap_sink()

bool _cyhal_system_irq_remap_sink ( uint8_t  bus_line_num,
uint8_t  sink_num 
)

Route an interrupt bus line to an external interrupt.

This function should be used with the _cyhal_system_irq_remap_source() function.

Parameters
[in]bus_line_numBus line number
[in]sink_numExternal interrupt number
Returns
Success (true), Failed (false)

◆ _cyhal_system_irq_remap_source()

bool _cyhal_system_irq_remap_source ( uint32_t  wrapper_addr,
uint8_t  source_num,
uint8_t  bus_line_num 
)

Route an interrupt source to an interrupt bus line.

This function should be used with the _cyhal_system_irq_remap_sink() function.

Parameters
[in]wrapper_addrWrapper base address
[in]source_numInterrupt source number
[in]bus_line_numBus line number
Returns
Success (true), Failed (false)

◆ _cyhal_syspm_register_peripheral_callback()

void _cyhal_syspm_register_peripheral_callback ( cyhal_syspm_callback_data_t callback_data)

Register an internal peripheral callback.

Parameters
[in]callback_dataPointer to callback data

◆ _cyhal_syspm_unregister_peripheral_callback()

void _cyhal_syspm_unregister_peripheral_callback ( cyhal_syspm_callback_data_t callback_data)

Unregister an internal peripheral callback.

Parameters
[in]callback_dataPointer to callback data