Azure Sphere MT3620 M4 API Reference Manual
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Function

This section provides Fixed APIs(defined as Common Interface) to fully control the MediaTek GPT HW. More...

Overview

This section provides Fixed APIs(defined as Common Interface) to fully control the MediaTek GPT HW.

Functions

int mtk_mhal_gpt_set_compare (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id, u32 cmp_val)
 This function is used to set GPT timeout value. More...
 
int mtk_mhal_gpt_config_mode (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id, enum gpt_mode mode)
 This function is used to configure GPT interrupt mode. More...
 
int mtk_mhal_gpt_enable_irq (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id)
 This function is used to enable GPT IRQ. More...
 
int mtk_mhal_gpt_disable_irq (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id)
 This function is used to disable GPT IRQ. More...
 
int mtk_mhal_gpt_get_irq_status (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id, unsigned int *int_sta)
 This function is used to get GPT IRQ status. More...
 
int mtk_mhal_gpt_clear_irq_status (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id)
 This function is used to clear GPT IRQ status. More...
 
int mtk_mhal_gpt_start (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id)
 This function is used to start GPT. More...
 
int mtk_mhal_gpt_stop (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id)
 This function is used to stop GPT. More...
 
int mtk_mhal_gpt_restart_count (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id)
 This function is used to restart GPT counter. More...
 
int mtk_mhal_gpt_get_count (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id, u32 *cnt_val)
 This function is used to get GPT counter's value. More...
 
int mtk_mhal_gpt_config_clk (struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id, enum gpt_clk clk)
 This function is used to configure GPT clock speed. More...
 

Function Documentation

int mtk_mhal_gpt_set_compare ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id,
u32  cmp_val 
)

This function is used to set GPT timeout value.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
[in]cmp_val: GPT timeout count value. (unit: one tick of timer clock speed)
Returns
0: Success.
-GPT_EPTR: Failure if gpt_dev or gpt_dev->cm4_gpt_base is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.
-GPT_EACCES: Failure if this timer no need to set timeout value.
int mtk_mhal_gpt_config_mode ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id,
enum gpt_mode  mode 
)

This function is used to configure GPT interrupt mode.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
[in]mode: Mode as enum gpt_mode.
Returns
0: Success.
-GPT_EPTR: Failure if gpt_dev or gpt_dev->cm4_gpt_base is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.
-GPT_EACCES: Failure if this timer cannot choose interrupt mode.
int mtk_mhal_gpt_enable_irq ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id 
)

This function is used to enable GPT IRQ.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
Returns
0: Success.
-GPT_EPTR: Failure if gpt_dev or gpt_dev->cm4_gpt_base is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.
-GPT_EACCES: Failure if this timer has no interrupt mode or cannot enable IRQ through GPT register.
int mtk_mhal_gpt_disable_irq ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id 
)

This function is used to disable GPT IRQ.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
Returns
0: Success.
-GPT_EPTR: Failure if gpt_dev or gpt_dev->cm4_gpt_base is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.
-GPT_EACCES: Failure if this timer has no interrupt mode or cannot disable IRQ through GPT register.
int mtk_mhal_gpt_get_irq_status ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id,
unsigned int *  int_sta 
)

This function is used to get GPT IRQ status.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
[out]int_sta: A pointer to a variable which is used to return timer interrupt status.
1: Interrupt status exists.
0: No interrupt status.
Returns
0: Get timer's interrupt status successfully.
-GPT_EPTR: Failure if gpt_dev, gpt_dev->cm4_gpt_base or int_sta is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.
-GPT_EACCES: Failure if this timer has no interrupt mode or cannot get IRQ status from GPT register.
int mtk_mhal_gpt_clear_irq_status ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id 
)

This function is used to clear GPT IRQ status.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
Returns
0: Success.
-GPT_EPTR: Failure if gpt_dev or gpt_dev->cm4_gpt_base is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.
-GPT_EACCES: Failure if this timer has no interrupt mode and cannot clear IRQ status in GPT register.
int mtk_mhal_gpt_start ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id 
)

This function is used to start GPT.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
Returns
0: Success.
-GPT_EPTR: Failure if gpt_dev or gpt_dev->cm4_gpt_base is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.
int mtk_mhal_gpt_stop ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id 
)

This function is used to stop GPT.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
Returns
0: Success.
-GPT_EPTR: Failure if gpt_dev or gpt_dev->cm4_gpt_base is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.
int mtk_mhal_gpt_restart_count ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id 
)

This function is used to restart GPT counter.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
Returns
0: Success.
-GPT_EPTR: Failure if gpt_dev or gpt_dev->cm4_gpt_base is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.
int mtk_mhal_gpt_get_count ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id,
u32 *  cnt_val 
)

This function is used to get GPT counter's value.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
[out]cnt_val: A pointer to a variable which is used to return timer counter's value. (unit: one tick of timer clock speed)
Returns
0: Success. And the timer counter's value is saved in *cnt_val.
-GPT_EPTR: Failure if gpt_dev, gpt_dev->cm4_gpt_base or cnt_val is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.
int mtk_mhal_gpt_config_clk ( struct hal_gpt_dev gpt_dev,
enum gpt_num  timer_id,
enum gpt_clk  clk 
)

This function is used to configure GPT clock speed.

Parameters
[in]gpt_dev: A pointer of struct hal_gpt_dev.
[in]timer_id: Timer ID of current GPT device.
[in]clk: Clock speed as enum gpt_clk.
Returns
0: Success.
-GPT_EPTR: Failure if gpt_dev or gpt_dev->cm4_gpt_base is NULL pointer.
-GPT_ENODEV: Failure if timer ID beyond the limitation.