2 * Matt Waddel Matt.Waddel@freescale.com
4 * Copyright Freescale Semiconductor, Inc. 2007
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version.
12 #ifndef __MCF5445X_FBCS_H__
13 #define __MCF5445X_FBCS_H__
15 /*********************************************************************
17 * FlexBus Chip Selects (FBCS)
19 *********************************************************************/
21 /* Register read/write macros */
22 #define MCF_FBCS_CSAR0 MCF_REG32(0xFC008000) /* Chip-select Addr Register */
23 #define MCF_FBCS_CSMR0 MCF_REG32(0xFC008004) /* Chip-select Mask Register */
24 #define MCF_FBCS_CSCR0 MCF_REG32(0xFC008008) /* Chip-select Cntl Register */
25 #define MCF_FBCS_CSAR1 MCF_REG32(0xFC00800C) /* Chip-select Addr Register */
26 #define MCF_FBCS_CSMR1 MCF_REG32(0xFC008010) /* Chip-select Mask Register */
27 #define MCF_FBCS_CSCR1 MCF_REG32(0xFC008014) /* Chip-select Cntl Register */
28 #define MCF_FBCS_CSAR2 MCF_REG32(0xFC008018) /* Chip-select Addr Register */
29 #define MCF_FBCS_CSMR2 MCF_REG32(0xFC00801C) /* Chip-select Mask Register */
30 #define MCF_FBCS_CSCR2 MCF_REG32(0xFC008020) /* Chip-select Cntl Register */
31 #define MCF_FBCS_CSAR3 MCF_REG32(0xFC008024) /* Chip-select Addr Register */
32 #define MCF_FBCS_CSMR3 MCF_REG32(0xFC008028) /* Chip-select Mask Register */
33 #define MCF_FBCS_CSCR3 MCF_REG32(0xFC00802C) /* Chip-select Cntl Register */
35 /* Parameterized register read/write macros for multiple registers */
36 #define MCF_FBCS_CSAR(x) MCF_REG32(0xFC008000+((x)*0x00C)) /* Chip-select Addr Register */
37 #define MCF_FBCS_CSMR(x) MCF_REG32(0xFC008004+((x)*0x00C)) /* Chip-select Mask Register */
38 #define MCF_FBCS_CSCR(x) MCF_REG32(0xFC008008+((x)*0x00C)) /* Chip-select Cntl Register */
40 /* Bit definitions and macros for CSAR group */
41 #define MCF_FBCS_CSAR_BA(x) ((x)&0xFFFF0000)
43 /* Bit definitions and macros for CSAR0 */
44 #define MCF_FBCS_CSAR0_BA(x) ((x)&0xFFFF0000)
46 /* Bit definitions and macros for CSMR group */
47 #define MCF_FBCS_CSMR_V (0x00000001) /* Valid bit */
48 #define MCF_FBCS_CSMR_WP (0x00000100) /* Write protect */
49 #define MCF_FBCS_CSMR_BAM(x) (((x)&0x0000FFFF)<<16) /* Base addr mask */
50 #define MCF_FBCS_CSMR_BAM_4G (0xFFFF0000)
51 #define MCF_FBCS_CSMR_BAM_2G (0x7FFF0000)
52 #define MCF_FBCS_CSMR_BAM_1G (0x3FFF0000)
53 #define MCF_FBCS_CSMR_BAM_1024M (0x3FFF0000)
54 #define MCF_FBCS_CSMR_BAM_512M (0x1FFF0000)
55 #define MCF_FBCS_CSMR_BAM_256M (0x0FFF0000)
56 #define MCF_FBCS_CSMR_BAM_128M (0x07FF0000)
57 #define MCF_FBCS_CSMR_BAM_64M (0x03FF0000)
58 #define MCF_FBCS_CSMR_BAM_32M (0x01FF0000)
59 #define MCF_FBCS_CSMR_BAM_16M (0x00FF0000)
60 #define MCF_FBCS_CSMR_BAM_8M (0x007F0000)
61 #define MCF_FBCS_CSMR_BAM_4M (0x003F0000)
62 #define MCF_FBCS_CSMR_BAM_2M (0x001F0000)
63 #define MCF_FBCS_CSMR_BAM_1M (0x000F0000)
64 #define MCF_FBCS_CSMR_BAM_1024K (0x000F0000)
65 #define MCF_FBCS_CSMR_BAM_512K (0x00070000)
66 #define MCF_FBCS_CSMR_BAM_256K (0x00030000)
67 #define MCF_FBCS_CSMR_BAM_128K (0x00010000)
68 #define MCF_FBCS_CSMR_BAM_64K (0x00000000)
70 /* Bit definitions and macros for CSMR0 */
71 #define MCF_FBCS_CSMR0_V (0x00000001) /* Valid bit */
72 #define MCF_FBCS_CSMR0_WP (0x00000100) /* Write protect */
73 #define MCF_FBCS_CSMR0_BAM(x) (((x)&0x0000FFFF)<<16) /* Base addr mask */
74 #define MCF_FBCS_CSMR0_BAM_4G (0xFFFF0000)
75 #define MCF_FBCS_CSMR0_BAM_2G (0x7FFF0000)
76 #define MCF_FBCS_CSMR0_BAM_1G (0x3FFF0000)
77 #define MCF_FBCS_CSMR0_BAM_1024M (0x3FFF0000)
78 #define MCF_FBCS_CSMR0_BAM_512M (0x1FFF0000)
79 #define MCF_FBCS_CSMR0_BAM_256M (0x0FFF0000)
80 #define MCF_FBCS_CSMR0_BAM_128M (0x07FF0000)
81 #define MCF_FBCS_CSMR0_BAM_64M (0x03FF0000)
82 #define MCF_FBCS_CSMR0_BAM_32M (0x01FF0000)
83 #define MCF_FBCS_CSMR0_BAM_16M (0x00FF0000)
84 #define MCF_FBCS_CSMR0_BAM_8M (0x007F0000)
85 #define MCF_FBCS_CSMR0_BAM_4M (0x003F0000)
86 #define MCF_FBCS_CSMR0_BAM_2M (0x001F0000)
87 #define MCF_FBCS_CSMR0_BAM_1M (0x000F0000)
88 #define MCF_FBCS_CSMR0_BAM_1024K (0x000F0000)
89 #define MCF_FBCS_CSMR0_BAM_512K (0x00070000)
90 #define MCF_FBCS_CSMR0_BAM_256K (0x00030000)
91 #define MCF_FBCS_CSMR0_BAM_128K (0x00010000)
92 #define MCF_FBCS_CSMR0_BAM_64K (0x00000000)
94 /* Bit definitions and macros for CSCR group */
95 #define MCF_FBCS_CSCR_BSTW (0x00000008) /* Burst-write enable */
96 #define MCF_FBCS_CSCR_BSTR (0x00000010) /* Burst-read enable */
97 #define MCF_FBCS_CSCR_BEM (0x00000020) /* Byte-enable mode */
98 #define MCF_FBCS_CSCR_PS(x) (((x)&0x00000003)<<6) /* Port size */
99 #define MCF_FBCS_CSCR_AA (0x00000100) /* Auto-acknowledge */
100 #define MCF_FBCS_CSCR_WS(x) (((x)&0x0000003F)<<10) /* Wait states */
101 #define MCF_FBCS_CSCR_WRAH(x) (((x)&0x00000003)<<16) /* Write address hold or deselect */
102 #define MCF_FBCS_CSCR_RDAH(x) (((x)&0x00000003)<<18) /* Read address hold or deselect */
103 #define MCF_FBCS_CSCR_ASET(x) (((x)&0x00000003)<<20) /* Address setup */
104 #define MCF_FBCS_CSCR_SWSEN (0x00800000) /* Secondary wait state enable */
105 #define MCF_FBCS_CSCR_SWS(x) (((x)&0x0000003F)<<26) /* Secondary wait states */
106 #define MCF_FBCS_CSCR_PS_8 (0x00000040)
107 #define MCF_FBCS_CSCR_PS_16 (0x00000080)
108 #define MCF_FBCS_CSCR_PS_32 (0x00000000)
110 /* Bit definitions and macros for CSCR0 */
111 #define MCF_FBCS_CSCR0_BSTW (0x00000008) /* Burst-write enable */
112 #define MCF_FBCS_CSCR0_BSTR (0x00000010) /* Burst-read enable */
113 #define MCF_FBCS_CSCR0_BEM (0x00000020) /* Byte-enable mode */
114 #define MCF_FBCS_CSCR0_PS(x) (((x)&0x00000003)<<6) /* Port size */
115 #define MCF_FBCS_CSCR0_AA (0x00000100) /* Auto-acknowledge */
116 #define MCF_FBCS_CSCR0_WS(x) (((x)&0x0000003F)<<10) /* Wait states */
117 #define MCF_FBCS_CSCR0_WRAH(x) (((x)&0x00000003)<<16) /* Write address hold or deselect */
118 #define MCF_FBCS_CSCR0_RDAH(x) (((x)&0x00000003)<<18) /* Read address hold or deselect */
119 #define MCF_FBCS_CSCR0_ASET(x) (((x)&0x00000003)<<20) /* Address setup */
120 #define MCF_FBCS_CSCR0_SWSEN (0x00800000) /* Secondary wait state enable */
121 #define MCF_FBCS_CSCR0_SWS(x) (((x)&0x0000003F)<<26) /* Secondary wait states */
122 #define MCF_FBCS_CSCR0_PS_8 (0x00000040)
123 #define MCF_FBCS_CSCR0_PS_16 (0x00000080)
124 #define MCF_FBCS_CSCR0_PS_32 (0x00000000)
126 /* Bit definitions and macros for CSMR1 */
127 #define MCF_FBCS_CSMR1_V (0x00000001) /* Valid bit */
128 #define MCF_FBCS_CSMR1_WP (0x00000100) /* Write protect */
129 #define MCF_FBCS_CSMR1_BAM(x) (((x)&0x0000FFFF)<<16) /* Base address mask */
131 /* Bit definitions and macros for CSCR1 */
132 #define MCF_FBCS_CSCR1_BSTW (0x00000008) /* Burst-write enable */
133 #define MCF_FBCS_CSCR1_BSTR (0x00000010) /* Burst-read enable */
134 #define MCF_FBCS_CSCR1_BEM (0x00000020) /* Byte-enable mode */
135 #define MCF_FBCS_CSCR1_PS(x) (((x)&0x00000003)<<6) /* Port size */
136 #define MCF_FBCS_CSCR1_AA (0x00000100) /* Auto-acknowledge */
137 #define MCF_FBCS_CSCR1_WS(x) (((x)&0x0000003F)<<10) /* Wait states */
138 #define MCF_FBCS_CSCR1_WRAH(x) (((x)&0x00000003)<<16) /* Write address hold or deselect */
139 #define MCF_FBCS_CSCR1_RDAH(x) (((x)&0x00000003)<<18) /* Read address hold or deselect */
140 #define MCF_FBCS_CSCR1_ASET(x) (((x)&0x00000003)<<20) /* Address setup */
141 #define MCF_FBCS_CSCR1_SWSEN (0x00800000) /* Secondary wait state enable */
142 #define MCF_FBCS_CSCR1_SWS(x) (((x)&0x0000003F)<<26) /* Secondary wait states */
144 /* Bit definitions and macros for CSMR2 */
145 #define MCF_FBCS_CSMR2_V (0x00000001) /* Valid bit */
146 #define MCF_FBCS_CSMR2_WP (0x00000100) /* Write protect */
147 #define MCF_FBCS_CSMR2_BAM(x) (((x)&0x0000FFFF)<<16) /* Base address mask */
149 /* Bit definitions and macros for CSCR2 */
150 #define MCF_FBCS_CSCR2_BSTW (0x00000008) /* Burst-write enable */
151 #define MCF_FBCS_CSCR2_BSTR (0x00000010) /* Burst-read enable */
152 #define MCF_FBCS_CSCR2_BEM (0x00000020) /* Byte-enable mode */
153 #define MCF_FBCS_CSCR2_PS(x) (((x)&0x00000003)<<6) /* Port size */
154 #define MCF_FBCS_CSCR2_AA (0x00000100) /* Auto-acknowledge */
155 #define MCF_FBCS_CSCR2_WS(x) (((x)&0x0000003F)<<10) /* Wait states */
156 #define MCF_FBCS_CSCR2_WRAH(x) (((x)&0x00000003)<<16) /* Write address hold or deselect */
157 #define MCF_FBCS_CSCR2_RDAH(x) (((x)&0x00000003)<<18) /* Read address hold or deselect */
158 #define MCF_FBCS_CSCR2_ASET(x) (((x)&0x00000003)<<20) /* Address setup */
159 #define MCF_FBCS_CSCR2_SWSEN (0x00800000) /* Secondary wait state enable */
160 #define MCF_FBCS_CSCR2_SWS(x) (((x)&0x0000003F)<<26) /* Secondary wait states */
162 /* Bit definitions and macros for CSMR3 */
163 #define MCF_FBCS_CSMR3_V (0x00000001) /* Valid bit */
164 #define MCF_FBCS_CSMR3_WP (0x00000100) /* Write protect */
165 #define MCF_FBCS_CSMR3_BAM(x) (((x)&0x0000FFFF)<<16) /* Base address mask */
167 /* Bit definitions and macros for CSCR3 */
168 #define MCF_FBCS_CSCR3_BSTW (0x00000008) /* Burst-write enable */
169 #define MCF_FBCS_CSCR3_BSTR (0x00000010) /* Burst-read enable */
170 #define MCF_FBCS_CSCR3_BEM (0x00000020) /* Byte-enable mode */
171 #define MCF_FBCS_CSCR3_PS(x) (((x)&0x00000003)<<6) /* Port size */
172 #define MCF_FBCS_CSCR3_AA (0x00000100) /* Auto-acknowledge */
173 #define MCF_FBCS_CSCR3_WS(x) (((x)&0x0000003F)<<10) /* Wait states */
174 #define MCF_FBCS_CSCR3_WRAH(x) (((x)&0x00000003)<<16) /* Write address hold or deselect */
175 #define MCF_FBCS_CSCR3_RDAH(x) (((x)&0x00000003)<<18) /* Read address hold or deselect */
176 #define MCF_FBCS_CSCR3_ASET(x) (((x)&0x00000003)<<20) /* Address setup */
177 #define MCF_FBCS_CSCR3_SWSEN (0x00800000) /* Secondary wait state enable */
178 #define MCF_FBCS_CSCR3_SWS(x) (((x)&0x0000003F)<<26) /* Secondary wait states */
180 /********************************************************************/
182 #endif /* __MCF5445X_FBCS_H__ */