blob: 6af78ed121dc2582ed84bb4ebc4153f1d6624b8b [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) 2001-2007
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 * nli_arb.h
41 *
42 * Project:
43 * --------
44 * Maui
45 *
46 * Description:
47 * ------------
48 * This file is to define NLI Arbiter reigter and operation macro for MT6276, MT6256 and etc..
49 *
50 * Author:
51 * -------
52 *
53 * Bin Han (mtk80391)
54 *
55 *------------------------------------------------------------------------------
56 * $Log$
57 *
58 * 07 19 2011 bin.han
59 * removed!
60 * .
61 *
62 *
63 *******************************************************************************/
64#ifndef __NLI_ARB_H__
65#define __NLI_ARB_H__
66
67#include "reg_base.h"
68
69
70////////////////////////// Reigster Operation Macro Define ////////////////////////////
71#ifdef NLI_ARB_base
72
73#define REG_NLI_ARB_STATUS *((volatile unsigned int *)(NLI_ARB_base+0x000))
74#define REG_NLI_ARB_SWRST *((volatile unsigned int *)(NLI_ARB_base+0x010))
75#define REG_NLI_ARB_CS *((volatile unsigned int *)(NLI_ARB_base+0x014))
76#define REG_NLI_ARB_CONT_GRANT *((volatile unsigned int *)(NLI_ARB_base+0x018))
77#define REG_NLI_ARB_HANDOVER *((volatile unsigned int *)(NLI_ARB_base+0x01C))
78#define REG_NLI_ARB_MON_SRC *((volatile unsigned int *)(NLI_ARB_base+0x040))
79#define REG_NLI_ARB_MON_CLR *((volatile unsigned int *)(NLI_ARB_base+0x044))
80#define REG_NLI_ARB_MON_START *((volatile unsigned int *)(NLI_ARB_base+0x048))
81#define REG_NLI_ARB_MON_RD *((volatile unsigned int *)(NLI_ARB_base+0x050))
82#define REG_NLI_ARB_MON_WR *((volatile unsigned int *)(NLI_ARB_base+0x054))
83#define REG_NLI_ARB_MON_CYC *((volatile unsigned int *)(NLI_ARB_base+0x058))
84
85
86#define NLI_ARB_CS_FAVOR_NORMAL_BIT (0x10000)
87#define NLI_ARB_CS_FAVOR_ULTRA_BIT (0x20000)
88#define ENABLE_NLI_ARB_FAVOR_NORMAL() REG_NLI_ARB_CS |= NLI_ARB_CS_FAVOR_NORMAL_BIT;
89#define DISABLE_NLI_ARB_FAVOR_NORMAL() REG_NLI_ARB_CS &= (~NLI_ARB_CS_FAVOR_NORMAL_BIT);
90#define ENABLE_NLI_ARB_FAVOR_ULTRA() REG_NLI_ARB_CS |= NLI_ARB_CS_FAVOR_ULTRA_BIT;
91#define DISABLE_NLI_ARB_FAVOR_ULTRA() REG_NLI_ARB_CS &= (~NLI_ARB_CS_FAVOR_ULTRA_BIT);
92#define GET_NLI_ARB_FAVOR_NORMAL_ENABLE() (REG_NLI_ARB_CS & NLI_ARB_CS_FAVOR_NORMAL_BIT)
93#define GET_NLI_ARB_FAVOR_ULTRA_ENABLE() (REG_NLI_ARB_CS & NLI_ARB_CS_FAVOR_ULTRA_BIT)
94
95
96#define SET_NLI_ARB_CS_SOURCE_SELECTION(src,dest) do{REG_NLI_ARB_CS &= ~(0x7<<(dest)); REG_NLI_ARB_CS |= ((src)<<(dest));} while(0)
97#define GET_NLI_ARB_CS_SOURCE_SELECTION(dest) ((REG_NLI_ARB_CS >> (dest)) & 0x7)
98#else
99
100// Dummy MACRO to avoid build error
101#define ENABLE_NLI_ARB_FAVOR_NORMAL()
102#define DISABLE_NLI_ARB_FAVOR_NORMAL()
103#define ENABLE_NLI_ARB_FAVOR_ULTRA()
104#define DISABLE_NLI_ARB_FAVOR_ULTRA()
105
106#define SET_NLI_ARB_CS_SOURCE_SELECTION_LPCE0B(x)
107#define SET_NLI_ARB_CS_SOURCE_SELECTION_LPCE1B(x)
108#define SET_NLI_ARB_CS_SOURCE_SELECTION_LPCE2B(x)
109#define SET_NLI_ARB_CS_SOURCE_SELECTION_LPCE3B(x)
110
111#endif //NLI_ARB_base
112
113
114////////////////////////// User Interface ////////////////////////////
115typedef enum
116{
117 NLI_ARB_USER_LCD = 0,
118 NLI_ARB_USER_NAND,
119 NLI_ARB_USER_HIF0,
120 NLI_ARB_USER_HIF1,
121
122 NLI_ARB_USER_NUM
123}NLI_ARB_USER_ENUM;
124
125///Notice: the following enum define is chip depedent
126typedef enum
127{
128 NLI_ARB_CS_SOURCE_LCD0 = 0,
129 NLI_ARB_CS_SOURCE_LCD1 = 1,
130 NLI_ARB_CS_SOURCE_LCD2 = 2,
131 NLI_ARB_CS_SOURCE_HIF0 = 3,
132 NLI_ARB_CS_SOURCE_HIF1 = 4,
133
134 NLI_ARB_CS_SOURCE_NUMBER
135}NLI_ARB_CS_SOURCE_ENUM;
136
137
138///Notice: the following enum define is chip depedent
139typedef enum
140{
141 NLI_ARB_CS_DEST_LPCE0B = 0,
142 NLI_ARB_CS_DEST_LPCE1B = 1,
143 NLI_ARB_CS_DEST_LPCE2B = 2,
144 NLI_ARB_CS_DEST_LPCE3B = 3,
145
146 NLI_ARB_CS_DEST_NUMBER
147}NLI_ARB_CS_DEST_ENUM;
148
149
150typedef enum
151{
152 // Set operation
153 NLI_ARB_SET_FAVOR_NORMAL = 0,
154 NLI_ARB_SET_FAVOR_ULTRA,
155 NLI_ARB_SET_CS_MAPPING,
156
157 // Query operation
158 NLI_ARB_QUERY_FAVOR_NORMAL,
159 NLI_ARB_QUERY_FAVOR_ULTRA,
160 NLI_ARB_QUERY_CS_MAPPING,
161
162 NLI_ARB_CONTROL_CODE_NUM
163}NLI_ARB_CONTROL_CODE_ENUM;
164
165
166typedef struct
167{
168 kal_bool enable;
169}NLI_ARB_SET_QUERY_FAVOR_STRUCT;
170
171
172typedef struct
173{
174 NLI_ARB_CS_SOURCE_ENUM cs_source; /// LCD0, LCD1, LCD2, HIF0, HIF1
175 NLI_ARB_CS_DEST_ENUM cs_dest; /// LPCE0B,LPCE1B, LPCE2B, LPCE3B
176}NLI_ARB_SET_QUERY_CS_MAPPING_STRUCT;
177
178
179//The drv init function
180void NLI_ARB_init(void);
181//The drv IO control function , return KAL_FALSE means set or query is fail
182kal_bool NLI_ARB_IOCtrl(NLI_ARB_USER_ENUM user, NLI_ARB_CONTROL_CODE_ENUM ctrlCode, void *ctrlStruct);
183
184#endif // __NLI_ARB_H__