blob: 19db30fdc9a378dbf01d568c5b9a3e666d622506 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * accessory_sw.h
41 *
42 * Project:
43 * --------
44 * Maui_Software
45 *
46 * Description:
47 * ------------
48 * This file is intends for accessory detector driver and adaption.
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 *------------------------------------------------------------------------------
59 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
60 *============================================================================
61 ****************************************************************************/
62#ifndef ACCESSSORY_SW_H
63#define ACCESSSORY_SW_H
64
65#include "kal_general_types.h"
66
67typedef struct
68{
69 // This API is for aux task to register HISR handler for earphone
70 // PWIC will use det_earphone_present() to determine whether it is in/out
71 void (*reg_earphone_hisr)(void (earphone_hisr_callback)(void));
72
73 // This API is for aux task to register HISR handler for tvout
74 // PWIC will use det_earphone_present() to determine whether it is in/out
75 void (*reg_tvout_hisr)(void (tvout_hisr_callback)(void));
76
77 // This API is for aux task to register HISR handler for earphone key
78 // PWIC will use det_earphone_present() to determine whether it is in/out
79 void (*reg_key_hisr)(void (key_hisr_callback)(void));
80
81 // This API is to set S/W debounce time for earphone cable
82 // The uint of deb_time is in 10ms (GPT tick)
83 void (*set_earphone_in_deb_time)(kal_uint32 deb_time);
84
85 // This API is to set S/W debounce time for earphone cable
86 // The uint of deb_time is in 10ms (GPT tick)
87 void (*set_earphone_out_deb_time)(kal_uint32 deb_time);
88
89 // This API is to set S/W debounce time for tvout cable
90 // The uint of deb_time is in 10ms (GPT tick)
91 void (*set_tvout_in_deb_time)(kal_uint32 deb_time);
92
93 // This API is to set S/W debounce time for tvout cable
94 // The uint of deb_time is in 10ms (GPT tick)
95 void (*set_tvout_out_deb_time)(kal_uint32 deb_time);
96
97 // This API is to set S/W debounce time for key press
98 // The uint of deb_time is in 10ms (GPT tick)
99 void (*set_key_press_deb_time)(kal_uint32 deb_time);
100
101 // This API is to set S/W debounce time for key release
102 // The uint of deb_time is in 10ms (GPT tick)
103 void (*set_key_release_deb_time)(kal_uint32 deb_time);
104
105 // Init the external accessory detection mechanism
106 // The API is called at boot phase
107 void (*drv_init)(void);
108
109 // The API is called at driver init phase
110 void (*enable_intr)(void);
111
112}aux_ext_accessory_det;
113
114typedef struct
115{
116 void (*aux_plug_in)(void);
117 void (*aux_plug_out)(void);
118 void (*aux_uart_func)(kal_bool enable);
119 void (*aux_HSTV_func)(kal_bool enable);
120}aux_func_struct;
121
122
123
124#if defined(__DRV_EXT_ACCESSORY_DETECTION__ )
125extern aux_ext_accessory_det *aux_ext_acc_det;
126extern aux_ext_accessory_det *aux_custom_get_ext_accessory_det(void);
127#endif // #if defined(__DRV_EXT_ACCESSORY_DETECTION__ )
128
129
130
131#endif//#define ACCESSSORY_SW_H