blob: d1b36247687406392e678be0fa05eb6e82b5c993 [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 * cs_fac_det.h
41 *
42 * Project:
43 * --------
44 * Maui_Software
45 *
46 * Description:
47 * ------------
48 * This file is header file of customer specific factory mode detection mechanism interface
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 * removed!
59 * removed!
60 * removed!
61 *
62 * removed!
63 * removed!
64 * removed!
65 *
66 * removed!
67 * removed!
68 *
69 *------------------------------------------------------------------------------
70 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
71 *============================================================================
72 ****************************************************************************/
73#ifndef __CS_FAC_DET_H__
74#define __CS_FAC_DET_H__
75
76
77// The enum lists the boot mode that the customer may request to force boot into
78// Customer may request to boot into specific boot mode for specific factory mode
79// The factory mode detection mechanism should take responsibility to link factory mode <-> factory boot mode
80// and report to PWIC at boot time (If necessary)
81typedef enum{
82 CS_FAC_BOOT_IDLE = 0,
83 CS_FAC_BOOT_CHARGING,
84 CS_FAC_BOOT_USB_CHARGING,
85 CS_FAC_BOOT_MAX
86}cs_fac_boot_mode_enum;
87
88// Currently, take these strctures as common structures
89// If there is new customer specific facroty mode SPEC
90// then we come back to review if the current definition is enough or NOT
91
92// The enum lists factory modes
93// The customer may request to have different activities according to different factory mode
94typedef enum{
95 CS_FAC_NONE = 0x00000000, // Factory NONE ==> Means NO factory mode is detected
96 CS_FAC_UART = 0x00000001, // Bit00, Factory UART
97 CS_FAC_USB = 0x00000002, // Bit01, Factory USB
98 CS_FAC_CTRL = 0x00000004, // Bit02, Factory manual ctrl mode
99 CS_FAC_MAX = 0x10000000 // Bit31, Used for error check purpose
100}cs_fac_mode_enum;
101
102#define CS_FAC_MODE_NUM 4 // Total fac modes supported
103
104
105typedef struct{
106 // Drv init
107 void (*drv_init)(void);
108
109 // Return expect boot mode according to specific customer spec
110 // The spec is implement in the function
111 cs_fac_boot_mode_enum (*factory_det_get_boot_mode)(void);
112
113 // Return whether the specific factory mode is detected or NOT
114 // KAL_TRUE: The specific fac event is detected
115 // KAL_FALSE: The specific fac event is NOT detected
116 kal_bool (*factory_det_query_fac_mode)(cs_fac_mode_enum);
117
118 // Set the factory mode by other modules
119 void (*factory_det_set_fac_mode)(cs_fac_mode_enum);
120
121 // Clear the factory mode by other modules
122 void (*factory_det_clear_fac_mode)(cs_fac_mode_enum);
123
124}cs_factory_detecter;
125
126
127extern cs_factory_detecter *cs_fac_det;
128extern cs_factory_detecter *cs_fac_det_get_interface(void);
129
130#endif // #define __CS_FAC_DET_H__
131
132
133