Azure Sphere MT3620 M4 API Reference Manual
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
mhal_gpt.h
1 /*
2  * (C) 2005-2020 MediaTek Inc. All rights reserved.
3  *
4  * Copyright Statement:
5  *
6  * This MT3620 driver software/firmware and related documentation
7  * ("MediaTek Software") are protected under relevant copyright laws.
8  * The information contained herein is confidential and proprietary to
9  * MediaTek Inc. ("MediaTek"). You may only use, reproduce, modify, or
10  * distribute (as applicable) MediaTek Software if you have agreed to and been
11  * bound by this Statement and the applicable license agreement with MediaTek
12  * ("License Agreement") and been granted explicit permission to do so within
13  * the License Agreement ("Permitted User"). If you are not a Permitted User,
14  * please cease any access or use of MediaTek Software immediately.
15  *
16  * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
17  * THAT MEDIATEK SOFTWARE RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
18  * PROVIDED TO RECEIVER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS
19  * ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
21  * NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH
22  * RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
23  * INCORPORATED IN, OR SUPPLIED WITH MEDIATEK SOFTWARE, AND RECEIVER AGREES TO
24  * LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
25  * RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
26  * OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN MEDIATEK
27  * SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE
28  * RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
29  * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S
30  * ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO MEDIATEK SOFTWARE RELEASED
31  * HEREUNDER WILL BE ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
32  * RECEIVER TO MEDIATEK DURING THE PRECEDING TWELVE (12) MONTHS FOR SUCH
33  * MEDIATEK SOFTWARE AT ISSUE.
34  */
35 
36 #ifndef __MHAL_GPT_H__
37 #define __MHAL_GPT_H__
38 
39 #include "mhal_osai.h"
40 
134 #define GPT_EPTR 1
135 
136 #define GPT_ENODEV 2
137 
141 #define GPT_EACCES 3
142 
157 enum gpt_num {
158  GPT0 = 0,
159  GPT1 = 1,
160  GPT2 = 2,
161  GPT3 = 3,
162  GPT4 = 4,
163  GPT_MAX_NUM
164 };
165 
171 enum gpt_mode {
176 };
177 
185 enum gpt_clk {
190 };
191 
206 struct hal_gpt_dev {
208  void __iomem *cm4_gpt_base;
209 };
210 
222 #ifdef __cplusplus
223 extern "C" {
224 #endif
225 
226 
240 int mtk_mhal_gpt_set_compare(struct hal_gpt_dev *gpt_dev,
241  enum gpt_num timer_id,
242  u32 cmp_val);
243 
256 int mtk_mhal_gpt_config_mode(struct hal_gpt_dev *gpt_dev,
257  enum gpt_num timer_id,
258  enum gpt_mode mode);
259 
272 int mtk_mhal_gpt_enable_irq(struct hal_gpt_dev *gpt_dev,
273  enum gpt_num timer_id);
274 
287 int mtk_mhal_gpt_disable_irq(struct hal_gpt_dev *gpt_dev,
288  enum gpt_num timer_id);
289 
306 int mtk_mhal_gpt_get_irq_status(struct hal_gpt_dev *gpt_dev,
307  enum gpt_num timer_id,
308  unsigned int *int_sta);
309 
322 int mtk_mhal_gpt_clear_irq_status(struct hal_gpt_dev *gpt_dev,
323  enum gpt_num timer_id);
324 
335 int mtk_mhal_gpt_start(struct hal_gpt_dev *gpt_dev,
336  enum gpt_num timer_id);
337 
348 int mtk_mhal_gpt_stop(struct hal_gpt_dev *gpt_dev,
349  enum gpt_num timer_id);
350 
361 int mtk_mhal_gpt_restart_count(struct hal_gpt_dev *gpt_dev,
362  enum gpt_num timer_id);
363 
376 int mtk_mhal_gpt_get_count(struct hal_gpt_dev *gpt_dev,
377  enum gpt_num timer_id,
378  u32 *cnt_val);
379 
391 int mtk_mhal_gpt_config_clk(struct hal_gpt_dev *gpt_dev,
392  enum gpt_num timer_id,
393  enum gpt_clk clk);
394 
395 #ifdef __cplusplus
396 }
397 #endif
398 
408 #endif /* __MHAL_GPT_H__ */
Configure GPT timer as one-shot mode.
Definition: mhal_gpt.h:173
gpt_clk
GPT timer's clock speeds enum definition.
Definition: mhal_gpt.h:185
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.
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.
Configure GPT timer's clock speed as 1K mode.
Definition: mhal_gpt.h:187
void __iomem * cm4_gpt_base
Register base address of the GPT device unit.
Definition: mhal_gpt.h:208
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.
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.
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.
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.
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.
int mtk_mhal_gpt_stop(struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id)
This function is used to stop GPT.
gpt_mode
GPT timer interrupt mode enum definition.
Definition: mhal_gpt.h:171
int mtk_mhal_gpt_start(struct hal_gpt_dev *gpt_dev, enum gpt_num timer_id)
This function is used to start GPT.
gpt_num
GPT timer ID enum definition.
Definition: mhal_gpt.h:157
Configure GPT timer as repeat mode.
Definition: mhal_gpt.h:175
The interface to GPT device.
Definition: mhal_gpt.h:206
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.
Configure GPT timer's clock speed as 32K mode.
Definition: mhal_gpt.h:189
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.