In 2007 Adrian Reber suggested that we drop ASSEMBLY in favor of __ASSEMBLER__.
[coreboot.git] / src / southbridge / amd / cs5536 / cs5536.h
1 /*
2  * This file is part of the coreboot 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 /* GLIU */
63 #define GLIU_SB_GLD_MSR_CAP     (MSR_SB_GLIU + 0x00)
64 #define GLIU_SB_GLD_MSR_CONF    (MSR_SB_GLIU + 0x01)
65 #define GLIU_SB_GLD_MSR_PM      (MSR_SB_GLIU + 0x04)
66
67 /* USB1 */
68 #define USB1_SB_GLD_MSR_CAP     (MSR_SB_USB1 + 0x00)
69 #define USB1_SB_GLD_MSR_CONF    (MSR_SB_USB1 + 0x01)
70 #define USB1_SB_GLD_MSR_PM      (MSR_SB_USB1 + 0x04)
71
72 /* USB2 */
73 #define USB2_SB_GLD_MSR_CAP             (MSR_SB_USB2 + 0x00)
74 #define USB2_SB_GLD_MSR_CONF            (MSR_SB_USB2 + 0x01)
75 #define USB2_UPPER_SSDEN_SET                    (1 << 3 )       /* Bit 35 */
76 #define USB2_SB_GLD_MSR_PM              (MSR_SB_USB2 + 0x04)
77 #define USB2_SB_GLD_MSR_DIAG            (MSR_SB_USB2 + 0x05)
78 #define USB2_SB_GLD_MSR_OHCI_BASE       (MSR_SB_USB2 + 0x08)
79 #define USB2_SB_GLD_MSR_EHCI_BASE       (MSR_SB_USB2 + 0x09)
80 #define USB2_SB_GLD_MSR_DEVCTL_BASE     (MSR_SB_USB2 + 0x0A)
81 #define USB2_SB_GLD_MSR_UOC_BASE        (MSR_SB_USB2 + 0x0B)    /* Option controller base */
82
83 /* ATA */
84 #define ATA_SB_GLD_MSR_CAP              (MSR_SB_ATA + 0x00)
85 #define ATA_SB_GLD_MSR_CONF             (MSR_SB_ATA + 0x01)
86 #define ATA_SB_GLD_MSR_ERR              (MSR_SB_ATA + 0x03)
87 #define ATA_SB_GLD_MSR_PM               (MSR_SB_ATA + 0x04)
88 #define ATA_SB_IDE_CFG                  (MSR_SB_ATA + 0x10)
89
90 /* AC97 */
91 #define AC97_SB_GLD_MSR_CAP             (MSR_SB_AC97 + 0x00)
92 #define AC97_SB_GLD_MSR_CONF            (MSR_SB_AC97 + 0x01)
93 #define AC97_SB_GLD_MSR_PM              (MSR_SB_AC97 + 0x04)
94
95 /* GLPCI */
96 #define GLPCI_SB_GLD_MSR_CAP            (MSR_SB_GLPCI + 0x00)
97 #define GLPCI_SB_GLD_MSR_CONF           (MSR_SB_GLPCI + 0x01)
98 #define GLPCI_SB_GLD_MSR_PM             (MSR_SB_GLPCI + 0x04)
99 #define GLPCI_SB_CTRL                   (MSR_SB_GLPCI + 0x10)
100 #define         GLPCI_CRTL_PPIDE_SET            (1 << 17)
101
102 /* GLCP */
103 #define GLCP_SB_GLD_MSR_CAP             (MSR_SB_GLCP + 0x00)
104 #define GLCP_SB_GLD_MSR_CONF            (MSR_SB_GLCP + 0x01)
105 #define GLCP_SB_GLD_MSR_PM              (MSR_SB_GLCP + 0x04)
106 #define GLCP_SB_CLKOFF                  (MSR_SB_GLCP + 0x10)
107
108 /* MDD */
109 #define MDD_SB_GLD_MSR_CAP      (MSR_SB_MDD + 0x00)
110 #define MDD_SB_GLD_MSR_CONF     (MSR_SB_MDD + 0x01)
111 #define MDD_SB_GLD_MSR_PM       (MSR_SB_MDD + 0x04)
112 #define LBAR_EN                         (0x01)
113 #define IO_MASK                         (0x1f)
114 #define MEM_MASK                        (0x0FFFFF)
115 #define MDD_LBAR_IRQ            (MSR_SB_MDD + 0x08)
116 #define MDD_LBAR_KEL1           (MSR_SB_MDD + 0x09)
117 #define MDD_LBAR_KEL2           (MSR_SB_MDD + 0x0A)
118 #define MDD_LBAR_SMB            (MSR_SB_MDD + 0x0B)
119 #define MDD_LBAR_GPIO           (MSR_SB_MDD + 0x0C)
120 #define MDD_LBAR_MFGPT          (MSR_SB_MDD + 0x0D)
121 #define MDD_LBAR_ACPI           (MSR_SB_MDD + 0x0E)
122 #define MDD_LBAR_PMS            (MSR_SB_MDD + 0x0F)
123
124 #define MDD_LBAR_FLSH0          (MSR_SB_MDD + 0x10)
125 #define MDD_LBAR_FLSH1          (MSR_SB_MDD + 0x11)
126 #define MDD_LBAR_FLSH2          (MSR_SB_MDD + 0x12)
127 #define MDD_LBAR_FLSH3          (MSR_SB_MDD + 0x13)
128 #define MDD_LEG_IO              (MSR_SB_MDD + 0x14)
129 #define MDD_PIN_OPT             (MSR_SB_MDD + 0x15)
130 #define MDD_SOFT_IRQ            (MSR_SB_MDD + 0x16)
131 #define MDD_SOFT_RESET          (MSR_SB_MDD + 0x17)
132 #define MDD_NORF_CNTRL          (MSR_SB_MDD + 0x18)
133 #define MDD_NORF_T01            (MSR_SB_MDD + 0x19)
134 #define MDD_NORF_T23            (MSR_SB_MDD + 0x1A)
135 #define MDD_NANDF_DATA          (MSR_SB_MDD + 0x1B)
136 #define MDD_NADF_CNTL           (MSR_SB_MDD + 0x1C)
137 #define MDD_AC_DMA              (MSR_SB_MDD + 0x1E)
138 #define MDD_KEL_CNTRL           (MSR_SB_MDD + 0x1F)
139
140 #define MDD_IRQM_YLOW           (MSR_SB_MDD + 0x20)
141 #define MDD_IRQM_YHIGH          (MSR_SB_MDD + 0x21)
142 #define MDD_IRQM_ZLOW           (MSR_SB_MDD + 0x22)
143 #define MDD_IRQM_ZHIGH          (MSR_SB_MDD + 0x23)
144 #define MDD_IRQM_PRIM           (MSR_SB_MDD + 0x24)
145 #define MDD_IRQM_LPC            (MSR_SB_MDD + 0x25)
146 #define MDD_IRQM_LXIRR          (MSR_SB_MDD + 0x26)
147 #define MDD_IRQM_HXIRR          (MSR_SB_MDD + 0x27)
148
149 #define MDD_MFGPT_IRQ           (MSR_SB_MDD + 0x28)
150 #define MDD_MFGPT_NR            (MSR_SB_MDD + 0x29)
151 #define MDD_MFGPT_RES0          (MSR_SB_MDD + 0x2A)
152 #define MDD_MFGPT_RES1          (MSR_SB_MDD + 0x2B)
153
154 #define MDD_FLOP_S3F2           (MSR_SB_MDD + 0x30)
155 #define MDD_FLOP_S3F7           (MSR_SB_MDD + 0x31)
156 #define MDD_FLOP_S372           (MSR_SB_MDD + 0x32)
157 #define MDD_FLOP_S377           (MSR_SB_MDD + 0x33)
158
159 #define MDD_PIC_S               (MSR_SB_MDD + 0x34)
160 #define MDD_PIT_S               (MSR_SB_MDD + 0x36)
161 #define MDD_PIT_CNTRL           (MSR_SB_MDD + 0x37)
162
163 #define MDD_UART1_MOD           (MSR_SB_MDD + 0x38)
164 #define MDD_UART1_DON           (MSR_SB_MDD + 0x39)
165 #define MDD_UART1_CONF          (MSR_SB_MDD + 0x3A)
166 #define MDD_UART2_MOD           (MSR_SB_MDD + 0x3C)
167 #define MDD_UART2_DON           (MSR_SB_MDD + 0x3D)
168 #define MDD_UART2_CONF          (MSR_SB_MDD + 0x3E)
169
170 #define MDD_DMA_MAP             (MSR_SB_MDD + 0x40)
171 #define MDD_DMA_SHAD1           (MSR_SB_MDD + 0x41)
172 #define MDD_DMA_SHAD2           (MSR_SB_MDD + 0x42)
173 #define MDD_DMA_SHAD3           (MSR_SB_MDD + 0x43)
174 #define MDD_DMA_SHAD4           (MSR_SB_MDD + 0x44)
175 #define MDD_DMA_SHAD5           (MSR_SB_MDD + 0x45)
176 #define MDD_DMA_SHAD6           (MSR_SB_MDD + 0x46)
177 #define MDD_DMA_SHAD7           (MSR_SB_MDD + 0x47)
178 #define MDD_DMA_SHAD8           (MSR_SB_MDD + 0x48)
179 #define MDD_DMA_SHAD9           (MSR_SB_MDD + 0x49)
180
181 #define MDD_LPC_EADDR           (MSR_SB_MDD + 0x4C)
182 #define MDD_LPC_ESTAT           (MSR_SB_MDD + 0x4D)
183 #define MDD_LPC_SIRQ            (MSR_SB_MDD + 0x4E)
184 #define MDD_LPC_RES             (MSR_SB_MDD + 0x4F)
185
186 #define MDD_PML_TMR             (MSR_SB_MDD + 0x50)
187 #define MDD_RTC_RAM_LO_CK       (MSR_SB_MDD + 0x54)
188 #define MDD_RTC_DOMA_IND        (MSR_SB_MDD + 0x55)
189 #define MDD_RTC_MONA_IND        (MSR_SB_MDD + 0x56)
190 #define MDD_RTC_CENTURY_OFFSET  (MSR_SB_MDD + 0x57)
191
192 /* LBUS Device Equates - */
193
194 /* SMBus */
195 #define SMB_SDA         0x00
196 #define SMB_STS         0x01
197 #define         SMB_STS_SLVSTP          (0x01 << 7)
198 #define         SMB_STS_SDAST           (0x01 << 6)
199 #define         SMB_STS_BER             (0x01 << 5)
200 #define         SMB_STS_NEGACK          (0x01 << 4)
201 #define         SMB_STS_STASTR          (0x01 << 3)
202 #define         SMB_STS_NMATCH          (0x01 << 2)
203 #define         SMB_STS_MASTER          (0x01 << 1)
204 #define         SMB_STS_XMIT            (0x01 << 0)
205
206 #define SMB_CTRL_STS    0x02
207 #define         SMB_CSTS_TGSCL          (0x01 << 5)
208 #define         SMB_CSTS_TSDA           (0x01 << 4)
209 #define         SMB_CSTS_GCMTCH         (0x01 << 3)
210 #define         SMB_CSTS_MATCH          (0x01 << 2)
211 #define         SMB_CSTS_BB             (0x01 << 1)
212 #define         SMB_CSTS_BUSY           (0x01 << 0)
213
214 #define SMB_CTRL1       0x03
215 #define         SMB_CTRL1_STASTRE       (0x01 << 7)
216 #define         SMB_CTRL1_NMINTE        (0x01 << 6)
217 #define         SMB_CTRL1_GCMEN         (0x01 << 5)
218 #define         SMB_CTRL1_ACK           (0x01 << 4)
219 #define         SMB_CTRL1_RSVD          (0x01 << 3)
220 #define         SMB_CTRL1_INTEN         (0x01 << 2)
221 #define         SMB_CTRL1_STOP          (0x01 << 1)
222 #define         SMB_CTRL1_START         (0x01 << 0)
223
224 #define SMB_ADD         0x04
225 #define         SMB_ADD_SAEN            (0x01 << 7)
226
227 #define SMB_CTRL2       0x05
228 #define         SMB_CTRL2_ENABLE        (0x01 << 0)
229
230 #define SMB_CTRL3       0x06
231
232 /* GPIO */
233 #define GPIOL_0_SET     (1 << 0)
234 #define GPIOL_1_SET     (1 << 1)
235 #define GPIOL_2_SET     (1 << 2)
236 #define GPIOL_3_SET     (1 << 3)
237 #define GPIOL_4_SET     (1 << 4)
238 #define GPIOL_5_SET     (1 << 5)
239 #define GPIOL_6_SET     (1 << 6)
240 #define GPIOL_7_SET     (1 << 7)
241 #define GPIOL_8_SET     (1 << 8)
242 #define GPIOL_9_SET     (1 << 9)
243 #define GPIOL_10_SET    (1 << 10)
244 #define GPIOL_11_SET    (1 << 11)
245 #define GPIOL_12_SET    (1 << 12)
246 #define GPIOL_13_SET    (1 << 13)
247 #define GPIOL_14_SET    (1 << 14)
248 #define GPIOL_15_SET    (1 << 15)
249
250 #define GPIOL_0_CLEAR   (1 << 16)
251 #define GPIOL_1_CLEAR   (1 << 17)
252 #define GPIOL_2_CLEAR   (1 << 18)
253 #define GPIOL_3_CLEAR   (1 << 19)
254 #define GPIOL_4_CLEAR   (1 << 20)
255 #define GPIOL_5_CLEAR   (1 << 21)
256 #define GPIOL_6_CLEAR   (1 << 22)
257 #define GPIOL_7_CLEAR   (1 << 23)
258 #define GPIOL_8_CLEAR   (1 << 24)
259 #define GPIOL_9_CLEAR   (1 << 25)
260 #define GPIOL_10_CLEAR  (1 << 26)
261 #define GPIOL_11_CLEAR  (1 << 27)
262 #define GPIOL_12_CLEAR  (1 << 28)
263 #define GPIOL_13_CLEAR  (1 << 29)
264 #define GPIOL_14_CLEAR  (1 << 30)
265 #define GPIOL_15_CLEAR  (1 << 31)
266
267 #define GPIOH_16_SET    (1 << 0)
268 #define GPIOH_17_SET    (1 << 1)
269 #define GPIOH_18_SET    (1 << 2)
270 #define GPIOH_19_SET    (1 << 3)
271 #define GPIOH_20_SET    (1 << 4)
272 #define GPIOH_21_SET    (1 << 5)
273 #define GPIOH_22_SET    (1 << 6)
274 #define GPIOH_23_SET    (1 << 7)
275 #define GPIOH_24_SET    (1 << 8)
276 #define GPIOH_25_SET    (1 << 9)
277 #define GPIOH_26_SET    (1 << 10)
278 #define GPIOH_27_SET    (1 << 11)
279 #define GPIOH_28_SET    (1 << 12)
280 #define GPIOH_29_SET    (1 << 13)
281 #define GPIOH_30_SET    (1 << 14)
282 #define GPIOH_31_SET    (1 << 15)
283
284 #define GPIOH_16_CLEAR  (1 << 16)
285 #define GPIOH_17_CLEAR  (1 << 17)
286 #define GPIOH_18_CLEAR  (1 << 18)
287 #define GPIOH_19_CLEAR  (1 << 19)
288 #define GPIOH_20_CLEAR  (1 << 20)
289 #define GPIOH_21_CLEAR  (1 << 21)
290 #define GPIOH_22_CLEAR  (1 << 22)
291 #define GPIOH_23_CLEAR  (1 << 23)
292 #define GPIOH_24_CLEAR  (1 << 24)
293 #define GPIOH_25_CLEAR  (1 << 25)
294 #define GPIOH_26_CLEAR  (1 << 26)
295 #define GPIOH_27_CLEAR  (1 << 27)
296 #define GPIOH_28_CLEAR  (1 << 28)
297 #define GPIOH_29_CLEAR  (1 << 29)
298 #define GPIOH_30_CLEAR  (1 << 30)
299 #define GPIOH_31_CLEAR  (1 << 31)
300
301 /* GPIO LOW Bank Bit Registers */
302 #define GPIOL_OUTPUT_VALUE              (0x00)
303 #define GPIOL_OUTPUT_ENABLE             (0x04)
304 #define GPIOL_OUT_OPENDRAIN             (0x08)
305 #define GPIOL_OUTPUT_INVERT_ENABLE      (0x0C)
306 #define GPIOL_OUT_AUX1_SELECT           (0x10)
307 #define GPIOL_OUT_AUX2_SELECT           (0x14)
308 #define GPIOL_PULLUP_ENABLE             (0x18)
309 #define GPIOL_PULLDOWN_ENABLE           (0x1C)
310 #define GPIOL_INPUT_ENABLE              (0x20)
311 #define GPIOL_INPUT_INVERT_ENABLE       (0x24)
312 #define GPIOL_IN_FILTER_ENABLE          (0x28)
313 #define GPIOL_IN_EVENTCOUNT_ENABLE      (0x2C)
314 #define GPIOL_READ_BACK                 (0x30)
315 #define GPIOL_IN_AUX1_SELECT            (0x34)
316 #define GPIOL_EVENTS_ENABLE             (0x38)
317 #define GPIOL_LOCK_ENABLE               (0x3C)
318 #define GPIOL_IN_POSEDGE_ENABLE         (0x40)
319 #define GPIOL_IN_NEGEDGE_ENABLE         (0x44)
320 #define GPIOL_IN_POSEDGE_STATUS         (0x48)
321 #define GPIOL_IN_NEGEDGE_STATUS         (0x4C)
322
323 /* GPIO  High Bank Bit Registers */
324 #define GPIOH_OUTPUT_VALUE              (0x80)
325 #define GPIOH_OUTPUT_ENABLE             (0x84)
326 #define GPIOH_OUT_OPENDRAIN             (0x88)
327 #define GPIOH_OUTPUT_INVERT_ENABLE      (0x8C)
328 #define GPIOH_OUT_AUX1_SELECT           (0x90)
329 #define GPIOH_OUT_AUX2_SELECT           (0x94)
330 #define GPIOH_PULLUP_ENABLE             (0x98)
331 #define GPIOH_PULLDOWN_ENABLE           (0x9C)
332 #define GPIOH_INPUT_ENABLE              (0xA0)
333 #define GPIOH_INPUT_INVERT_ENABLE       (0xA4)
334 #define GPIOH_IN_FILTER_ENABLE          (0xA8)
335 #define GPIOH_IN_EVENTCOUNT_ENABLE      (0xAC)
336 #define GPIOH_READ_BACK                 (0xB0)
337 #define GPIOH_IN_AUX1_SELECT            (0xB4)
338 #define GPIOH_EVENTS_ENABLE             (0xB8)
339 #define GPIOH_LOCK_ENABLE               (0xBC)
340 #define GPIOH_IN_POSEDGE_ENABLE         (0xC0)
341 #define GPIOH_IN_NEGEDGE_ENABLE         (0xC4)
342 #define GPIOH_IN_POSEDGE_STATUS         (0xC8)
343 #define GPIOH_IN_NEGEDGE_STATUS         (0xCC)
344
345 /* Input Conditioning Function Registers */
346 #define GPIO_00_FILTER_AMOUNT           (0x50)
347 #define GPIO_00_FILTER_COUNT            (0x52)
348 #define GPIO_00_EVENT_COUNT             (0x54)
349 #define GPIO_00_EVENTCOMPARE_VALUE      (0x56)
350 #define GPIO_01_FILTER_AMOUNT           (0x58)
351 #define GPIO_01_FILTER_COUNT            (0x5A)
352 #define GPIO_01_EVENT_COUNT             (0x5C)
353 #define GPIO_01_EVENTCOMPARE_VALUE      (0x5E)
354 #define GPIO_02_FILTER_AMOUNT           (0x60)
355 #define GPIO_02_FILTER_COUNT            (0x62)
356 #define GPIO_02_EVENT_COUNT             (0x64)
357 #define GPIO_02_EVENTCOMPARE_VALUE      (0x66)
358 #define GPIO_03_FILTER_AMOUNT           (0x68)
359 #define GPIO_03_FILTER_COUNT            (0x6A)
360 #define GPIO_03_EVENT_COUNT             (0x6C)
361 #define GPIO_03_EVENTCOMPARE_VALUE      (0x6E)
362 #define GPIO_04_FILTER_AMOUNT           (0x70)
363 #define GPIO_04_FILTER_COUNT            (0x72)
364 #define GPIO_04_EVENT_COUNT             (0x74)
365 #define GPIO_04_EVENTCOMPARE_VALUE      (0x76)
366 #define GPIO_05_FILTER_AMOUNT           (0x78)
367 #define GPIO_05_FILTER_COUNT            (0x7A)
368 #define GPIO_05_EVENT_COUNT             (0x7C)
369 #define GPIO_05_EVENTCOMPARE_VALUE      (0x7E)
370 #define GPIO_06_FILTER_AMOUNT           (0xD0)
371 #define GPIO_06_FILTER_COUNT            (0xD2)
372 #define GPIO_06_EVENT_COUNT             (0xD4)
373 #define GPIO_06_EVENTCOMPARE_VALUE      (0xD6)
374 #define GPIO_07_FILTER_AMOUNT           (0xD8)
375 #define GPIO_07_FILTER_COUNT            (0xDA)
376 #define GPIO_07_EVENT_COUNT             (0xDC)
377 #define GPIO_07_EVENTCOMPARE_VALUE      (0xDE)
378
379 /* R/W GPIO Interrupt &PME Mapper Registers */
380 #define GPIO_MAPPER_X           (0xE0)
381 #define GPIO_MAPPER_Y           (0xE4)
382 #define GPIO_MAPPER_Z           (0xE8)
383 #define GPIO_MAPPER_W           (0xEC)
384 #define GPIO_FE_SELECT_0        (0xF0)
385 #define GPIO_FE_SELECT_1        (0xF1)
386 #define GPIO_FE_SELECT_2        (0xF2)
387 #define GPIO_FE_SELECT_3        (0xF3)
388 #define GPIO_FE_SELECT_4        (0xF4)
389 #define GPIO_FE_SELECT_5        (0xF5)
390 #define GPIO_FE_SELECT_6        (0xF6)
391 #define GPIO_FE_SELECT_7        (0xF7)
392
393 /* Event Counter Decrement Registers */
394 #define GPIOL_IN_EVENT_DECREMENT        (0xF8)
395 #define GPIOH_IN_EVENT_DECREMENT        (0xFC)
396
397 /* PMC register */
398 #define PM_SSD          (0x00)
399 #define PM_SCXA         (0x04)
400 #define PM_SCYA         (0x08)
401 #define PM_SODA         (0x0C)
402 #define PM_SCLK         (0x10)
403 #define PM_SED          (0x14)
404 #define PM_SCXD         (0x18)
405 #define PM_SCYD         (0x1C)
406 #define PM_SIDD         (0x20)
407 #define PM_WKD          (0x30)
408 #define PM_WKXD         (0x34)
409 #define PM_RD           (0x38)
410 #define PM_WKXA         (0x3C)
411 #define PM_FSD          (0x40)
412 #define PM_TSD          (0x44)
413 #define PM_PSD          (0x48)
414 #define PM_NWKD         (0x4C)
415 #define PM_AWKD         (0x50)
416 #define PM_SSC          (0x54)
417
418 /* FLASH device macros */
419 #define FLASH_TYPE_NONE         0       /* No flash device installed */
420 #define FLASH_TYPE_NAND         1       /* NAND device */
421 #define FLASH_TYPE_NOR          2       /* NOR device */
422
423 #define FLASH_IF_MEM            1       /* Memory or memory-mapped I/O interface for Flash device */
424 #define FLASH_IF_IO             2       /* I/O interface for Flash device */
425
426 /* Flash Memory Mask values */
427 #define FLASH_MEM_DEFAULT       0x00000000
428 #define FLASH_MEM_4K            0xFFFFF000
429 #define FLASH_MEM_8K            0xFFFFE000
430 #define FLASH_MEM_16K           0xFFFFC000
431 #define FLASH_MEM_128K          0xFFFE0000
432 #define FLASH_MEM_512K          0xFFFC0000
433 #define FLASH_MEM_4M            0xFFC00000
434 #define FLASH_MEM_8M            0xFF800000
435 #define FLASH_MEM_16M           0xFF000000
436
437 /* Flash IO Mask values */
438 #define FLASH_IO_DEFAULT        0x00000000
439 #define FLASH_IO_16B            0x0000FFF0
440 #define FLASH_IO_32B            0x0000FFE0
441 #define FLASH_IO_64B            0x0000FFC0
442 #define FLASH_IO_128B           0x0000FF80
443 #define FLASH_IO_256B           0x0000FF00
444
445 #if !defined(__ASSEMBLER__) && !defined(__ROMCC__)
446 #if defined(__PRE_RAM__)
447 void cs5536_setup_onchipuart(int uart);
448 void cs5536_disable_internal_uart(void);
449 #else
450 void chipsetinit(void);
451 #endif
452 #endif
453
454 #endif                          /* _CS5536_H */