change source file mode to 0644 instead of 0755
[profile/mobile/platform/kernel/u-boot-tm1.git] / arch / arm / include / asm / arch-sc8810 / mfp.h
1 /*
2  * arch/arm/mach-sprd/include/mach/pm.h
3  *
4  * Pin Map Definitions
5  *
6  * Copyright (C) 2010 Spreadtrum International Ltd.
7  *
8  * 2010-03-05: yingchun li <yingchun.li@spreadtrum.com>
9  *            initial version
10  *
11  *  This program is free software; you can redistribute it and/or modify
12  *  it under the terms of the GNU General Public License version 2 as
13  *  published by the Free Software Foundation.
14  */
15
16 #ifndef __ASM_ARCH_MFP_H
17 #define __ASM_ARCH_MFP_H
18
19 #include <asm/arch/bits.h>
20 /*
21         This is identical to the order of pin's register map.
22         NOTE: if the pin register is not countinus, you should
23         intest a RESEVERED pin between them;
24 */
25 #ifdef CONFIG_SC7710G2
26 #define PIN_ADI_D_REG_OFFS                   ( 0x0020 )
27 #define PIN_ADI_SCLK_REG_OFFS                ( 0x0024 )
28 #define PIN_ADI_SYNC_REG_OFFS                ( 0x0028 )
29 #define PIN_ANA_INT_REG_OFFS                 ( 0x002C )
30 #define PIN_ANA_INT_CP_REG_OFFS              ( 0x0030 )
31 #define PIN_CHIP_SLEEP_AP_REG_OFFS           ( 0x0034 )
32 #define PIN_CLK_26M_REG_OFFS                 ( 0x0038 )
33 #define PIN_CLK_32K_REG_OFFS                 ( 0x003C )
34 #define PIN_COM_RX_DI0_REG_OFFS              ( 0x0040 )
35 #define PIN_COM_RX_DI1_REG_OFFS              ( 0x0044 )
36 #define PIN_COM_RX_DQ0_REG_OFFS              ( 0x0048 )
37 #define PIN_COM_RX_DQ1_REG_OFFS              ( 0x004C )
38 #define PIN_COM_TX_APCD_REG_OFFS             ( 0x0050 )
39 #define PIN_COM_TX_DI0_REG_OFFS              ( 0x0054 )
40 #define PIN_COM_TX_DI1_REG_OFFS              ( 0x0058 )
41 #define PIN_COM_TX_DQ0_REG_OFFS              ( 0x005C )
42 #define PIN_COM_TX_DQ1_REG_OFFS              ( 0x0060 )
43 #define PIN_COM_TX_SCLK_REG_OFFS             ( 0x0064 )
44 #define PIN_COM_TX_SYNC_REG_OFFS             ( 0x0068 )
45 #define PIN_GSM_RXPD_REG_OFFS                ( 0x006C )
46 #define PIN_GSM_TXPD_REG_OFFS                ( 0x0070 )
47 #define PIN_IF_SPR_REG_OFFS                  ( 0x0074 )
48 #define PIN_PTEST_REG_OFFS                   ( 0x0078 )
49 #define PIN_AUD_SCLK_REG_OFFS                ( 0x007C )
50 #define PIN_AUD_ADD0_REG_OFFS                ( 0x0080 )
51 #define PIN_AUD_ADSYNC_REG_OFFS              ( 0x0084 )
52 #define PIN_AUD_DAD0_REG_OFFS                ( 0x0088 )
53 #define PIN_AUD_DAD1_REG_OFFS                ( 0x008C )
54 #define PIN_AUD_DASYNC_REG_OFFS              ( 0x0090 )
55 #define PIN_XTL_BUF_EN_REG_OFFS             ( 0x0094 )
56 #define PIN_CLK_AUX0_REG_OFFS                ( 0x0098 )
57 #define PIN_CCIRCK0_REG_OFFS                 ( 0x009C )
58 #define PIN_CCIRCK1_REG_OFFS                 ( 0x00A0 )
59 #define PIN_CCIRD0_REG_OFFS                  ( 0x00A4 )
60 #define PIN_CCIRD1_REG_OFFS                  ( 0x00A8 )
61 #define PIN_CCIRD2_REG_OFFS                  ( 0x00AC )
62 #define PIN_CCIRD3_REG_OFFS                  ( 0x00B0 )
63 #define PIN_CCIRD4_REG_OFFS                  ( 0x00B4 )
64 #define PIN_CCIRD5_REG_OFFS                  ( 0x00B8 )
65 #define PIN_CCIRD6_REG_OFFS                  ( 0x00BC )
66 #define PIN_CCIRD7_REG_OFFS                  ( 0x00C0 )
67 #define PIN_CCIRHS_REG_OFFS                  ( 0x00C4 )
68 #define PIN_CCIRMCLK_REG_OFFS                ( 0x00C8 )
69 #define PIN_CCIRPD0_REG_OFFS                 ( 0x00CC )
70 #define PIN_CCIRPD1_REG_OFFS                 ( 0x00D0 )
71 #define PIN_CCIRRST_REG_OFFS                 ( 0x00D4 )
72 #define PIN_CCIRVS_REG_OFFS                  ( 0x00D8 )
73 #define PIN_CP_CLKDMMEM_REG_OFFS             ( 0x00DC )
74 #define PIN_CP_CLKDPMEM_REG_OFFS             ( 0x00E0 )
75 #define PIN_CP_EMA0_REG_OFFS                 ( 0x00E4 )
76 #define PIN_CP_EMA1_REG_OFFS                 ( 0x00E8 )
77 #define PIN_CP_EMA2_REG_OFFS                 ( 0x00EC )
78 #define PIN_CP_EMA3_REG_OFFS                 ( 0x00F0 )
79 #define PIN_CP_EMA4_REG_OFFS                 ( 0x00F4 )
80 #define PIN_CP_EMA5_REG_OFFS                 ( 0x00F8 )
81 #define PIN_CP_EMA6_REG_OFFS                 ( 0x00FC )
82 #define PIN_CP_EMA7_REG_OFFS                 ( 0x0100 )
83 #define PIN_CP_EMA8_REG_OFFS                 ( 0x0104 )
84 #define PIN_CP_EMA9_REG_OFFS                 ( 0x0108 )
85 #define PIN_CP_EMA10_REG_OFFS                ( 0x010C )
86 #define PIN_CP_EMA11_REG_OFFS                ( 0x0110 )
87 #define PIN_CP_EMA12_REG_OFFS                ( 0x0114 )
88 #define PIN_CP_EMA13_REG_OFFS                ( 0x0118 )
89 #define PIN_CP_EMBA0_REG_OFFS                ( 0x011C )
90 #define PIN_CP_EMBA1_REG_OFFS                ( 0x0120 )
91 #define PIN_CP_EMCAS_N_REG_OFFS              ( 0x0124 )
92 #define PIN_CP_EMCKE0_REG_OFFS               ( 0x0128 )
93 #define PIN_CP_EMCS_N0_REG_OFFS              ( 0x012C )
94 #define PIN_CP_EMDQM0_REG_OFFS               ( 0x0130 )
95 #define PIN_CP_EMDQM1_REG_OFFS               ( 0x0134 )
96 #define PIN_CP_EMDQM2_REG_OFFS               ( 0x0138 )
97 #define PIN_CP_EMDQM3_REG_OFFS               ( 0x013C )
98 #define PIN_CP_EMDQS0_REG_OFFS               ( 0x0140 )
99 #define PIN_CP_EMDQS1_REG_OFFS               ( 0x0144 )
100 #define PIN_CP_EMDQS2_REG_OFFS               ( 0x0148 )
101 #define PIN_CP_EMDQS3_REG_OFFS               ( 0x014C )
102 #define PIN_CP_EMD0_REG_OFFS                 ( 0x0150 )
103 #define PIN_CP_EMD1_REG_OFFS                 ( 0x0154 )
104 #define PIN_CP_EMD2_REG_OFFS                 ( 0x0158 )
105 #define PIN_CP_EMD3_REG_OFFS                 ( 0x015C )
106 #define PIN_CP_EMD4_REG_OFFS                 ( 0x0160 )
107 #define PIN_CP_EMD5_REG_OFFS                 ( 0x0164 )
108 #define PIN_CP_EMD6_REG_OFFS                 ( 0x0168 )
109 #define PIN_CP_EMD7_REG_OFFS                 ( 0x016C )
110 #define PIN_CP_EMD8_REG_OFFS                 ( 0x0170 )
111 #define PIN_CP_EMD9_REG_OFFS                 ( 0x0174 )
112 #define PIN_CP_EMD10_REG_OFFS                ( 0x0178 )
113 #define PIN_CP_EMD11_REG_OFFS                ( 0x017C )
114 #define PIN_CP_EMD12_REG_OFFS                ( 0x0180 )
115 #define PIN_CP_EMD13_REG_OFFS                ( 0x0184 )
116 #define PIN_CP_EMD14_REG_OFFS                ( 0x0188 )
117 #define PIN_CP_EMD15_REG_OFFS                ( 0x018C )
118 #define PIN_CP_EMD16_REG_OFFS                ( 0x0190 )
119 #define PIN_CP_EMD17_REG_OFFS                ( 0x0194 )
120 #define PIN_CP_EMD18_REG_OFFS                ( 0x0198 )
121 #define PIN_CP_EMD19_REG_OFFS                ( 0x019C )
122 #define PIN_CP_EMD20_REG_OFFS                ( 0x01A0 )
123 #define PIN_CP_EMD21_REG_OFFS                ( 0x01A4 )
124 #define PIN_CP_EMD22_REG_OFFS                ( 0x01A8 )
125 #define PIN_CP_EMD23_REG_OFFS                ( 0x01AC )
126 #define PIN_CP_EMD24_REG_OFFS                ( 0x01B0 )
127 #define PIN_CP_EMD25_REG_OFFS                ( 0x01B4 )
128 #define PIN_CP_EMD26_REG_OFFS                ( 0x01B8 )
129 #define PIN_CP_EMD27_REG_OFFS                ( 0x01BC )
130 #define PIN_CP_EMD28_REG_OFFS                ( 0x01C0 )
131 #define PIN_CP_EMD29_REG_OFFS                ( 0x01C4 )
132 #define PIN_CP_EMD30_REG_OFFS                ( 0x01C8 )
133 #define PIN_CP_EMD31_REG_OFFS                ( 0x01CC )
134 #define PIN_CP_EMGPRE_LOOP_REG_OFFS          ( 0x01D0 )
135 #define PIN_CP_EMGPST_LOOP_REG_OFFS          ( 0x01D4 )
136 #define PIN_CP_EMRAS_N_REG_OFFS              ( 0x01D8 )
137 #define PIN_CP_EMWE_N_REG_OFFS               ( 0x01DC )
138 #define PIN_CP_SIMCLK0_REG_OFFS              ( 0x01E0 )
139 #define PIN_CP_SIMCLK1_REG_OFFS              ( 0x01E4 )
140 #define PIN_CP_SIMCLK2_REG_OFFS              ( 0x01E8 )
141 #define PIN_CP_SIMDA0_REG_OFFS               ( 0x01EC )
142 #define PIN_CP_SIMDA1_REG_OFFS               ( 0x01F0 )
143 #define PIN_CP_SIMDA2_REG_OFFS               ( 0x01F4 )
144 #define PIN_CP_SIMRST0_REG_OFFS              ( 0x01F8 )
145 #define PIN_CP_SIMRST1_REG_OFFS              ( 0x01FC )
146 #define PIN_CP_SIMRST2_REG_OFFS              ( 0x0200 )
147 #define PIN_CLKDMMEM_REG_OFFS                ( 0x0204 )
148 #define PIN_CLKDPMEM_REG_OFFS                ( 0x0208 )
149 #define PIN_EMA0_REG_OFFS                    ( 0x020C )
150 #define PIN_EMA1_REG_OFFS                    ( 0x0210 )
151 #define PIN_EMA2_REG_OFFS                    ( 0x0214 )
152 #define PIN_EMA3_REG_OFFS                    ( 0x0218 )
153 #define PIN_EMA4_REG_OFFS                    ( 0x021C )
154 #define PIN_EMA5_REG_OFFS                    ( 0x0220 )
155 #define PIN_EMA6_REG_OFFS                    ( 0x0224 )
156 #define PIN_EMA7_REG_OFFS                    ( 0x0228 )
157 #define PIN_EMA8_REG_OFFS                    ( 0x022C )
158 #define PIN_EMA9_REG_OFFS                    ( 0x0230 )
159 #define PIN_EMA10_REG_OFFS                   ( 0x0234 )
160 #define PIN_EMA11_REG_OFFS                   ( 0x0238 )
161 #define PIN_EMA12_REG_OFFS                   ( 0x023C )
162 #define PIN_EMA13_REG_OFFS                   ( 0x0240 )
163 #define PIN_EMA14_REG_OFFS                   ( 0x0244 )
164 #define PIN_EMBA0_REG_OFFS                   ( 0x0248 )
165 #define PIN_EMBA1_REG_OFFS                   ( 0x024C )
166 #define PIN_EMCAS_N_REG_OFFS                 ( 0x0250 )
167 #define PIN_EMCKE0_REG_OFFS                  ( 0x0254 )
168 #define PIN_EMCKE1_REG_OFFS                  ( 0x0258 )
169 #define PIN_EMCS_N0_REG_OFFS                 ( 0x025C )
170 #define PIN_EMCS_N1_REG_OFFS                 ( 0x0260 )
171 #define PIN_EMDQM0_REG_OFFS                  ( 0x0264 )
172 #define PIN_EMDQM1_REG_OFFS                  ( 0x0268 )
173 #define PIN_EMDQM2_REG_OFFS                  ( 0x026C )
174 #define PIN_EMDQM3_REG_OFFS                  ( 0x0270 )
175 #define PIN_EMDQS0_REG_OFFS                  ( 0x0274 )
176 #define PIN_EMDQS1_REG_OFFS                  ( 0x0278 )
177 #define PIN_EMDQS2_REG_OFFS                  ( 0x027C )
178 #define PIN_EMDQS3_REG_OFFS                  ( 0x0280 )
179 #define PIN_EMD0_REG_OFFS                    ( 0x0284 )
180 #define PIN_EMD1_REG_OFFS                    ( 0x0288 )
181 #define PIN_EMD2_REG_OFFS                    ( 0x028C )
182 #define PIN_EMD3_REG_OFFS                    ( 0x0290 )
183 #define PIN_EMD4_REG_OFFS                    ( 0x0294 )
184 #define PIN_EMD5_REG_OFFS                    ( 0x0298 )
185 #define PIN_EMD6_REG_OFFS                    ( 0x029C )
186 #define PIN_EMD7_REG_OFFS                    ( 0x02A0 )
187 #define PIN_EMD8_REG_OFFS                    ( 0x02A4 )
188 #define PIN_EMD9_REG_OFFS                    ( 0x02A8 )
189 #define PIN_EMD10_REG_OFFS                   ( 0x02AC )
190 #define PIN_EMD11_REG_OFFS                   ( 0x02B0 )
191 #define PIN_EMD12_REG_OFFS                   ( 0x02B4 )
192 #define PIN_EMD13_REG_OFFS                   ( 0x02B8 )
193 #define PIN_EMD14_REG_OFFS                   ( 0x02BC )
194 #define PIN_EMD15_REG_OFFS                   ( 0x02C0 )
195 #define PIN_EMD16_REG_OFFS                   ( 0x02C4 )
196 #define PIN_EMD17_REG_OFFS                   ( 0x02C8 )
197 #define PIN_EMD18_REG_OFFS                   ( 0x02CC )
198 #define PIN_EMD19_REG_OFFS                   ( 0x02D0 )
199 #define PIN_EMD20_REG_OFFS                   ( 0x02D4 )
200 #define PIN_EMD21_REG_OFFS                   ( 0x02D8 )
201 #define PIN_EMD22_REG_OFFS                   ( 0x02DC )
202 #define PIN_EMD23_REG_OFFS                   ( 0x02E0 )
203 #define PIN_EMD24_REG_OFFS                   ( 0x02E4 )
204 #define PIN_EMD25_REG_OFFS                   ( 0x02E8 )
205 #define PIN_EMD26_REG_OFFS                   ( 0x02EC )
206 #define PIN_EMD27_REG_OFFS                   ( 0x02F0 )
207 #define PIN_EMD28_REG_OFFS                   ( 0x02F4 )
208 #define PIN_EMD29_REG_OFFS                   ( 0x02F8 )
209 #define PIN_EMD30_REG_OFFS                   ( 0x02FC )
210 #define PIN_EMD31_REG_OFFS                   ( 0x0300 )
211 #define PIN_EMGPRE_LOOP_REG_OFFS             ( 0x0304 )
212 #define PIN_EMGPST_LOOP_REG_OFFS             ( 0x0308 )
213 #define PIN_EMMC_CLK_REG_OFFS                ( 0x030C )
214 #define PIN_EMMC_CMD_REG_OFFS                ( 0x0310 )
215 #define PIN_EMMC_D0_REG_OFFS                 ( 0x0314 )
216 #define PIN_EMMC_D1_REG_OFFS                 ( 0x0318 )
217 #define PIN_EMMC_D2_REG_OFFS                 ( 0x0310 )
218 #define PIN_EMMC_D3_REG_OFFS                 ( 0x0320 )
219 #define PIN_EMMC_D4_REG_OFFS                 ( 0x0324 )
220 #define PIN_EMMC_D5_REG_OFFS                 ( 0x0328 )
221 #define PIN_EMMC_D6_REG_OFFS                 ( 0x032C )
222 #define PIN_EMMC_D7_REG_OFFS                 ( 0x0330 )
223 #define PIN_EMMC_RST_REG_OFFS                ( 0x0334 )
224 #define PIN_EMRAS_N_REG_OFFS                 ( 0x0338 )
225 #define PIN_EMWE_N_REG_OFFS                  ( 0x033C )
226 #define PIN_EXT_RST_B_REG_OFFS               ( 0x0340 )
227 #define PIN_GPIO0_REG_OFFS                   ( 0x0344 )
228 #define PIN_GPIO1_REG_OFFS                   ( 0x0348 )
229 #define PIN_GPIO2_REG_OFFS                   ( 0x034C )
230 #define PIN_GPIO3_REG_OFFS                   ( 0x0350 )
231 #define PIN_GPIO4_REG_OFFS                   ( 0x0354 )
232 #define PIN_GPIO5_REG_OFFS                   ( 0x0358 )
233 #define PIN_GPIO6_REG_OFFS                   ( 0x035C )
234 #define PIN_GPIO7_REG_OFFS                   ( 0x0360 )
235 #define PIN_GPIO8_REG_OFFS                   ( 0x0364 )
236 #define PIN_GPIO9_REG_OFFS                   ( 0x0368 )
237 #define PIN_IIS0CLK_REG_OFFS                 ( 0x036C )
238 #define PIN_IIS0DI_REG_OFFS                  ( 0x0370 )
239 #define PIN_IIS0DO_REG_OFFS                  ( 0x0374 )
240 #define PIN_IIS0LRCK_REG_OFFS                ( 0x0378 )
241 #define PIN_IIS0MCK_REG_OFFS                 ( 0x037C )
242 #define PIN_KEYIN0_REG_OFFS                  ( 0x0380 )
243 #define PIN_KEYIN1_REG_OFFS                  ( 0x0384 )
244 #define PIN_KEYIN2_REG_OFFS                  ( 0x0388 )
245 #define PIN_KEYIN3_REG_OFFS                  ( 0x038C )
246 #define PIN_KEYIN4_REG_OFFS                  ( 0x0390 )
247 #define PIN_KEYIN5_REG_OFFS                  ( 0x0394 )
248 #define PIN_KEYIN6_REG_OFFS                  ( 0x0398 )
249 #define PIN_KEYIN7_REG_OFFS                  ( 0x039C )
250 #define PIN_KEYOUT0_REG_OFFS                 ( 0x03A0 )
251 #define PIN_KEYOUT1_REG_OFFS                 ( 0x03A4 )
252 #define PIN_KEYOUT2_REG_OFFS                 ( 0x03A8 )
253 #define PIN_KEYOUT3_REG_OFFS                 ( 0x03AC )
254 #define PIN_KEYOUT4_REG_OFFS                 ( 0x03B0 )
255 #define PIN_KEYOUT5_REG_OFFS                 ( 0x03B4 )
256 #define PIN_KEYOUT6_REG_OFFS                 ( 0x03B8 )
257 #define PIN_KEYOUT7_REG_OFFS                 ( 0x03BC )
258 #define PIN_LCD_CD_REG_OFFS                  ( 0x03C0 )
259 #define PIN_LCD_CSN0_REG_OFFS                ( 0x03C4 )
260 #define PIN_LCD_CSN1_REG_OFFS                ( 0x03C8 )
261 #define PIN_LCD_D0_REG_OFFS                  ( 0x03CC )
262 #define PIN_LCD_D1_REG_OFFS                  ( 0x03D0 )
263 #define PIN_LCD_D2_REG_OFFS                  ( 0x03D4 )
264 #define PIN_LCD_D3_REG_OFFS                  ( 0x03D8 )
265 #define PIN_LCD_D4_REG_OFFS                  ( 0x03DC )
266 #define PIN_LCD_D5_REG_OFFS                  ( 0x03E0 )
267 #define PIN_LCD_D6_REG_OFFS                  ( 0x03E4 )
268 #define PIN_LCD_D7_REG_OFFS                  ( 0x03E8 )
269 #define PIN_LCD_D8_REG_OFFS                  ( 0x03EC )
270 #define PIN_LCD_D9_REG_OFFS                  ( 0x03F0 )
271 #define PIN_LCD_D10_REG_OFFS                 ( 0x03F4 )
272 #define PIN_LCD_D11_REG_OFFS                 ( 0x03F8 )
273 #define PIN_LCD_D12_REG_OFFS                 ( 0x03FC )
274 #define PIN_LCD_D13_REG_OFFS                 ( 0x0400 )
275 #define PIN_LCD_D14_REG_OFFS                 ( 0x0404 )
276 #define PIN_LCD_D15_REG_OFFS                 ( 0x0408 )
277 #define PIN_LCD_D16_REG_OFFS                 ( 0x040C )
278 #define PIN_LCD_D17_REG_OFFS                 ( 0x0410 )
279 #define PIN_LCD_D18_REG_OFFS                 ( 0x0414 )
280 #define PIN_LCD_D19_REG_OFFS                 ( 0x0418 )
281 #define PIN_LCD_D20_REG_OFFS                 ( 0x041C )
282 #define PIN_LCD_D21_REG_OFFS                 ( 0x0420 )
283 #define PIN_LCD_D22_REG_OFFS                 ( 0x0424 )
284 #define PIN_LCD_D23_REG_OFFS                 ( 0x0428 )
285 #define PIN_LCD_FMARK_REG_OFFS               ( 0x042C )
286 #define PIN_LCD_RDN_REG_OFFS                 ( 0x0430 )
287 #define PIN_LCD_RSTN_REG_OFFS                ( 0x0434 )
288 #define PIN_LCD_WRN_REG_OFFS                 ( 0x0438 )
289 #define PIN_MTCK_REG_OFFS                    ( 0x043C )
290 #define PIN_MTDI_REG_OFFS                    ( 0x0440 )
291 #define PIN_MTDO_REG_OFFS                    ( 0x0444 )
292 #define PIN_MTMS_REG_OFFS                    ( 0x0448 )
293 #define PIN_MTRST_N_REG_OFFS                 ( 0x044C )
294 #define PIN_NFALE_REG_OFFS                   ( 0x0450 )
295 #define PIN_NFCEN0_REG_OFFS                  ( 0x0454 )
296 #define PIN_NFCEN1_REG_OFFS                  ( 0x0458 )
297 #define PIN_NFCLE_REG_OFFS                   ( 0x045C )
298 #define PIN_NFD0_REG_OFFS                    ( 0x0460 )
299 #define PIN_NFD1_REG_OFFS                    ( 0x0464 )
300 #define PIN_NFD2_REG_OFFS                    ( 0x0468 )
301 #define PIN_NFD3_REG_OFFS                    ( 0x046C )
302 #define PIN_NFD4_REG_OFFS                    ( 0x0470 )
303 #define PIN_NFD5_REG_OFFS                    ( 0x0474 )
304 #define PIN_NFD6_REG_OFFS                    ( 0x0478 )
305 #define PIN_NFD7_REG_OFFS                    ( 0x047C )
306 #define PIN_NFD8_REG_OFFS                    ( 0x0480 )
307 #define PIN_NFD9_REG_OFFS                    ( 0x0484 )
308 #define PIN_NFD10_REG_OFFS                   ( 0x0488 )
309 #define PIN_NFD11_REG_OFFS                   ( 0x048C )
310 #define PIN_NFD12_REG_OFFS                   ( 0x0490 )
311 #define PIN_NFD13_REG_OFFS                   ( 0x0494 )
312 #define PIN_NFD14_REG_OFFS                   ( 0x0498 )
313 #define PIN_NFD15_REG_OFFS                   ( 0x049C )
314 #define PIN_NFRB_REG_OFFS                    ( 0x04A0 )
315 #define PIN_NFREN_REG_OFFS                   ( 0x04A4 )
316 #define PIN_NFWEN_REG_OFFS                   ( 0x04A8 )
317 #define PIN_NFWPN_REG_OFFS                   ( 0x04AC )
318 #define PIN_CP_RFCTL0_REG_OFFS               ( 0x04B0 )
319 #define PIN_CP_RFCTL1_REG_OFFS               ( 0x04B4 )
320 #define PIN_CP_RFCTL2_REG_OFFS               ( 0x04B8 )
321 #define PIN_CP_RFCTL3_REG_OFFS               ( 0x04BC )
322 #define PIN_CP_RFCTL4_REG_OFFS               ( 0x04C0 )
323 #define PIN_CP_RFCTL5_REG_OFFS               ( 0x04C4 )
324 #define PIN_CP_RFCTL6_REG_OFFS               ( 0x04C8 )
325 #define PIN_CP_RFCTL7_REG_OFFS               ( 0x04CC )
326 #define PIN_CP_RFCTL8_REG_OFFS               ( 0x04D0 )
327 #define PIN_CP_RFCTL9_REG_OFFS               ( 0x04D4 )
328 #define PIN_CP_RFCTL10_REG_OFFS              ( 0x04D8 )
329 #define PIN_CP_RFCTL11_REG_OFFS              ( 0x04DC )
330 #define PIN_CP_RFCTL12_REG_OFFS              ( 0x04E0 )
331 #define PIN_CP_RFCTL13_REG_OFFS              ( 0x04E4 )
332 #define PIN_CP_RFCTL14_REG_OFFS              ( 0x04E8 )
333 #define PIN_CP_RFCTL15_REG_OFFS              ( 0x04EC )
334 #define PIN_CP_RFSCK0_REG_OFFS               ( 0x04F0 )
335 #define PIN_CP_RFSDA0_REG_OFFS               ( 0x04F4 )
336 #define PIN_CP_RFSEN0_REG_OFFS               ( 0x04F8 )
337 #define PIN_SCL0_REG_OFFS                    ( 0x04FC )
338 #define PIN_SCL1_REG_OFFS                    ( 0x0500 )
339 #define PIN_SCL2_REG_OFFS                    ( 0x0504 )
340 #define PIN_SCL3_REG_OFFS                    ( 0x0508 )
341 #define PIN_SDA0_REG_OFFS                    ( 0x050C )
342 #define PIN_SDA1_REG_OFFS                    ( 0x0510 )
343 #define PIN_SDA2_REG_OFFS                    ( 0x0514 )
344 #define PIN_SDA3_REG_OFFS                    ( 0x0518 )
345 #define PIN_SD0_CLK0_REG_OFFS                ( 0x051C )
346 #define PIN_SD0_CLK1_REG_OFFS                ( 0x0520 )
347 #define PIN_SD0_CMD_REG_OFFS                 ( 0x0524 )
348 #define PIN_SD0_D0_REG_OFFS                  ( 0x0528 )
349 #define PIN_SD0_D1_REG_OFFS                  ( 0x052C )
350 #define PIN_SD0_D2_REG_OFFS                  ( 0x0530 )
351 #define PIN_SD0_D3_REG_OFFS                  ( 0x0534 )
352 #define PIN_SD1_CLK_REG_OFFS                 ( 0x0538 )
353 #define PIN_SD1_CMD_REG_OFFS                 ( 0x053C )
354 #define PIN_SD1_D0_REG_OFFS                  ( 0x0540 )
355 #define PIN_SD1_D1_REG_OFFS                  ( 0x0544 )
356 #define PIN_SD1_D2_REG_OFFS                  ( 0x0548 )
357 #define PIN_SD1_D3_REG_OFFS                  ( 0x054C )
358 #define PIN_SPI0_CLK_REG_OFFS                ( 0x0550 )
359 #define PIN_SPI0_CSN0_REG_OFFS               ( 0x0554 )
360 #define PIN_SPI0_CSN1_REG_OFFS               ( 0x0558 )
361 #define PIN_SPI0_DI_REG_OFFS                 ( 0x055C )
362 #define PIN_SPI0_DO_REG_OFFS                 ( 0x0560 )
363 #define PIN_SPI2_CLK_REG_OFFS                ( 0x0564 )
364 #define PIN_SPI2_CSN0_REG_OFFS               ( 0x0568 )
365 #define PIN_SPI2_DI_REG_OFFS                 ( 0x056C )
366 #define PIN_SPI2_DO_REG_OFFS                 ( 0x0570 )
367 #define PIN_TRACECLK_REG_OFFS                ( 0x0574 )
368 #define PIN_TRACECTRL_REG_OFFS               ( 0x0578 )
369 #define PIN_TRACEDAT0_REG_OFFS               ( 0x057C )
370 #define PIN_TRACEDAT1_REG_OFFS               ( 0x0580 )
371 #define PIN_TRACEDAT2_REG_OFFS               ( 0x0584 )
372 #define PIN_TRACEDAT3_REG_OFFS               ( 0x0588 )
373 #define PIN_TRACEDAT4_REG_OFFS               ( 0x058C )
374 #define PIN_TRACEDAT5_REG_OFFS               ( 0x0590 )
375 #define PIN_TRACEDAT6_REG_OFFS               ( 0x0594 )
376 #define PIN_TRACEDAT7_REG_OFFS               ( 0x0598 )
377 #define PIN_U0CTS_REG_OFFS                   ( 0x059C )
378 #define PIN_U0RTS_REG_OFFS                   ( 0x05A0 )
379 #define PIN_U0RXD_REG_OFFS                   ( 0x05A4 )
380 #define PIN_U0TXD_REG_OFFS                   ( 0x05A8 )
381 #define PIN_U1RXD_REG_OFFS                   ( 0x05AC )
382 #define PIN_U1TXD_REG_OFFS                   ( 0x05B0 )
383 #define PIN_U2CTS_REG_OFFS                   ( 0x05B4 )
384 #define PIN_U2RTS_REG_OFFS                   ( 0x05B8 )
385 #define PIN_U2RXD_REG_OFFS                   ( 0x05BC )
386 #define PIN_U2TXD_REG_OFFS                   ( 0x05C0 )
387 #define PIN_XTL_EN_REG_OFFS                  ( 0x05C4 )
388 #define PIN_EXTINT0_REG_OFFS                 ( 0x05C8 )
389 #define PIN_EXTINT1_REG_OFFS                 ( 0x05CC )
390 #define PIN_EXTINT2_REG_OFFS                 ( 0x05D0 )
391 #define PIN_EXTINT3_REG_OFFS                 ( 0x05D4 )
392 #define PIN_PDM_REG_OFFS                     ( 0x05D8 )
393 #define PIN_CHIP_SLEEP_CP_REG_OFFS           ( 0x05DC )
394
395 #else
396
397 #define PIN_SIMCLK0_REG_OFFS                          (0x008C)
398 #define PIN_SIMDA0_REG_OFFS                          (0x0090)
399 #define PIN_SIMRST0_REG_OFFS                          (0x0094)
400 #define PIN_SIMCLK1_REG_OFFS                          (0x0098)
401 #define PIN_SIMDA1_REG_OFFS                          (0x009C)
402 #define PIN_SIMRST1_REG_OFFS                          (0x00A0)
403 #define PIN_SD0_CLK_REG_OFFS                          (0x00A4)
404 #define PIN_SD_CMD_REG_OFFS                          (0x00A8)
405 #define PIN_SD_D0_REG_OFFS                          (0x00AC)
406 #define PIN_SD_D1_REG_OFFS                          (0x00B0)
407 #define PIN_SD_D2_REG_OFFS                          (0x00B4)
408 #define PIN_SD_D3_REG_OFFS                          (0x00B8)
409 #define PIN_SD1_CLK_REG_OFFS                          (0x00BC)
410 #define PIN_KEYOUT0_REG_OFFS                          (0x00C0)
411 #define PIN_KEYOUT1_REG_OFFS                          (0x00C4)
412 #define PIN_KEYOUT2_REG_OFFS                          (0x00C8)
413 #define PIN_KEYOUT3_REG_OFFS                          (0x00CC)
414 #define PIN_KEYOUT4_REG_OFFS                          (0x00D0)
415 #define PIN_KEYOUT5_REG_OFFS                          (0x00D4)
416 #define PIN_KEYOUT6_REG_OFFS                          (0x00D8)
417 #define PIN_KEYOUT7_REG_OFFS                          (0x00DC)
418 #define PIN_KEYIN0_REG_OFFS                          (0x00E0)
419 #define PIN_KEYIN1_REG_OFFS                          (0x00E4)
420 #define PIN_KEYIN2_REG_OFFS                          (0x00E8)
421 #define PIN_KEYIN3_REG_OFFS                          (0x00EC)
422 #define PIN_KEYIN4_REG_OFFS                          (0x00F0)
423 #define PIN_KEYIN5_REG_OFFS                          (0x00F4)
424 #define PIN_KEYIN6_REG_OFFS                          (0x00F8)
425 #define PIN_KEYIN7_REG_OFFS                          (0x00FC)
426 #define PIN_SPI_DI_REG_OFFS                          (0x0100)
427 #define PIN_SPI_CLK_REG_OFFS                          (0x0104)
428 #define PIN_SPI_DO_REG_OFFS                          (0x0108)
429 #define PIN_SPI_CSN0_REG_OFFS                          (0x010C)
430 #define PIN_SPI_CSN1_REG_OFFS                          (0x0110)
431 #define PIN_MTDO_REG_OFFS                          (0x0114)
432 #define PIN_MTDI_REG_OFFS                          (0x0118)
433 #define PIN_MTCK_REG_OFFS                          (0x011C)
434 #define PIN_MTMS_REG_OFFS                          (0x0120)
435 #define PIN_MTRST_N_REG_OFFS                          (0x0124)
436 #define PIN_U0TXD_REG_OFFS                          (0x0128)
437 #define PIN_U0RXD_REG_OFFS                          (0x012C)
438 #define PIN_U0CTS_REG_OFFS                          (0x0130)
439 #define PIN_U0RTS_REG_OFFS                          (0x0134)
440 #define PIN_U1TXD_REG_OFFS                          (0x0138)
441 #define PIN_U1RXD_REG_OFFS                          (0x013C)
442 #define PIN_NFWPN_REG_OFFS                          (0x0140)
443 #define PIN_NFRB_REG_OFFS                          (0x0144)
444 #define PIN_NFCLE_REG_OFFS                          (0x0148)
445 #define PIN_NFALE_REG_OFFS                          (0x014C)
446 #define PIN_NFCEN_REG_OFFS                          (0x0150)
447 #define PIN_NFWEN_REG_OFFS                          (0x0154)
448 #define PIN_NFREN_REG_OFFS                          (0x0158)
449 #define PIN_NFD0_REG_OFFS                          (0x015C)
450 #define PIN_NFD1_REG_OFFS                          (0x0160)
451 #define PIN_NFD2_REG_OFFS                          (0x0164)
452 #define PIN_NFD3_REG_OFFS                          (0x0168)
453 #define PIN_NFD4_REG_OFFS                          (0x016C)
454 #define PIN_NFD5_REG_OFFS                          (0x0170)
455 #define PIN_NFD6_REG_OFFS                          (0x0174)
456 #define PIN_NFD7_REG_OFFS                          (0x0178)
457 #define PIN_NFD8_REG_OFFS                          (0x017C)
458 #define PIN_NFD9_REG_OFFS                          (0x0180)
459 #define PIN_NFD10_REG_OFFS                          (0x0184)
460 #define PIN_NFD11_REG_OFFS                          (0x0188)
461 #define PIN_NFD12_REG_OFFS                          (0x018C)
462 #define PIN_NFD13_REG_OFFS                          (0x0190)
463 #define PIN_NFD14_REG_OFFS                          (0x0194)
464 #define PIN_NFD15_REG_OFFS                          (0x0198)
465 #define PIN_EMRST_N_REG_OFFS                          (0x019C)
466 #define PIN_EMA0_REG_OFFS                          (0x01A0)
467 #define PIN_EMA1_REG_OFFS                          (0x01A4)
468 #define PIN_EMA2_REG_OFFS                          (0x01A8)
469 #define PIN_EMA3_REG_OFFS                          (0x01AC)
470 #define PIN_EMA4_REG_OFFS                          (0x01B0)
471 #define PIN_EMA5_REG_OFFS                          (0x01B4)
472 #define PIN_EMA6_REG_OFFS                          (0x01B8)
473 #define PIN_EMA7_REG_OFFS                          (0x01BC)
474 #define PIN_EMA8_REG_OFFS                          (0x01C0)
475 #define PIN_EMA9_REG_OFFS                          (0x01C4)
476 #define PIN_EMA10_REG_OFFS                          (0x01C8)
477 #define PIN_EMA11_REG_OFFS                          (0x01CC)
478 #define PIN_EMA12_REG_OFFS                          (0x01D0)
479 #define PIN_EMA13_REG_OFFS                          (0x01D4)
480 #define PIN_EMCKE1_REG_OFFS                          (0x01D8)
481 #define PIN_EMD0_REG_OFFS                          (0x01DC)
482 #define PIN_EMD1_REG_OFFS                          (0x01E0)
483 #define PIN_EMD2_REG_OFFS                          (0x01E4)
484 #define PIN_EMD3_REG_OFFS                          (0x01E8)
485 #define PIN_EMD4_REG_OFFS                          (0x01EC)
486 #define PIN_EMD5_REG_OFFS                          (0x01F0)
487 #define PIN_EMD6_REG_OFFS                          (0x01F4)
488 #define PIN_EMD7_REG_OFFS                          (0x01F8)
489 #define PIN_EMDQM0_REG_OFFS                          (0x01FC)
490 #define PIN_EMDQS0_REG_OFFS                          (0x0200)
491 #define PIN_EMD8_REG_OFFS                          (0x0204)
492 #define PIN_EMD9_REG_OFFS                          (0x0208)
493 #define PIN_EMD10_REG_OFFS                          (0x020C)
494 #define PIN_EMD11_REG_OFFS                          (0x0210)
495 #define PIN_EMD12_REG_OFFS                          (0x0214)
496 #define PIN_EMD13_REG_OFFS                          (0x0218)
497 #define PIN_EMD14_REG_OFFS                          (0x021C)
498 #define PIN_EMD15_REG_OFFS                          (0x0220)
499 #define PIN_EMDQM1_REG_OFFS                          (0x0224)
500 #define PIN_EMDQS1_REG_OFFS                          (0x0228)
501 #define PIN_EMD16_REG_OFFS                          (0x022C)
502 #define PIN_EMD17_REG_OFFS                          (0x0230)
503 #define PIN_EMD18_REG_OFFS                          (0x0234)
504 #define PIN_EMD19_REG_OFFS                          (0x0238)
505 #define PIN_EMD20_REG_OFFS                          (0x023C)
506 #define PIN_EMD21_REG_OFFS                          (0x0240)
507 #define PIN_EMD22_REG_OFFS                          (0x0244)
508 #define PIN_EMD23_REG_OFFS                          (0x0248)
509 #define PIN_EMDQM2_REG_OFFS                          (0x024C)
510 #define PIN_EMDQS2_REG_OFFS                          (0x0250)
511 #define PIN_EMD24_REG_OFFS                          (0x0254)
512 #define PIN_EMD25_REG_OFFS                          (0x0258)
513 #define PIN_EMD26_REG_OFFS                          (0x025C)
514 #define PIN_EMD27_REG_OFFS                          (0x0260)
515 #define PIN_EMD28_REG_OFFS                          (0x0264)
516 #define PIN_EMD29_REG_OFFS                          (0x0268)
517 #define PIN_EMD30_REG_OFFS                          (0x026C)
518 #define PIN_EMD31_REG_OFFS                          (0x0270)
519 #define PIN_EMDQM3_REG_OFFS                          (0x0274)
520 #define PIN_EMDQS3_REG_OFFS                          (0x0278)
521 #define PIN_CLKDPMEM_REG_OFFS                          (0x027C)
522 #define PIN_CLKDMMEM_REG_OFFS                          (0x0280)
523 #define PIN_EMRAS_N_REG_OFFS                          (0x0284)
524 #define PIN_EMCAS_N_REG_OFFS                          (0x0288)
525 #define PIN_EMWE_N_REG_OFFS                          (0x028C)
526 #define PIN_EMCS_N0_REG_OFFS                          (0x0290)
527 #define PIN_EMCS_N1_REG_OFFS                          (0x0294)
528 #define PIN_EMCS_N2_REG_OFFS                          (0x0298)
529 #define PIN_EMCS_N3_REG_OFFS                          (0x029C)
530 #define PIN_EMBA0_REG_OFFS                          (0x02A0)
531 #define PIN_EMBA1_REG_OFFS                          (0x02A4)
532 #define PIN_EMCKE0_REG_OFFS                          (0x02A8)
533 #define PIN_LCD_CSN1_REG_OFFS                          (0x02AC)
534 #define PIN_LCD_RSTN_REG_OFFS                          (0x02B0)
535 #define PIN_LCD_CD_REG_OFFS                          (0x02B4)
536 #define PIN_LCD_D0_REG_OFFS                          (0x02B8)
537 #define PIN_LCD_D1_REG_OFFS                          (0x02BC)
538 #define PIN_LCD_D2_REG_OFFS                          (0x02C0)
539 #define PIN_LCD_D3_REG_OFFS                          (0x02C4)
540 #define PIN_LCD_D4_REG_OFFS                          (0x02C8)
541 #define PIN_LCD_D5_REG_OFFS                          (0x02CC)
542 #define PIN_LCD_D6_REG_OFFS                          (0x02D0)
543 #define PIN_LCD_D7_REG_OFFS                          (0x02D4)
544 #define PIN_LCD_D8_REG_OFFS                          (0x02D8)
545 #define PIN_LCD_WRN_REG_OFFS                          (0x02DC)
546 #define PIN_LCD_RDN_REG_OFFS                          (0x02E0)
547 #define PIN_LCD_CSN0_REG_OFFS                          (0x02E4)
548 #define PIN_LCD_D9_REG_OFFS                          (0x02E8)
549 #define PIN_LCD_D10_REG_OFFS                          (0x02EC)
550 #define PIN_LCD_D11_REG_OFFS                          (0x02F0)
551 #define PIN_LCD_D12_REG_OFFS                          (0x02F4)
552 #define PIN_LCD_D13_REG_OFFS                          (0x02F8)
553 #define PIN_LCD_D14_REG_OFFS                          (0x02FC)
554 #define PIN_LCD_D15_REG_OFFS                          (0x0300)
555 #define PIN_LCD_D16_REG_OFFS                          (0x0304)
556 #define PIN_LCD_D17_REG_OFFS                          (0x0308)
557 #define PIN_LCD_FMARK_REG_OFFS                          (0x030C)
558 #define PIN_CCIRMCLK_REG_OFFS                          (0x0310)
559 #define PIN_CCIRCK_REG_OFFS                          (0x0314)
560 #define PIN_CCIRHS_REG_OFFS                          (0x0318)
561 #define PIN_CCIRVS_REG_OFFS                          (0x031C)
562 #define PIN_CCIRD0_REG_OFFS                          (0x0320)
563 #define PIN_CCIRD1_REG_OFFS                          (0x0324)
564 #define PIN_CCIRD2_REG_OFFS                          (0x0328)
565 #define PIN_CCIRD3_REG_OFFS                          (0x032C)
566 #define PIN_CCIRD4_REG_OFFS                          (0x0330)
567 #define PIN_CCIRD5_REG_OFFS                          (0x0334)
568 #define PIN_CCIRD6_REG_OFFS                          (0x0338)
569 #define PIN_CCIRD7_REG_OFFS                          (0x033C)
570 #define PIN_CCIRRST_REG_OFFS                          (0x0340)
571 #define PIN_CCIRPD1_REG_OFFS                          (0x0344)
572 #define PIN_CCIRPD0_REG_OFFS                          (0x0348)
573 #define PIN_SCL_REG_OFFS                          (0x034C)
574 #define PIN_SDA_REG_OFFS                          (0x0350)
575 #define PIN_CLK_AUX0_REG_OFFS                          (0x0354)
576 #define PIN_IISDI_REG_OFFS                          (0x0358)
577 #define PIN_IISDO_REG_OFFS                          (0x035C)
578 #define PIN_IISCLK_REG_OFFS                          (0x0360)
579 #define PIN_IISLRCK_REG_OFFS                          (0x0364)
580 #define PIN_IISMCK_REG_OFFS                          (0x0368)
581 #define PIN_RFSDA0_REG_OFFS                          (0x036C)
582 #define PIN_RFSCK0_REG_OFFS                          (0x0370)
583 #define PIN_RFSEN0_REG_OFFS                          (0x0374)
584 #define PIN_RFCTL0_REG_OFFS                          (0x0378)
585 #define PIN_RFCTL1_REG_OFFS                          (0x037C)
586 #define PIN_RFCTL2_REG_OFFS                          (0x0380)
587 #define PIN_RFCTL3_REG_OFFS                          (0x0384)
588 #define PIN_RFCTL4_REG_OFFS                          (0x0388)
589 #define PIN_RFCTL5_REG_OFFS                          (0x038C)
590 #define PIN_RFCTL6_REG_OFFS                          (0x0390)
591 #define PIN_RFCTL7_REG_OFFS                          (0x0394)
592 #define PIN_RFCTL8_REG_OFFS                          (0x0398)
593 #define PIN_RFCTL9_REG_OFFS                          (0x039C)
594 #define PIN_RFCTL10_REG_OFFS                          (0x03A0)
595 #define PIN_RFCTL11_REG_OFFS                          (0x03A4)
596 #define PIN_RFCTL12_REG_OFFS                          (0x03A8)
597 #define PIN_RFCTL13_REG_OFFS                          (0x03AC)
598 #define PIN_RFCTL14_REG_OFFS                          (0x03B0)
599 #define PIN_RFCTL15_REG_OFFS                          (0x03B4)
600 #define PIN_XTL_EN_REG_OFFS                          (0x03B8)
601 #define PIN_PTEST_REG_OFFS                          (0x03BC)
602 #define PIN_GPIO135_REG_OFFS                          (0x03C0)
603 #define PIN_GPIO136_REG_OFFS                          (0x03C4)
604 #define PIN_GPIO137_REG_OFFS                          (0x03C8)
605 #define PIN_GPIO138_REG_OFFS                          (0x03CC)
606 #define PIN_GPIO139_REG_OFFS                          (0x03D0)
607 #define PIN_GPIO140_REG_OFFS                          (0x03D4)
608 #define PIN_OPTION2_REG_OFFS                          (0x03D8)
609 #define PIN_OPTION3_REG_OFFS                          (0x03DC)
610 #define PIN_GPIO141_REG_OFFS                          (0x03E0)
611 #define PIN_GPIO142_REG_OFFS                          (0x03E4)
612 #define PIN_GPIO143_REG_OFFS                          (0x03E8)
613 #define PIN_GPIO144_REG_OFFS                          (0x03EC)
614 #endif
615
616
617 /*----------Analog Die Pin Control Register----------*/
618
619
620 #define ANA_PIN_CHIP_RSTN_REG_OFFS           (0x008C)
621 #define ANA_PIN_PBINT_REG_OFFS               (0x0094)
622 #define ANA_PIN_TP_XL_REG_OFFS               (0x0098)
623 #define ANA_PIN_TP_XR_REG_OFFS               (0x009C)
624 #define ANA_PIN_TP_YU_REG_OFFS               (0x00A0)
625 #define ANA_PIN_TP_YD_REG_OFFS               (0x00A4)
626
627 //The pin is in A die
628 #define A_DIE_PIN       BIT_31
629
630 #define MFP_PIN(x)      (((x##_REG_OFFS) & 0xffff) << 16)
631
632 #define MFP_ANA_PIN(x) ((((x##_REG_OFFS) & 0xffff) << 16) | A_DIE_PIN)
633
634 #define MFP_CFG_TO_REG_OFFS(x)  ((x) >> 16)
635
636 //special bit for setting, for the default value of is not same
637 //with all registers
638 #define MFP_IO_SET                              (0x1 << 15)
639 #define MFP_S_PULL_SET  (0x1 << 14)
640 #define MFP_AF_SET                      (0x1 << 13)
641 #define MFP_F_PULL_SET          (0x1 << 12)
642 #define MFP_DS_SET                              (0x1 << 11)
643
644 /* Pinmap ctrl register Bit field value
645 --------------------------------------------------------------------------------------------------------------------------
646 |                 |                 |            |            |              |       |       |            |              |
647 | Reserved[31:10] | Drv str sel[9:8]| func PU[7] | func PD[6] | func sel[5:4]| PU[3] | PD[2] | input En[1]| output En[0] |
648 |                 |                 |            |            |              |       |       |            |              |
649 --------------------------------------------------------------------------------------------------------------------------
650 */
651
652 /*
653 pin output/input enable.
654 NOTE, this is not applied to GPIO pins, GPIO pin's input/output direction have specific
655         registers and specfic bits.
656         BIT 0, 1
657 */
658 #define MFP_IO_NONE  (0x0 << 0)
659 #define MFP_IO_Z                MFP_IO_NONE
660 #define MFP_IO_OE               (0x1    << 0)
661 #define MFP_IO_IE               (0x2 << 0)
662 #define MFP_IO_BOTH   (0x3 << 0)
663 #define MFP_IO_MASK  MFP_IO_BOTH
664
665 /*
666         pin weak pull up/down in sleep mode
667         BIT 2, 3
668 */
669 #define MFP_S_PULL_NONE (0x0  << 2)
670 #define MFP_S_PULL_DOWN         (0x1 << 2)
671 #define MFP_S_PULL_UP           (0x2  << 2)
672 #define MFP_S_PULL_BOTH (0x3  << 2)
673 #define MFP_S_PULL_MASK         MFP_S_PULL_BOTH
674
675 /*
676         pin alternate function
677         BIT 4, 5
678 */
679 #define MFP_AF0                 (0x0 << 4)
680 #define MFP_AF1                 (0x1 << 4)
681 #define MFP_AF2                 (0x2 << 4)
682 #define MFP_AF3                 (0x3 << 4)
683 #define MFP_AF_MASK             (0x3 << 4)
684 #define MFP_GPIO  MFP_AF3
685
686 /*
687         pin weak pull up/down in function mode
688         BIT 6, 7
689 */
690 #define MFP_F_PULL_NONE (0x0  << 6)
691 #define MFP_F_PULL_DOWN         (0x1 << 6)
692 #define MFP_F_PULL_UP           (0x2  << 6)
693 #define MFP_F_PULL_BOTH (0x3  << 6)
694 #define MFP_F_PULL_MASK         MFP_F_PULL_BOTH
695
696 /*
697         pin driver strenth
698         BIT 8, 9
699 */
700
701 #define MFP_DS0         (0x0 << 8)
702 #define MFP_DS1         (0x1 << 8)
703 #define MFP_DS2         (0x2 << 8)
704 #define MFP_DS3         (0x3 << 8)
705 #define MFP_DS_MASK     (0x3 << 8)
706
707
708 #define MFP_CFG(pin, af)                \
709         (MFP_AF_SET |\
710          (MFP_PIN(PIN_##pin) | MFP_##af))
711
712 #define MFP_CFG_DRV(pin, af, drv)       \
713         ((MFP_AF_SET |MFP_DS_SET) |\
714          (MFP_PIN(PIN_##pin) | MFP_##af | MFP_##drv))
715
716 #define MFP_CFG_SLEEP_UPDOWN(pin, af, updown)   \
717         ((MFP_AF_SET | MFP_S_PULL_SET) |\
718          (MFP_PIN(PIN_##pin) | MFP_##af | MFP_##updown))
719
720 #define MFP_CFG_IOE(pin, af, io)        \
721         ((MFP_AF_SET |MFP_IO_SET)  |\
722          (MFP_PIN(PIN_##pin) | MFP_##af | MFP_##io))
723
724 #define MFP_SET_ALL     \
725         (MFP_AF_SET |MFP_IO_SET | MFP_S_PULL_SET | MFP_DS_SET | \
726         MFP_F_PULL_SET)
727
728 #define MFP_CFG_X(pin, af, drv, func_updown, sleep_updown, io)  \
729         (MFP_SET_ALL |\
730          (MFP_PIN(PIN_##pin) | MFP_##af | MFP_##drv |\
731          MFP_##func_updown  | MFP_##sleep_updown| MFP_##io))
732
733 #define MFP_ANA_CFG_X(pin, drv, func_updown, af, sleep_updown, io)      \
734         (MFP_SET_ALL |\
735          (MFP_ANA_PIN(ANA_PIN_##pin) |  MFP_##af | MFP_##drv |\
736          MFP_##func_updown | MFP_##sleep_updown| MFP_##io))
737
738 extern unsigned long mfp_to_gpio(int pin);
739 extern void sprd_mfp_config(unsigned long *mfp_cfgs, int num);
740 #endif
741