xref: /utopia/UTPA2-700.0.x/projects/tmplib/include/MsDevice.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi //    Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi //    No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi //    modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi //    supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi //    Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi //    Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi //    obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi //    such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi //    MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi //    confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi //    third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi //    without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi //    intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi //    and in conformity with any international standard.  You agree to waive any
38*53ee8cc1Swenshuai.xi //    claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi //    incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi //    In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi //    consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi //    revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi //    You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi //    even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi //    request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi //    parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi //    services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi //    MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi //    ("Services").
52*53ee8cc1Swenshuai.xi //    You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi //    writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi //    disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi //    or otherwise:
58*53ee8cc1Swenshuai.xi //    (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi //        mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi //    (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi //        including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi //        of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi //    (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi //    of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi //    Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi //    settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi //    Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi //    with the said Rules.
72*53ee8cc1Swenshuai.xi //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi //    be English.
74*53ee8cc1Swenshuai.xi //    The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi 
79*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
80*53ee8cc1Swenshuai.xi //
81*53ee8cc1Swenshuai.xi // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
82*53ee8cc1Swenshuai.xi // All rights reserved.
83*53ee8cc1Swenshuai.xi //
84*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
85*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
86*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
87*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient.
88*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
89*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
90*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
91*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
92*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
93*53ee8cc1Swenshuai.xi //
94*53ee8cc1Swenshuai.xi ///////////////////////////////////////////////////////////////////////////////
95*53ee8cc1Swenshuai.xi 
96*53ee8cc1Swenshuai.xi #ifndef __PRANA_DEVICE_H__
97*53ee8cc1Swenshuai.xi #define __PRANA_DEVICE_H__
98*53ee8cc1Swenshuai.xi 
99*53ee8cc1Swenshuai.xi #include "MsTypes.h"
100*53ee8cc1Swenshuai.xi 
101*53ee8cc1Swenshuai.xi #define DEVICE_NULL ((device_t)0)
102*53ee8cc1Swenshuai.xi 
103*53ee8cc1Swenshuai.xi typedef unsigned long device_t;
104*53ee8cc1Swenshuai.xi 
105*53ee8cc1Swenshuai.xi //
106*53ee8cc1Swenshuai.xi // device PM event
107*53ee8cc1Swenshuai.xi //
108*53ee8cc1Swenshuai.xi typedef enum
109*53ee8cc1Swenshuai.xi {
110*53ee8cc1Swenshuai.xi     E_EVT_SUSPEND   = 1,
111*53ee8cc1Swenshuai.xi     E_EVT_SHUTDOWN  = 2,
112*53ee8cc1Swenshuai.xi } eDEVEVT;
113*53ee8cc1Swenshuai.xi 
114*53ee8cc1Swenshuai.xi typedef enum
115*53ee8cc1Swenshuai.xi {
116*53ee8cc1Swenshuai.xi     E_POWER_SUSPEND     = 1,    // State is backup in DRAM, components power off.
117*53ee8cc1Swenshuai.xi     E_POWER_RESUME      = 2,    // Resume from Suspend or Hibernate mode
118*53ee8cc1Swenshuai.xi     E_POWER_MECHANICAL  = 3,    // Full power off mode. System return to working state only after full reboot
119*53ee8cc1Swenshuai.xi     E_POWER_SOFT_OFF    = 4,    // The system appears to be off, but some components remain powered for trigging boot-up.
120*53ee8cc1Swenshuai.xi } EN_POWER_MODE;
121*53ee8cc1Swenshuai.xi 
122*53ee8cc1Swenshuai.xi //
123*53ee8cc1Swenshuai.xi // poll types
124*53ee8cc1Swenshuai.xi //
125*53ee8cc1Swenshuai.xi 
126*53ee8cc1Swenshuai.xi #ifndef POLLIN
127*53ee8cc1Swenshuai.xi #define POLLIN      0x01
128*53ee8cc1Swenshuai.xi #endif
129*53ee8cc1Swenshuai.xi 
130*53ee8cc1Swenshuai.xi #ifndef POLLOUT
131*53ee8cc1Swenshuai.xi #define POLLOUT     0x02
132*53ee8cc1Swenshuai.xi #endif
133*53ee8cc1Swenshuai.xi 
134*53ee8cc1Swenshuai.xi #ifndef POLLHUP
135*53ee8cc1Swenshuai.xi #define POLLHUP     0x04
136*53ee8cc1Swenshuai.xi #endif
137*53ee8cc1Swenshuai.xi 
138*53ee8cc1Swenshuai.xi //
139*53ee8cc1Swenshuai.xi // device I/O operations
140*53ee8cc1Swenshuai.xi //
141*53ee8cc1Swenshuai.xi struct devio
142*53ee8cc1Swenshuai.xi {
143*53ee8cc1Swenshuai.xi     int     (*open) (device_t dev, int mode);
144*53ee8cc1Swenshuai.xi     int     (*close)(device_t dev);
145*53ee8cc1Swenshuai.xi //    int     (*read) (device_t dev, char *buf, size_t len, int off);
146*53ee8cc1Swenshuai.xi     int     (*read) (device_t dev, char *buf, MS_U32 len, int off);
147*53ee8cc1Swenshuai.xi //    int     (*write)(device_t dev, const char *buf, size_t len, int off);
148*53ee8cc1Swenshuai.xi     int     (*write)(device_t dev, const char *buf, MS_U32 len, int off);
149*53ee8cc1Swenshuai.xi     int     (*poll) (device_t dev, int types);
150*53ee8cc1Swenshuai.xi     int     (*ioctl)(device_t dev, int request, unsigned long arg);
151*53ee8cc1Swenshuai.xi     int     (*event)(eDEVEVT evt);
152*53ee8cc1Swenshuai.xi };
153*53ee8cc1Swenshuai.xi 
154*53ee8cc1Swenshuai.xi 
155*53ee8cc1Swenshuai.xi #define DEVICE_MAGIC    (('D' << 24) | ('E' << 16) | ('V' << 8) | 'I')
156*53ee8cc1Swenshuai.xi 
157*53ee8cc1Swenshuai.xi //
158*53ee8cc1Swenshuai.xi // device structure
159*53ee8cc1Swenshuai.xi //
160*53ee8cc1Swenshuai.xi #ifndef MSOS_TYPE_LINUX_KERNEL
161*53ee8cc1Swenshuai.xi struct device
162*53ee8cc1Swenshuai.xi {
163*53ee8cc1Swenshuai.xi     int             magic;              // magic number
164*53ee8cc1Swenshuai.xi     int             refcnt;             // reference count
165*53ee8cc1Swenshuai.xi     int             flags;              // device characteristics
166*53ee8cc1Swenshuai.xi     struct devio    *devio;             // device i/o table
167*53ee8cc1Swenshuai.xi };
168*53ee8cc1Swenshuai.xi #endif
169*53ee8cc1Swenshuai.xi #define device_valid(dev) ((dev)->magic == DEVICE_MAGIC)
170*53ee8cc1Swenshuai.xi #endif /* __PRANA_DEVICE_H__ */
171*53ee8cc1Swenshuai.xi 
172*53ee8cc1Swenshuai.xi //MSTAR Module ID
173*53ee8cc1Swenshuai.xi /*******************************************************************************
174*53ee8cc1Swenshuai.xi !!!! WARNING NOT ALLOW MODIFY EXISTED VALUE !!!!
175*53ee8cc1Swenshuai.xi !!!! ONLY ALLOW ADD NEW VALUE AFTER END OF THIS LIST !!!!
176*53ee8cc1Swenshuai.xi *******************************************************************************/
177*53ee8cc1Swenshuai.xi #define MS_MODULE_HW                0x0000
178*53ee8cc1Swenshuai.xi 
179*53ee8cc1Swenshuai.xi #define MS_MODULE_CHIPTOP           0x0011
180*53ee8cc1Swenshuai.xi #define MS_MODULE_MIU               0x0012
181*53ee8cc1Swenshuai.xi #define MS_MODULE_WDT               0x003C
182*53ee8cc1Swenshuai.xi #define MS_MODULE_CFG               0x00F0                              // Chip hard configuration info
183*53ee8cc1Swenshuai.xi #define MS_MODULE_OTP               0x00F4
184*53ee8cc1Swenshuai.xi #define MS_MODULE_SPRAM             0x00F5
185*53ee8cc1Swenshuai.xi #define MS_MODULE_OTP2              0x00F6                              //OTP raw data read for dolby info
186*53ee8cc1Swenshuai.xi 
187*53ee8cc1Swenshuai.xi #define MS_MODULE_ACE               0x0101
188*53ee8cc1Swenshuai.xi #define MS_MODULE_AUDIO             0x0102
189*53ee8cc1Swenshuai.xi #define MS_MODULE_AVD               0x0103
190*53ee8cc1Swenshuai.xi #define MS_MODULE_BDMA              0x0104
191*53ee8cc1Swenshuai.xi #define MS_MODULE_DLC               0x0105
192*53ee8cc1Swenshuai.xi #define MS_MODULE_FLASH             0x0106
193*53ee8cc1Swenshuai.xi #define MS_MODULE_GE                0x0107
194*53ee8cc1Swenshuai.xi #define MS_MODULE_GOP               0x0108
195*53ee8cc1Swenshuai.xi #define MS_MODULE_HVD               0x0109
196*53ee8cc1Swenshuai.xi #define MS_MODULE_HWI2C             0x010a
197*53ee8cc1Swenshuai.xi #define MS_MODULE_IR                0x010b
198*53ee8cc1Swenshuai.xi #define MS_MODULE_IRQ               0x010c
199*53ee8cc1Swenshuai.xi #define MS_MODULE_JPD               0x010d
200*53ee8cc1Swenshuai.xi #define MS_MODULE_MBX               0x010e
201*53ee8cc1Swenshuai.xi #define MS_MODULE_MVD               0x010f
202*53ee8cc1Swenshuai.xi #define MS_MODULE_MVOP              0x0120
203*53ee8cc1Swenshuai.xi #define MS_MODULE_RVD               0x0122
204*53ee8cc1Swenshuai.xi #define MS_MODULE_SC                0x0123
205*53ee8cc1Swenshuai.xi #define MS_MODULE_TSP               0x0124
206*53ee8cc1Swenshuai.xi #define MS_MODULE_UART              0x0125
207*53ee8cc1Swenshuai.xi #define MS_MODULE_VPU               0x0126
208*53ee8cc1Swenshuai.xi #define MS_MODULE_XC                0x0127
209*53ee8cc1Swenshuai.xi #define MS_MODULE_PNL               0x0128
210*53ee8cc1Swenshuai.xi #define MS_MODULE_ISP               0x0129
211*53ee8cc1Swenshuai.xi #define MS_MODULE_PFSH              0x012a
212*53ee8cc1Swenshuai.xi #define MS_MODULE_GPIO              0x012b
213*53ee8cc1Swenshuai.xi #define MS_MODULE_PM                0x012c
214*53ee8cc1Swenshuai.xi #define MS_MODULE_VBI               0x012d
215*53ee8cc1Swenshuai.xi #define MS_MODULE_PCMCIA            0x012e
216*53ee8cc1Swenshuai.xi #define MS_MODULE_PIU               0x012f
217*53ee8cc1Swenshuai.xi #define MS_MODULE_MHEG5             0x0130
218*53ee8cc1Swenshuai.xi #define MS_MODULE_RTC_0             0x0131
219*53ee8cc1Swenshuai.xi #define MS_MODULE_RTC_2             0x0132
220*53ee8cc1Swenshuai.xi #define MS_MODULE_VIF               0x0133
221*53ee8cc1Swenshuai.xi #define MS_MODULE_MFE               0x0134
222*53ee8cc1Swenshuai.xi #define MS_MODULE_DIP               0x0135
223*53ee8cc1Swenshuai.xi #define MS_MODULE_RASP              0x0136
224*53ee8cc1Swenshuai.xi #define MS_MODULE_MMFILEIN          0x0137
225*53ee8cc1Swenshuai.xi #define MS_MODULE_MPIF              0x0138
226*53ee8cc1Swenshuai.xi #define MS_MODULE_GPD               0x0139
227*53ee8cc1Swenshuai.xi #define MS_MODULE_TSO               0x013a
228*53ee8cc1Swenshuai.xi #define MS_MODULE_CMDQ              0x013b
229*53ee8cc1Swenshuai.xi #define MS_MODULE_MSPI              0x013c
230*53ee8cc1Swenshuai.xi 
231*53ee8cc1Swenshuai.xi #define MS_MODULE_SEM               0x02f0
232*53ee8cc1Swenshuai.xi 
233*53ee8cc1Swenshuai.xi #define MS_MODULE_CA                0x0300                              // CA reserved
234*53ee8cc1Swenshuai.xi #define MS_MODULE_NDS               0x0310                              // NDS
235*53ee8cc1Swenshuai.xi #define MS_MODULE_NSK               0x0311
236*53ee8cc1Swenshuai.xi #define MS_MODULE_CAM               0x0312
237*53ee8cc1Swenshuai.xi #define MS_MODULE_NGA               0x0313
238*53ee8cc1Swenshuai.xi 
239*53ee8cc1Swenshuai.xi #define MS_MODULE_PWM               0x1032
240*53ee8cc1Swenshuai.xi #define MS_MODULE_DMD               0x1033
241*53ee8cc1Swenshuai.xi #define MS_MODULE_PWS               0x1034
242*53ee8cc1Swenshuai.xi #define MS_MODULE_EFUSE             0x1035
243*53ee8cc1Swenshuai.xi 
244*53ee8cc1Swenshuai.xi #define MS_MODULE_FRC               0x2000                              // A5 only
245*53ee8cc1Swenshuai.xi 
246*53ee8cc1Swenshuai.xi 
247