fe52000d3b5ad6d461b19c74d00237dd8f5897da
[coreboot.git] / src / southbridge / amd / cs5536 / cs5536.h
1 /*
2  * This file is part of the LinuxBIOS project.
3  *
4  * Copyright (C) 2007 Advanced Micro Devices, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
18  */
19
20 #ifndef _CS5536_H
21 #define _CS5536_H
22
23 #define Cx5536_ID        (      0x208F1022)
24
25 /*      SouthBridge Equates */
26 #define CS5536_GLINK_PORT_NUM   0x02    /* port of the SouthBridge */
27 #define NB_PCI                  ((2     << 29) + (4 << 26))     /* NB GLPCI is in the same location on all Geodes. */
28 #define MSR_SB                  ((CS5536_GLINK_PORT_NUM << 23) + NB_PCI)        /* address to the SouthBridge */
29 #define SB_SHIFT                20      /* 29 -> 26 -> 23 -> 20...... When making a SB address uses this shift. */
30
31 #define CS5536_DEV_NUM  0x0F    /* default PCI device number for CS5536 */
32 #define SMBUS_IO_BASE   0x6000
33 #define GPIO_IO_BASE    0x6100
34 #define MFGPT_IO_BASE   0x6200
35 #define ACPI_IO_BASE    0x9C00
36 #define PMS_IO_BASE             0x9D00
37
38 #define CS5535_IDSEL    0x02000000      // IDSEL = AD25, device #15
39 #define CHIPSET_DEV_NUM 15
40 #define IDSEL_BASE              11      // bit 11 = device 1
41
42 /* Cs5536 as follows. */
43 /*      SB_GLIU */
44 /*      port0 - GLIU */
45 /*      port1 - GLPCI */
46 /*      port2 - USB Controller #2 */
47 /*      port3 - ATA-5 Controller */
48 /*      port4 - MDD */
49 /*      port5 - AC97 */
50 /*      port6 - USB Controller #1 */
51 /*      port7 - GLCP */
52
53 #define MSR_SB_GLIU             ((9 << 14) + MSR_SB)    /* 51024xxx or 510*xxxx - fake out just like GL0 on CPU. */
54 #define MSR_SB_GLPCI    (MSR_SB)        /* 5100xxxx - don't go to the GLIU */
55 #define MSR_SB_USB2             ((2 << SB_SHIFT) + MSR_SB)      /* 5120xxxx */
56 #define MSR_SB_ATA              ((3 << SB_SHIFT) + MSR_SB)      /* 5130xxxx */
57 #define MSR_SB_MDD              ((4 << SB_SHIFT) + MSR_SB)      /* 5140xxxx, a.k.a. DIVIL = Diverse Integrated Logic device */
58 #define MSR_SB_AC97             ((5 << SB_SHIFT) + MSR_SB)      /* 5150xxxx */
59 #define MSR_SB_USB1             ((6 << SB_SHIFT) + MSR_SB)      /* 5160xxxx */
60 #define MSR_SB_GLCP             ((7 << SB_SHIFT) + MSR_SB)      /* 5170xxxx */
61
62 /* */
63 /* GLIU*/
64 /* */
65 #define GLIU_SB_GLD_MSR_CAP             (MSR_SB_GLIU + 0x00)
66 #define GLIU_SB_GLD_MSR_CONF    (MSR_SB_GLIU + 0x01)
67 #define GLIU_SB_GLD_MSR_PM              (MSR_SB_GLIU + 0x04)
68
69 /* */
70 /*      USB1*/
71 /* */
72 #define USB1_SB_GLD_MSR_CAP             (MSR_SB_USB1 + 0x00)
73 #define USB1_SB_GLD_MSR_CONF    (MSR_SB_USB1 + 0x01)
74 #define USB1_SB_GLD_MSR_PM              (MSR_SB_USB1 + 0x04)
75
76 /* */
77 /*      USB2*/
78 /* */
79 #define USB2_SB_GLD_MSR_CAP                     (MSR_SB_USB2 + 0x00)
80 #define USB2_SB_GLD_MSR_CONF            (MSR_SB_USB2 + 0x01)
81 #define USB2_UPPER_SSDEN_SET            (1 << 3 )       /* Bit 35 */
82 #define USB2_SB_GLD_MSR_PM                      (MSR_SB_USB2 + 0x04)
83 #define USB2_SB_GLD_MSR_DIAG            (MSR_SB_USB2 + 0x05)
84 #define USB2_SB_GLD_MSR_OHCI_BASE       (MSR_SB_USB2 + 0x08)
85 #define USB2_SB_GLD_MSR_EHCI_BASE       (MSR_SB_USB2 + 0x09)
86 #define USB2_SB_GLD_MSR_DEVCTL_BASE     (MSR_SB_USB2 + 0x0A)
87 #define USB2_SB_GLD_MSR_UOC_BASE        (MSR_SB_USB2 + 0x0B)    /* Option controller base */
88
89 /* */
90 /*      ATA*/
91 /* */
92 #define ATA_SB_GLD_MSR_CAP              (MSR_SB_ATA + 0x00)
93 #define ATA_SB_GLD_MSR_CONF             (MSR_SB_ATA + 0x01)
94 #define ATA_SB_GLD_MSR_ERR              (MSR_SB_ATA + 0x03)
95 #define ATA_SB_GLD_MSR_PM               (MSR_SB_ATA + 0x04)
96
97 /* */
98 /*      AC97*/
99 /* */
100 #define AC97_SB_GLD_MSR_CAP             (MSR_SB_AC97 + 0x00)
101 #define AC97_SB_GLD_MSR_CONF    (MSR_SB_AC97 + 0x01)
102 #define AC97_SB_GLD_MSR_PM              (MSR_SB_AC97 + 0x04)
103
104 /* */
105 /*      GLPCI*/
106 /* */
107 #define GLPCI_SB_GLD_MSR_CAP    (MSR_SB_GLPCI + 0x00)
108 #define GLPCI_SB_GLD_MSR_CONF   (MSR_SB_GLPCI + 0x01)
109 #define GLPCI_SB_GLD_MSR_PM             (MSR_SB_GLPCI + 0x04)
110 #define GLPCI_SB_CTRL                   (MSR_SB_GLPCI + 0x10)
111 #define         GLPCI_CRTL_PPIDE_SET    (1 << 17)
112 /* */
113 /*      GLCP*/
114 /* */
115 #define GLCP_SB_GLD_MSR_CAP             (MSR_SB_GLCP + 0x00)
116 #define GLCP_SB_GLD_MSR_CONF    (MSR_SB_GLCP + 0x01)
117 #define GLCP_SB_GLD_MSR_PM              (MSR_SB_GLCP + 0x04)
118 #define GLCP_SB_CLKOFF                  (MSR_SB_GLCP + 0x10)
119
120 /*      */
121 /*      MDD*/
122 /* */
123 #define MDD_SB_GLD_MSR_CAP              (MSR_SB_MDD + 0x00)
124 #define MDD_SB_GLD_MSR_CONF             (MSR_SB_MDD + 0x01)
125 #define MDD_SB_GLD_MSR_PM               (MSR_SB_MDD + 0x04)
126 #define LBAR_EN                                 (0x01)
127 #define IO_MASK                                 (0x1f)
128 #define MEM_MASK                                (0x0FFFFF)
129 #define MDD_LBAR_IRQ                    (MSR_SB_MDD + 0x08)
130 #define MDD_LBAR_KEL1   (MSR_SB_MDD + 0x09)
131 #define MDD_LBAR_KEL2   (MSR_SB_MDD + 0x0A)
132 #define MDD_LBAR_SMB    (MSR_SB_MDD + 0x0B)
133 #define MDD_LBAR_GPIO   (MSR_SB_MDD + 0x0C)
134 #define MDD_LBAR_MFGPT  (MSR_SB_MDD + 0x0D)
135 #define MDD_LBAR_ACPI   (MSR_SB_MDD + 0x0E)
136 #define MDD_LBAR_PMS    (MSR_SB_MDD + 0x0F)
137
138 #define MDD_LBAR_FLSH0  (MSR_SB_MDD + 0x010)
139 #define MDD_LBAR_FLSH1  (MSR_SB_MDD + 0x011)
140 #define MDD_LBAR_FLSH2  (MSR_SB_MDD + 0x012)
141 #define MDD_LBAR_FLSH3  (MSR_SB_MDD + 0x013)
142 #define MDD_LEG_IO              (MSR_SB_MDD + 0x014)
143 #define MDD_PIN_OPT             (MSR_SB_MDD + 0x015)
144 #define MDD_SOFT_IRQ    (MSR_SB_MDD + 0x016)
145 #define MDD_SOFT_RESET  (MSR_SB_MDD + 0x017)
146 #define MDD_NORF_CNTRL  (MSR_SB_MDD + 0x018)
147 #define MDD_NORF_T01    (MSR_SB_MDD + 0x019)
148 #define MDD_NORF_T23    (MSR_SB_MDD + 0x01A)
149 #define MDD_NANDF_DATA  (MSR_SB_MDD + 0x01B)
150 #define MDD_NADF_CNTL   (MSR_SB_MDD + 0x01C)
151 #define MDD_AC_DMA              (MSR_SB_MDD + 0x01E)
152 #define MDD_KEL_CNTRL   (MSR_SB_MDD + 0x01F)
153
154 #define MDD_IRQM_YLOW   (MSR_SB_MDD + 0x020)
155 #define MDD_IRQM_YHIGH  (MSR_SB_MDD + 0x021)
156 #define MDD_IRQM_ZLOW   (MSR_SB_MDD + 0x022)
157 #define MDD_IRQM_ZHIGH  (MSR_SB_MDD + 0x023)
158 #define MDD_IRQM_PRIM   (MSR_SB_MDD + 0x024)
159 #define MDD_IRQM_LPC    (MSR_SB_MDD + 0x025)
160 #define MDD_IRQM_LXIRR  (MSR_SB_MDD + 0x026)
161 #define MDD_IRQM_HXIRR  (MSR_SB_MDD + 0x027)
162
163 #define MDD_MFGPT_IRQ   (MSR_SB_MDD + 0x028)
164 #define MDD_MFGPT_NR    (MSR_SB_MDD + 0x029)
165 #define MDD_MFGPT_RES0  (MSR_SB_MDD + 0x02A)
166 #define MDD_MFGPT_RES1  (MSR_SB_MDD + 0x02B)
167
168 #define MDD_FLOP_S3F2   (MSR_SB_MDD + 0x030)
169 #define MDD_FLOP_S3F7   (MSR_SB_MDD + 0x031)
170 #define MDD_FLOP_S372   (MSR_SB_MDD + 0x032)
171 #define MDD_FLOP_S377   (MSR_SB_MDD + 0x033)
172
173 #define MDD_PIC_S               (MSR_SB_MDD + 0x034)
174 #define MDD_PIT_S               (MSR_SB_MDD + 0x036)
175 #define MDD_PIT_CNTRL   (MSR_SB_MDD + 0x037)
176
177 #define MDD_UART1_MOD   (MSR_SB_MDD + 0x038)
178 #define MDD_UART1_DON   (MSR_SB_MDD + 0x039)
179 #define MDD_UART1_CONF  (MSR_SB_MDD + 0x03A)
180 #define MDD_UART2_MOD   (MSR_SB_MDD + 0x03C)
181 #define MDD_UART2_DON   (MSR_SB_MDD + 0x03D)
182 #define MDD_UART2_CONF  (MSR_SB_MDD + 0x03E)
183
184 #define MDD_DMA_MAP             (MSR_SB_MDD + 0x040)
185 #define MDD_DMA_SHAD1           (MSR_SB_MDD + 0x041)
186 #define MDD_DMA_SHAD2           (MSR_SB_MDD + 0x042)
187 #define MDD_DMA_SHAD3           (MSR_SB_MDD + 0x043)
188 #define MDD_DMA_SHAD4           (MSR_SB_MDD + 0x044)
189 #define MDD_DMA_SHAD5           (MSR_SB_MDD + 0x045)
190 #define MDD_DMA_SHAD6           (MSR_SB_MDD + 0x046)
191 #define MDD_DMA_SHAD7           (MSR_SB_MDD + 0x047)
192 #define MDD_DMA_SHAD8           (MSR_SB_MDD + 0x048)
193 #define MDD_DMA_SHAD9           (MSR_SB_MDD + 0x049)
194
195 #define MDD_LPC_EADDR   (MSR_SB_MDD + 0x04C)
196 #define MDD_LPC_ESTAT   (MSR_SB_MDD + 0x04D)
197 #define MDD_LPC_SIRQ    (MSR_SB_MDD + 0x04E)
198 #define MDD_LPC_RES             (MSR_SB_MDD + 0x04F)
199
200 #define MDD_PML_TMR                             (MSR_SB_MDD + 0x050)
201 #define MDD_RTC_RAM_LO_CK               (MSR_SB_MDD + 0x054)
202 #define MDD_RTC_DOMA_IND                (MSR_SB_MDD + 0x055)
203 #define MDD_RTC_MONA_IND                (MSR_SB_MDD + 0x056)
204 #define MDD_RTC_CENTURY_OFFSET  (MSR_SB_MDD + 0x057)
205
206 /* ***********************************************************/
207 /*      LBUS Device Equates - */
208 /* ***********************************************************/
209
210 /* */
211 /*      SMBus*/
212 /* */
213
214 #define SMB_SDA         0x00
215 #define SMB_STS         0x01
216 #define         SMB_STS_SLVSTP  (0x01 << 7)
217 #define         SMB_STS_SDAST   (0x01 << 6)
218 #define         SMB_STS_BER             (0x01 << 5)
219 #define         SMB_STS_NEGACK  (0x01 << 4)
220 #define         SMB_STS_STASTR  (0x01 << 3)
221 #define         SMB_STS_NMATCH  (0x01 << 2)
222 #define         SMB_STS_MASTER  (0x01 << 1)
223 #define         SMB_STS_XMIT    (0x01 << 0)
224
225 #define SMB_CTRL_STS    0x02
226 #define         SMB_CSTS_TGSCL  (0x01 << 5)
227 #define         SMB_CSTS_TSDA   (0x01 << 4)
228 #define         SMB_CSTS_GCMTCH (0x01 << 3)
229 #define         SMB_CSTS_MATCH  (0x01 << 2)
230 #define         SMB_CSTS_BB             (0x01 << 1)
231 #define         SMB_CSTS_BUSY   (0x01 << 0)
232
233 #define SMB_CTRL1       0x03
234 #define         SMB_CTRL1_STASTRE       (0x01 << 7)
235 #define         SMB_CTRL1_NMINTE        (0x01 << 6)
236 #define         SMB_CTRL1_GCMEN         (0x01 << 5)
237 #define         SMB_CTRL1_ACK           (0x01 << 4)
238 #define         SMB_CTRL1_RSVD          (0x01 << 3)
239 #define         SMB_CTRL1_INTEN         (0x01 << 2)
240 #define         SMB_CTRL1_STOP          (0x01 << 1)
241 #define         SMB_CTRL1_START         (0x01 << 0)
242
243 #define SMB_ADD         0x04
244 #define         SMB_ADD_SAEN            (0x01 << 7)
245
246 #define SMB_CTRL2       0x05
247 #define         SMB_CTRL2_ENABLE        (0x01 << 0)
248
249 #define SMB_CTRL3       0x06
250
251 /* */
252 /*      GPIO*/
253 /* */
254
255 #define GPIOL_0_SET             (1 << 0)
256 #define GPIOL_1_SET             (1 << 1)
257 #define GPIOL_2_SET             (1 << 2)
258 #define GPIOL_3_SET             (1 << 3)
259 #define GPIOL_4_SET             (1 << 4)
260 #define GPIOL_5_SET             (1 << 5)
261 #define GPIOL_6_SET             (1 << 6)
262 #define GPIOL_7_SET             (1 << 7)
263 #define GPIOL_8_SET             (1 << 8)
264 #define GPIOL_9_SET             (1 << 9)
265 #define GPIOL_10_SET    (1 << 10)
266 #define GPIOL_11_SET    (1 << 11)
267 #define GPIOL_12_SET    (1 << 12)
268 #define GPIOL_13_SET    (1 << 13)
269 #define GPIOL_14_SET    (1 << 14)
270 #define GPIOL_15_SET    (1 << 15)
271
272 #define GPIOL_0_CLEAR   (1 << 16)
273 #define GPIOL_1_CLEAR   (1 << 17)
274 #define GPIOL_2_CLEAR   (1 << 18)
275 #define GPIOL_3_CLEAR   (1 << 19)
276 #define GPIOL_4_CLEAR   (1 << 20)
277 #define GPIOL_5_CLEAR   (1 << 21)
278 #define GPIOL_6_CLEAR   (1 << 22)
279 #define GPIOL_7_CLEAR   (1 << 23)
280 #define GPIOL_8_CLEAR   (1 << 24)
281 #define GPIOL_9_CLEAR   (1 << 25)
282 #define GPIOL_10_CLEAR  (1 << 26)
283 #define GPIOL_11_CLEAR  (1 << 27)
284 #define GPIOL_12_CLEAR  (1 << 28)
285 #define GPIOL_13_CLEAR  (1 << 29)
286 #define GPIOL_14_CLEAR  (1 << 30)
287 #define GPIOL_15_CLEAR  (1 << 31)
288
289 #define GPIOH_16_SET    (1 << 0)
290 #define GPIOH_17_SET    (1 << 1)
291 #define GPIOH_18_SET    (1 << 2)
292 #define GPIOH_19_SET    (1 << 3)
293 #define GPIOH_20_SET    (1 << 4)
294 #define GPIOH_21_SET    (1 << 5)
295 #define GPIOH_22_SET    (1 << 6)
296 #define GPIOH_23_SET    (1 << 7)
297 #define GPIOH_24_SET    (1 << 8)
298 #define GPIOH_25_SET    (1 << 9)
299 #define GPIOH_26_SET    (1 << 10)
300 #define GPIOH_27_SET    (1 << 11)
301 #define GPIOH_28_SET    (1 << 12)
302 #define GPIOH_29_SET    (1 << 13)
303 #define GPIOH_30_SET    (1 << 14)
304 #define GPIOH_31_SET    (1 << 15)
305
306 #define GPIOH_16_CLEAR  (1 << 16)
307 #define GPIOH_17_CLEAR  (1 << 17)
308 #define GPIOH_18_CLEAR  (1 << 18)
309 #define GPIOH_19_CLEAR  (1 << 19)
310 #define GPIOH_20_CLEAR  (1 << 20)
311 #define GPIOH_21_CLEAR  (1 << 21)
312 #define GPIOH_22_CLEAR  (1 << 22)
313 #define GPIOH_23_CLEAR  (1 << 23)
314 #define GPIOH_24_CLEAR  (1 << 24)
315 #define GPIOH_25_CLEAR  (1 << 25)
316 #define GPIOH_26_CLEAR  (1 << 26)
317 #define GPIOH_27_CLEAR  (1 << 27)
318 #define GPIOH_28_CLEAR  (1 << 28)
319 #define GPIOH_29_CLEAR  (1 << 29)
320 #define GPIOH_30_CLEAR  (1 << 30)
321 #define GPIOH_31_CLEAR  (1 << 31)
322
323 /*      GPIO LOW Bank Bit Registers*/
324 #define GPIOL_OUTPUT_VALUE                      (0x00)
325 #define GPIOL_OUTPUT_ENABLE                     (0x04)
326 #define GPIOL_OUT_OPENDRAIN                     (0x08)
327 #define GPIOL_OUTPUT_INVERT_ENABLE      (0x0C)
328 #define GPIOL_OUT_AUX1_SELECT           (0x10)
329 #define GPIOL_OUT_AUX2_SELECT           (0x14)
330 #define GPIOL_PULLUP_ENABLE                     (0x18)
331 #define GPIOL_PULLDOWN_ENABLE           (0x1C)
332 #define GPIOL_INPUT_ENABLE                      (0x20)
333 #define GPIOL_INPUT_INVERT_ENABLE       (0x24)
334 #define GPIOL_IN_FILTER_ENABLE          (0x28)
335 #define GPIOL_IN_EVENTCOUNT_ENABLE      (0x2C)
336 #define GPIOL_READ_BACK                         (0x30)
337 #define GPIOL_IN_AUX1_SELECT            (0x34)
338 #define GPIOL_EVENTS_ENABLE                     (0x38)
339 #define GPIOL_LOCK_ENABLE                       (0x3C)
340 #define GPIOL_IN_POSEDGE_ENABLE         (0x40)
341 #define GPIOL_IN_NEGEDGE_ENABLE         (0x44)
342 #define GPIOL_IN_POSEDGE_STATUS         (0x48)
343 #define GPIOL_IN_NEGEDGE_STATUS         (0x4C)
344
345 /*      GPIO  High Bank Bit Registers*/
346 #define GPIOH_OUTPUT_VALUE                      (0x80)
347 #define GPIOH_OUTPUT_ENABLE                     (0x84)
348 #define GPIOH_OUT_OPENDRAIN                     (0x88)
349 #define GPIOH_OUTPUT_INVERT_ENABLE      (0x8C)
350 #define GPIOH_OUT_AUX1_SELECT           (0x90)
351 #define GPIOH_OUT_AUX2_SELECT           (0x94)
352 #define GPIOH_PULLUP_ENABLE                     (0x98)
353 #define GPIOH_PULLDOWN_ENABLE           (0x9C)
354 #define GPIOH_INPUT_ENABLE                      (0x0A0)
355 #define GPIOH_INPUT_INVERT_ENABLE       (0x0A4)
356 #define GPIOH_IN_FILTER_ENABLE          (0x0A8)
357 #define GPIOH_IN_EVENTCOUNT_ENABLE      (0x0AC)
358 #define GPIOH_READ_BACK                         (0x0B0)
359 #define GPIOH_IN_AUX1_SELECT            (0x0B4)
360 #define GPIOH_EVENTS_ENABLE                     (0x0B8)
361 #define GPIOH_LOCK_ENABLE                       (0x0BC)
362 #define GPIOH_IN_POSEDGE_ENABLE         (0x0C0)
363 #define GPIOH_IN_NEGEDGE_ENABLE         (0x0C4)
364 #define GPIOH_IN_POSEDGE_STATUS         (0x0C8)
365 #define GPIOH_IN_NEGEDGE_STATUS         (0x0CC)
366
367 /*      Input Conditioning Function Registers*/
368 #define GPIO_00_FILTER_AMOUNT           (0x50)
369 #define GPIO_00_FILTER_COUNT            (0x52)
370 #define GPIO_00_EVENT_COUNT                     (0x54)
371 #define GPIO_00_EVENTCOMPARE_VALUE      (0x56)
372 #define GPIO_01_FILTER_AMOUNT           (0x58)
373 #define GPIO_01_FILTER_COUNT            (0x5A)
374 #define GPIO_01_EVENT_COUNT                     (0x5C)
375 #define GPIO_01_EVENTCOMPARE_VALUE      (0x5E)
376 #define GPIO_02_FILTER_AMOUNT           (0x60)
377 #define GPIO_02_FILTER_COUNT            (0x62)
378 #define GPIO_02_EVENT_COUNT                     (0x64)
379 #define GPIO_02_EVENTCOMPARE_VALUE      (0x66)
380 #define GPIO_03_FILTER_AMOUNT           (0x68)
381 #define GPIO_03_FILTER_COUNT            (0x6A)
382 #define GPIO_03_EVENT_COUNT                     (0x6C)
383 #define GPIO_03_EVENTCOMPARE_VALUE      (0x6E)
384 #define GPIO_04_FILTER_AMOUNT           (0x70)
385 #define GPIO_04_FILTER_COUNT            (0x72)
386 #define GPIO_04_EVENT_COUNT                     (0x74)
387 #define GPIO_04_EVENTCOMPARE_VALUE      (0x76)
388 #define GPIO_05_FILTER_AMOUNT           (0x78)
389 #define GPIO_05_FILTER_COUNT            (0x7A)
390 #define GPIO_05_EVENT_COUNT                     (0x7C)
391 #define GPIO_05_EVENTCOMPARE_VALUE      (0x7E)
392 #define GPIO_06_FILTER_AMOUNT           (0x0D0)
393 #define GPIO_06_FILTER_COUNT            (0x0D2)
394 #define GPIO_06_EVENT_COUNT                     (0x0D4)
395 #define GPIO_06_EVENTCOMPARE_VALUE      (0x0D6)
396 #define GPIO_07_FILTER_AMOUNT           (0x0D8)
397 #define GPIO_07_FILTER_COUNT            (0x0DA)
398 #define GPIO_07_EVENT_COUNT                     (0x0DC)
399 #define GPIO_07_EVENTCOMPARE_VALUE      (0x0DE)
400
401 /*      R/W GPIO Interrupt &PME Mapper Registers*/
402 #define GPIO_MAPPER_X           (0x0E0)
403 #define GPIO_MAPPER_Y           (0x0E4)
404 #define GPIO_MAPPER_Z           (0x0E8)
405 #define GPIO_MAPPER_W           (0x0EC)
406 #define GPIO_FE_SELECT_0        (0x0F0)
407 #define GPIO_FE_SELECT_1        (0x0F1)
408 #define GPIO_FE_SELECT_2        (0x0F2)
409 #define GPIO_FE_SELECT_3        (0x0F3)
410 #define GPIO_FE_SELECT_4        (0x0F4)
411 #define GPIO_FE_SELECT_5        (0x0F5)
412 #define GPIO_FE_SELECT_6        (0x0F6)
413 #define GPIO_FE_SELECT_7        (0x0F7)
414
415 /*      Event Counter Decrement Registers*/
416 #define GPIOL_IN_EVENT_DECREMENT        (0x0F8)
417 #define GPIOH_IN_EVENT_DECREMENT        (0x0FC)
418
419 /*      PMC register*/
420 #define PM_SSD          (0x00)
421 #define PM_SCXA         (0x04)
422 #define PM_SCYA         (0x08)
423 #define PM_SODA         (0x0C)
424 #define PM_SCLK         (0x10)
425 #define PM_SED          (0x14)
426 #define PM_SCXD         (0x18)
427 #define PM_SCYD         (0x1C)
428 #define PM_SIDD         (0x20)
429 #define PM_WKD          (0x30)
430 #define PM_WKXD         (0x34)
431 #define PM_RD           (0x38)
432 #define PM_WKXA         (0x3C)
433 #define PM_FSD          (0x40)
434 #define PM_TSD          (0x44)
435 #define PM_PSD          (0x48)
436 #define PM_NWKD         (0x4C)
437 #define PM_AWKD         (0x50)
438 #define PM_SSC          (0x54)
439
440 /* FLASH device macros */
441 #define FLASH_TYPE_NONE 0       /* No flash device installed */
442 #define FLASH_TYPE_NAND 1       /* NAND device */
443 #define FLASH_TYPE_NOR  2       /* NOR device */
444
445 #define FLASH_IF_MEM    1       /* Memory or memory-mapped I/O interface for Flash device */
446 #define FLASH_IF_IO     2       /* I/O interface for Flash device */
447
448 /* Flash Memory Mask values */
449 #define FLASH_MEM_DEFAULT       0x00000000
450 #define FLASH_MEM_4K            0xFFFFF000
451 #define FLASH_MEM_8K            0xFFFFE000
452 #define FLASH_MEM_16K           0xFFFFC000
453 #define FLASH_MEM_128K          0xFFFE0000
454 #define FLASH_MEM_512K          0xFFFC0000
455 #define FLASH_MEM_4M            0xFFC00000
456 #define FLASH_MEM_8M            0xFF800000
457 #define FLASH_MEM_16M           0xFF000000
458
459 /* Flash IO Mask values */
460 #define FLASH_IO_DEFAULT        0x00000000
461 #define FLASH_IO_16B            0x0000FFF0
462 #define FLASH_IO_32B            0x0000FFE0
463 #define FLASH_IO_64B            0x0000FFC0
464 #define FLASH_IO_128B           0x0000FF80
465 #define FLASH_IO_256B           0x0000FF00
466
467 #endif                          /* _CS5536_H */