MT7687 API Reference  LinkIt SDK v4
hal_accdet.h
1 /* Copyright Statement:
2  *
3  * (C) 2005-2016 MediaTek Inc. All rights reserved.
4  *
5  * This software/firmware and related documentation ("MediaTek Software") are
6  * protected under relevant copyright laws. The information contained herein
7  * is confidential and proprietary to MediaTek Inc. ("MediaTek") and/or its licensors.
8  * Without the prior written permission of MediaTek and/or its licensors,
9  * any reproduction, modification, use or disclosure of MediaTek Software,
10  * and information contained herein, in whole or in part, shall be strictly prohibited.
11  * You may only use, reproduce, modify, or distribute (as applicable) MediaTek Software
12  * if you have agreed to and been bound by the applicable license agreement with
13  * MediaTek ("License Agreement") and been granted explicit permission to do so within
14  * the License Agreement ("Permitted User"). If you are not a Permitted User,
15  * please cease any access or use of MediaTek Software immediately.
16  * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
17  * THAT MEDIATEK SOFTWARE RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES
18  * ARE PROVIDED TO RECEIVER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL
19  * WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
21  * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
22  * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
23  * SUPPLIED WITH MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
24  * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
25  * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
26  * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
27  * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
28  * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
29  * CUMULATIVE LIABILITY WITH RESPECT TO MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
30  * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE MEDIATEK SOFTWARE AT ISSUE,
31  * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
32  * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
33  */
34 
35 #ifndef __HAL_ACCDET_H__
36 #define __HAL_ACCDET_H__
37 #include "hal_platform.h"
38 
39 #ifdef HAL_ACCDET_MODULE_ENABLED
40 
131 #ifdef __cplusplus
132 extern "C" {
133 #endif
134 
135 
136 /*****************************************************************************
137  * Enums
138  *****************************************************************************/
139 
145 typedef enum {
146  HAL_ACCDET_EVENT_HOOK_KEY = 0,
147  HAL_ACCDET_EVENT_PLUG_IN = 1,
148  HAL_ACCDET_EVENT_ERROR = 2,
149  HAL_ACCDET_EVENT_PLUG_OUT = 3
150 } hal_accdet_callback_event_t;
151 
152 
154 typedef enum {
155  HAL_ACCDET_STATUS_INVALID_PARAMETER = -3,
156  HAL_ACCDET_STATUS_ERROR_BUSY = -2,
157  HAL_ACCDET_STATUS_ERROR = -1,
158  HAL_ACCDET_STATUS_OK = 0
159 } hal_accdet_status_t;
160 
165 /*****************************************************************************
166  * Structures
167  *****************************************************************************/
168 
174 typedef struct {
175  uint16_t accdet_hook_key_debounce;
176  uint16_t accdet_plug_in_debounce;
177  uint16_t accdet_plug_out_debounce;
178 } hal_accdet_debounce_time_t;
179 
189 typedef void (*hal_accdet_callback_t)(hal_accdet_callback_event_t event, void *user_data);
190 
195 /*****************************************************************************
196  * Functions
197  *****************************************************************************/
198 
205 hal_accdet_status_t hal_accdet_init(void);
206 
207 
213 hal_accdet_status_t hal_accdet_deinit(void);
214 
215 
221 hal_accdet_status_t hal_accdet_enable(void);
222 
223 
229 hal_accdet_status_t hal_accdet_disable(void);
230 
231 
240 hal_accdet_status_t hal_accdet_register_callback(hal_accdet_callback_t accdet_callback, void *user_data);
241 
242 
250 hal_accdet_status_t hal_accdet_set_debounce_time(const hal_accdet_debounce_time_t *debounce_time);
251 
252 
253 #ifdef __cplusplus
254 }
255 #endif
256 
262 #endif /* HAL_ACCDET_MODULE_ENABLED */
263 #endif /* __HAL_ACCDET_H__ */
264 
265