xref: /OK3568_Linux_fs/u-boot/arch/m68k/include/asm/m5275.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * MCF5275 Internal Memory Map
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * Copyright (C) 2003-2004, Greg Ungerer (gerg@snapgear.com)
5*4882a593Smuzhiyun  * Copyright (C) 2004-2008 Arthur Shipkowski (art@videon-central.com)
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
8*4882a593Smuzhiyun  */
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #ifndef	__M5275_H__
11*4882a593Smuzhiyun #define	__M5275_H__
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun /*
14*4882a593Smuzhiyun  * Define the 5275 SIM register set addresses. These are similar,
15*4882a593Smuzhiyun  * but not quite identical to the 5282 registers and offsets.
16*4882a593Smuzhiyun  */
17*4882a593Smuzhiyun #define MCF_GPIO_PAR_UART	0x10007c
18*4882a593Smuzhiyun #define UART0_ENABLE_MASK	0x000f
19*4882a593Smuzhiyun #define UART1_ENABLE_MASK	0x00f0
20*4882a593Smuzhiyun #define UART2_ENABLE_MASK	0x3f00
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun #define MCF_GPIO_PAR_FECI2C	0x100082
23*4882a593Smuzhiyun #define PAR_SDA_ENABLE_MASK	0x0003
24*4882a593Smuzhiyun #define PAR_SCL_ENABLE_MASK	0x000c
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun #define MCFSIM_WRRR		0x140000
27*4882a593Smuzhiyun #define MCFSIM_SDCR		0x40
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun /*********************************************************************
30*4882a593Smuzhiyun  * SDRAM Controller (SDRAMC)
31*4882a593Smuzhiyun  *********************************************************************/
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun /* Register read/write macros */
34*4882a593Smuzhiyun #define MCF_SDRAMC_SDMR		(*(vuint32*)(void*)(&__IPSBAR[0x000040]))
35*4882a593Smuzhiyun #define MCF_SDRAMC_SDCR		(*(vuint32*)(void*)(&__IPSBAR[0x000044]))
36*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG1	(*(vuint32*)(void*)(&__IPSBAR[0x000048]))
37*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG2	(*(vuint32*)(void*)(&__IPSBAR[0x00004C]))
38*4882a593Smuzhiyun #define MCF_SDRAMC_SDBAR0	(*(vuint32*)(void*)(&__IPSBAR[0x000050]))
39*4882a593Smuzhiyun #define MCF_SDRAMC_SDBAR1	(*(vuint32*)(void*)(&__IPSBAR[0x000058]))
40*4882a593Smuzhiyun #define MCF_SDRAMC_SDMR0	(*(vuint32*)(void*)(&__IPSBAR[0x000054]))
41*4882a593Smuzhiyun #define MCF_SDRAMC_SDMR1	(*(vuint32*)(void*)(&__IPSBAR[0x00005C]))
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun /* Bit definitions and macros for MCF_SDRAMC_SDMR */
44*4882a593Smuzhiyun #define MCF_SDRAMC_SDMR_CMD		(0x00010000)
45*4882a593Smuzhiyun #define MCF_SDRAMC_SDMR_AD(x)		(((x)&0x00000FFF)<<18)
46*4882a593Smuzhiyun #define MCF_SDRAMC_SDMR_BNKAD(x)	(((x)&0x00000003)<<30)
47*4882a593Smuzhiyun #define MCF_SDRAMC_SDMR_BNKAD_LMR	(0x00000000)
48*4882a593Smuzhiyun #define MCF_SDRAMC_SDMR_BNKAD_LEMR	(0x40000000)
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun /* Bit definitions and macros for MCF_SDRAMC_SDCR */
51*4882a593Smuzhiyun #define MCF_SDRAMC_SDCR_IPALL		(0x00000002)
52*4882a593Smuzhiyun #define MCF_SDRAMC_SDCR_IREF		(0x00000004)
53*4882a593Smuzhiyun #define MCF_SDRAMC_SDCR_DQS_OE(x)	(((x)&0x00000003)<<10)
54*4882a593Smuzhiyun #define MCF_SDRAMC_SDCR_DQP_BP		(0x00008000)
55*4882a593Smuzhiyun #define MCF_SDRAMC_SDCR_RCNT(x)		(((x)&0x0000003F)<<16)
56*4882a593Smuzhiyun #define MCF_SDRAMC_SDCR_MUX(x)		(((x)&0x00000003)<<24)
57*4882a593Smuzhiyun #define MCF_SDRAMC_SDCR_REF		(0x10000000)
58*4882a593Smuzhiyun #define MCF_SDRAMC_SDCR_CKE		(0x40000000)
59*4882a593Smuzhiyun #define MCF_SDRAMC_SDCR_MODE_EN		(0x80000000)
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun /* Bit definitions and macros for MCF_SDRAMC_SDCFG1 */
62*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG1_WTLAT(x)	(((x)&0x00000007)<<4)
63*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG1_REF2ACT(x)	(((x)&0x0000000F)<<8)
64*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG1_PRE2ACT(x)	(((x)&0x00000007)<<12)
65*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG1_ACT2RW(x)	(((x)&0x00000007)<<16)
66*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG1_RDLAT(x)	(((x)&0x0000000F)<<20)
67*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG1_SWT2RD(x)	(((x)&0x00000007)<<24)
68*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG1_SRD2RW(x)	(((x)&0x0000000F)<<28)
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun /* Bit definitions and macros for MCF_SDRAMC_SDCFG2 */
71*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG2_BL(x)		(((x)&0x0000000F)<<16)
72*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG2_BRD2WT(x)	(((x)&0x0000000F)<<20)
73*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG2_BWT2RW(x)	(((x)&0x0000000F)<<24)
74*4882a593Smuzhiyun #define MCF_SDRAMC_SDCFG2_BRD2PRE(x)	(((x)&0x0000000F)<<28)
75*4882a593Smuzhiyun 
76*4882a593Smuzhiyun /* Bit definitions and macros for MCF_SDRAMC_SDBARn */
77*4882a593Smuzhiyun #define MCF_SDRAMC_SDBARn_BASE(x)	(((x)&0x00003FFF)<<18)
78*4882a593Smuzhiyun #define MCF_SDRAMC_SDBARn_BA(x)		((x)&0xFFFF0000)
79*4882a593Smuzhiyun 
80*4882a593Smuzhiyun /* Bit definitions and macros for MCF_SDRAMC_SDMRn */
81*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_V		(0x00000001)
82*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_WP		(0x00000080)
83*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_MASK(x)	(((x)&0x00003FFF)<<18)
84*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_4G		(0xFFFF0000)
85*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_2G		(0x7FFF0000)
86*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_1G		(0x3FFF0000)
87*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_1024M	(0x3FFF0000)
88*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_512M	(0x1FFF0000)
89*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_256M	(0x0FFF0000)
90*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_128M	(0x07FF0000)
91*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_64M	(0x03FF0000)
92*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_32M	(0x01FF0000)
93*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_16M	(0x00FF0000)
94*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_8M		(0x007F0000)
95*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_4M		(0x003F0000)
96*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_2M		(0x001F0000)
97*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_1M		(0x000F0000)
98*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_1024K	(0x000F0000)
99*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_512K	(0x00070000)
100*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_256K	(0x00030000)
101*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_128K	(0x00010000)
102*4882a593Smuzhiyun #define MCF_SDRAMC_SDMRn_BAM_64K	(0x00000000)
103*4882a593Smuzhiyun 
104*4882a593Smuzhiyun /*********************************************************************
105*4882a593Smuzhiyun  * Interrupt Controller (INTC)
106*4882a593Smuzhiyun  ********************************************************************/
107*4882a593Smuzhiyun #define INT0_LO_RSVD0		(0)
108*4882a593Smuzhiyun #define INT0_LO_EPORT1		(1)
109*4882a593Smuzhiyun #define INT0_LO_EPORT2		(2)
110*4882a593Smuzhiyun #define INT0_LO_EPORT3		(3)
111*4882a593Smuzhiyun #define INT0_LO_EPORT4		(4)
112*4882a593Smuzhiyun #define INT0_LO_EPORT5		(5)
113*4882a593Smuzhiyun #define INT0_LO_EPORT6		(6)
114*4882a593Smuzhiyun #define INT0_LO_EPORT7		(7)
115*4882a593Smuzhiyun #define INT0_LO_SCM		(8)
116*4882a593Smuzhiyun #define INT0_LO_DMA0		(9)
117*4882a593Smuzhiyun #define INT0_LO_DMA1		(10)
118*4882a593Smuzhiyun #define INT0_LO_DMA2		(11)
119*4882a593Smuzhiyun #define INT0_LO_DMA3		(12)
120*4882a593Smuzhiyun #define INT0_LO_UART0		(13)
121*4882a593Smuzhiyun #define INT0_LO_UART1		(14)
122*4882a593Smuzhiyun #define INT0_LO_UART2		(15)
123*4882a593Smuzhiyun #define INT0_LO_RSVD1		(16)
124*4882a593Smuzhiyun #define INT0_LO_I2C		(17)
125*4882a593Smuzhiyun #define INT0_LO_QSPI		(18)
126*4882a593Smuzhiyun #define INT0_LO_DTMR0		(19)
127*4882a593Smuzhiyun #define INT0_LO_DTMR1		(20)
128*4882a593Smuzhiyun #define INT0_LO_DTMR2		(21)
129*4882a593Smuzhiyun #define INT0_LO_DTMR3		(22)
130*4882a593Smuzhiyun #define INT0_LO_FEC0_TXF	(23)
131*4882a593Smuzhiyun #define INT0_LO_FEC0_TXB	(24)
132*4882a593Smuzhiyun #define INT0_LO_FEC0_UN		(25)
133*4882a593Smuzhiyun #define INT0_LO_FEC0_RL		(26)
134*4882a593Smuzhiyun #define INT0_LO_FEC0_RXF	(27)
135*4882a593Smuzhiyun #define INT0_LO_FEC0_RXB	(28)
136*4882a593Smuzhiyun #define INT0_LO_FEC0_MII	(29)
137*4882a593Smuzhiyun #define INT0_LO_FEC0_LC		(30)
138*4882a593Smuzhiyun #define INT0_LO_FEC0_HBERR	(31)
139*4882a593Smuzhiyun #define INT0_HI_FEC0_GRA	(32)
140*4882a593Smuzhiyun #define INT0_HI_FEC0_EBERR	(33)
141*4882a593Smuzhiyun #define INT0_HI_FEC0_BABT	(34)
142*4882a593Smuzhiyun #define INT0_HI_FEC0_BABR	(35)
143*4882a593Smuzhiyun #define INT0_HI_PIT0		(36)
144*4882a593Smuzhiyun #define INT0_HI_PIT1		(37)
145*4882a593Smuzhiyun #define INT0_HI_PIT2		(38)
146*4882a593Smuzhiyun #define INT0_HI_PIT3		(39)
147*4882a593Smuzhiyun #define INT0_HI_RNG		(40)
148*4882a593Smuzhiyun #define INT0_HI_SKHA		(41)
149*4882a593Smuzhiyun #define INT0_HI_MDHA		(42)
150*4882a593Smuzhiyun #define INT0_HI_USB		(43)
151*4882a593Smuzhiyun #define INT0_HI_USB_EP0		(44)
152*4882a593Smuzhiyun #define INT0_HI_USB_EP1		(45)
153*4882a593Smuzhiyun #define INT0_HI_USB_EP2		(46)
154*4882a593Smuzhiyun #define INT0_HI_USB_EP3		(47)
155*4882a593Smuzhiyun /* 48-63 Reserved */
156*4882a593Smuzhiyun 
157*4882a593Smuzhiyun /* 0-22 Reserved */
158*4882a593Smuzhiyun #define INT1_LO_FEC1_TXF	(23)
159*4882a593Smuzhiyun #define INT1_LO_FEC1_TXB	(24)
160*4882a593Smuzhiyun #define INT1_LO_FEC1_UN		(25)
161*4882a593Smuzhiyun #define INT1_LO_FEC1_RL		(26)
162*4882a593Smuzhiyun #define INT1_LO_FEC1_RXF	(27)
163*4882a593Smuzhiyun #define INT1_LO_FEC1_RXB	(28)
164*4882a593Smuzhiyun #define INT1_LO_FEC1_MII	(29)
165*4882a593Smuzhiyun #define INT1_LO_FEC1_LC		(30)
166*4882a593Smuzhiyun #define INT1_LO_FEC1_HBERR	(31)
167*4882a593Smuzhiyun #define INT1_HI_FEC1_GRA	(32)
168*4882a593Smuzhiyun #define INT1_HI_FEC1_EBERR	(33)
169*4882a593Smuzhiyun #define INT1_HI_FEC1_BABT	(34)
170*4882a593Smuzhiyun #define INT1_HI_FEC1_BABR	(35)
171*4882a593Smuzhiyun /* 36-63 Reserved */
172*4882a593Smuzhiyun 
173*4882a593Smuzhiyun /* Bit definitions and macros for RCR */
174*4882a593Smuzhiyun #define RCM_RCR_FRCRSTOUT	(0x40)
175*4882a593Smuzhiyun #define RCM_RCR_SOFTRST		(0x80)
176*4882a593Smuzhiyun 
177*4882a593Smuzhiyun #define FMPLL_SYNSR_LOCK	(0x00000008)
178*4882a593Smuzhiyun 
179*4882a593Smuzhiyun #endif	/* __M5275_H__ */
180