1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * MCF547x_8x Internal Memory Map 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 2004-2007 Freescale Semiconductor, Inc. 5*4882a593Smuzhiyun * TsiChung Liew (Tsi-Chung.Liew@freescale.com) 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #ifndef __IMMAP_547x_8x__ 11*4882a593Smuzhiyun #define __IMMAP_547x_8x__ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #define MMAP_SIU (CONFIG_SYS_MBAR + 0x00000000) 14*4882a593Smuzhiyun #define MMAP_SDRAM (CONFIG_SYS_MBAR + 0x00000100) 15*4882a593Smuzhiyun #define MMAP_XARB (CONFIG_SYS_MBAR + 0x00000240) 16*4882a593Smuzhiyun #define MMAP_FBCS (CONFIG_SYS_MBAR + 0x00000500) 17*4882a593Smuzhiyun #define MMAP_INTC0 (CONFIG_SYS_MBAR + 0x00000700) 18*4882a593Smuzhiyun #define MMAP_GPTMR (CONFIG_SYS_MBAR + 0x00000800) 19*4882a593Smuzhiyun #define MMAP_SLT0 (CONFIG_SYS_MBAR + 0x00000900) 20*4882a593Smuzhiyun #define MMAP_SLT1 (CONFIG_SYS_MBAR + 0x00000910) 21*4882a593Smuzhiyun #define MMAP_GPIO (CONFIG_SYS_MBAR + 0x00000A00) 22*4882a593Smuzhiyun #define MMAP_PCI (CONFIG_SYS_MBAR + 0x00000B00) 23*4882a593Smuzhiyun #define MMAP_PCIARB (CONFIG_SYS_MBAR + 0x00000C00) 24*4882a593Smuzhiyun #define MMAP_EXTDMA (CONFIG_SYS_MBAR + 0x00000D00) 25*4882a593Smuzhiyun #define MMAP_EPORT (CONFIG_SYS_MBAR + 0x00000F00) 26*4882a593Smuzhiyun #define MMAP_CTM (CONFIG_SYS_MBAR + 0x00007F00) 27*4882a593Smuzhiyun #define MMAP_MCDMA (CONFIG_SYS_MBAR + 0x00008000) 28*4882a593Smuzhiyun #define MMAP_SCPCI (CONFIG_SYS_MBAR + 0x00008400) 29*4882a593Smuzhiyun #define MMAP_UART0 (CONFIG_SYS_MBAR + 0x00008600) 30*4882a593Smuzhiyun #define MMAP_UART1 (CONFIG_SYS_MBAR + 0x00008700) 31*4882a593Smuzhiyun #define MMAP_UART2 (CONFIG_SYS_MBAR + 0x00008800) 32*4882a593Smuzhiyun #define MMAP_UART3 (CONFIG_SYS_MBAR + 0x00008900) 33*4882a593Smuzhiyun #define MMAP_DSPI (CONFIG_SYS_MBAR + 0x00008A00) 34*4882a593Smuzhiyun #define MMAP_I2C (CONFIG_SYS_MBAR + 0x00008F00) 35*4882a593Smuzhiyun #define MMAP_FEC0 (CONFIG_SYS_MBAR + 0x00009000) 36*4882a593Smuzhiyun #define MMAP_FEC1 (CONFIG_SYS_MBAR + 0x00009800) 37*4882a593Smuzhiyun #define MMAP_CAN0 (CONFIG_SYS_MBAR + 0x0000A000) 38*4882a593Smuzhiyun #define MMAP_CAN1 (CONFIG_SYS_MBAR + 0x0000A800) 39*4882a593Smuzhiyun #define MMAP_USBD (CONFIG_SYS_MBAR + 0x0000B000) 40*4882a593Smuzhiyun #define MMAP_SRAM (CONFIG_SYS_MBAR + 0x00010000) 41*4882a593Smuzhiyun #define MMAP_SRAMCFG (CONFIG_SYS_MBAR + 0x0001FF00) 42*4882a593Smuzhiyun #define MMAP_SEC (CONFIG_SYS_MBAR + 0x00020000) 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun #include <asm/coldfire/dspi.h> 45*4882a593Smuzhiyun #include <asm/coldfire/eport.h> 46*4882a593Smuzhiyun #include <asm/coldfire/flexbus.h> 47*4882a593Smuzhiyun #include <asm/coldfire/flexcan.h> 48*4882a593Smuzhiyun #include <asm/coldfire/intctrl.h> 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun typedef struct siu { 51*4882a593Smuzhiyun u32 mbar; /* 0x00 */ 52*4882a593Smuzhiyun u32 drv; /* 0x04 */ 53*4882a593Smuzhiyun u32 rsvd1[2]; /* 0x08 - 0x1F */ 54*4882a593Smuzhiyun u32 sbcr; /* 0x10 */ 55*4882a593Smuzhiyun u32 rsvd2[3]; /* 0x14 - 0x1F */ 56*4882a593Smuzhiyun u32 cs0cfg; /* 0x20 */ 57*4882a593Smuzhiyun u32 cs1cfg; /* 0x24 */ 58*4882a593Smuzhiyun u32 cs2cfg; /* 0x28 */ 59*4882a593Smuzhiyun u32 cs3cfg; /* 0x2C */ 60*4882a593Smuzhiyun u32 rsvd3[2]; /* 0x30 - 0x37 */ 61*4882a593Smuzhiyun u32 secsacr; /* 0x38 */ 62*4882a593Smuzhiyun u32 rsvd4[2]; /* 0x3C - 0x43 */ 63*4882a593Smuzhiyun u32 rsr; /* 0x44 */ 64*4882a593Smuzhiyun u32 rsvd5[2]; /* 0x48 - 0x4F */ 65*4882a593Smuzhiyun u32 jtagid; /* 0x50 */ 66*4882a593Smuzhiyun } siu_t; 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun typedef struct sdram { 69*4882a593Smuzhiyun u32 mode; /* 0x00 */ 70*4882a593Smuzhiyun u32 ctrl; /* 0x04 */ 71*4882a593Smuzhiyun u32 cfg1; /* 0x08 */ 72*4882a593Smuzhiyun u32 cfg2; /* 0x0c */ 73*4882a593Smuzhiyun } sdram_t; 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun typedef struct xlb_arb { 76*4882a593Smuzhiyun u32 cfg; /* 0x240 */ 77*4882a593Smuzhiyun u32 ver; /* 0x244 */ 78*4882a593Smuzhiyun u32 sr; /* 0x248 */ 79*4882a593Smuzhiyun u32 imr; /* 0x24c */ 80*4882a593Smuzhiyun u32 adrcap; /* 0x250 */ 81*4882a593Smuzhiyun u32 sigcap; /* 0x254 */ 82*4882a593Smuzhiyun u32 adrto; /* 0x258 */ 83*4882a593Smuzhiyun u32 datto; /* 0x25c */ 84*4882a593Smuzhiyun u32 busto; /* 0x260 */ 85*4882a593Smuzhiyun u32 prien; /* 0x264 */ 86*4882a593Smuzhiyun u32 pri; /* 0x268 */ 87*4882a593Smuzhiyun } xlbarb_t; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun typedef struct gptmr { 90*4882a593Smuzhiyun u8 ocpw; 91*4882a593Smuzhiyun u8 octict; 92*4882a593Smuzhiyun u8 ctrl; 93*4882a593Smuzhiyun u8 mode; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun u16 pre; /* Prescale */ 96*4882a593Smuzhiyun u16 cnt; 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun u16 pwmwidth; 99*4882a593Smuzhiyun u8 pwmop; /* Output Polarity */ 100*4882a593Smuzhiyun u8 pwmld; /* Immediate Update */ 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun u16 cap; /* Capture internal counter */ 103*4882a593Smuzhiyun u8 ovfpin; /* Ovf and Pin */ 104*4882a593Smuzhiyun u8 intr; /* Interrupts */ 105*4882a593Smuzhiyun } gptmr_t; 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun typedef struct canex_ctrl { 108*4882a593Smuzhiyun can_msg_t msg[16]; /* 0x00 Message Buffer 0-15 */ 109*4882a593Smuzhiyun } canex_t; 110*4882a593Smuzhiyun 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun typedef struct slt { 113*4882a593Smuzhiyun u32 tcnt; /* 0x00 */ 114*4882a593Smuzhiyun u32 cr; /* 0x04 */ 115*4882a593Smuzhiyun u32 cnt; /* 0x08 */ 116*4882a593Smuzhiyun u32 sr; /* 0x0C */ 117*4882a593Smuzhiyun } slt_t; 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun typedef struct gpio { 120*4882a593Smuzhiyun /* Port Output Data Registers */ 121*4882a593Smuzhiyun u8 podr_fbctl; /*0x00 */ 122*4882a593Smuzhiyun u8 podr_fbcs; /*0x01 */ 123*4882a593Smuzhiyun u8 podr_dma; /*0x02 */ 124*4882a593Smuzhiyun u8 rsvd1; /*0x03 */ 125*4882a593Smuzhiyun u8 podr_fec0h; /*0x04 */ 126*4882a593Smuzhiyun u8 podr_fec0l; /*0x05 */ 127*4882a593Smuzhiyun u8 podr_fec1h; /*0x06 */ 128*4882a593Smuzhiyun u8 podr_fec1l; /*0x07 */ 129*4882a593Smuzhiyun u8 podr_feci2c; /*0x08 */ 130*4882a593Smuzhiyun u8 podr_pcibg; /*0x09 */ 131*4882a593Smuzhiyun u8 podr_pcibr; /*0x0A */ 132*4882a593Smuzhiyun u8 rsvd2; /*0x0B */ 133*4882a593Smuzhiyun u8 podr_psc3psc2; /*0x0C */ 134*4882a593Smuzhiyun u8 podr_psc1psc0; /*0x0D */ 135*4882a593Smuzhiyun u8 podr_dspi; /*0x0E */ 136*4882a593Smuzhiyun u8 rsvd3; /*0x0F */ 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun /* Port Data Direction Registers */ 139*4882a593Smuzhiyun u8 pddr_fbctl; /*0x10 */ 140*4882a593Smuzhiyun u8 pddr_fbcs; /*0x11 */ 141*4882a593Smuzhiyun u8 pddr_dma; /*0x12 */ 142*4882a593Smuzhiyun u8 rsvd4; /*0x13 */ 143*4882a593Smuzhiyun u8 pddr_fec0h; /*0x14 */ 144*4882a593Smuzhiyun u8 pddr_fec0l; /*0x15 */ 145*4882a593Smuzhiyun u8 pddr_fec1h; /*0x16 */ 146*4882a593Smuzhiyun u8 pddr_fec1l; /*0x17 */ 147*4882a593Smuzhiyun u8 pddr_feci2c; /*0x18 */ 148*4882a593Smuzhiyun u8 pddr_pcibg; /*0x19 */ 149*4882a593Smuzhiyun u8 pddr_pcibr; /*0x1A */ 150*4882a593Smuzhiyun u8 rsvd5; /*0x1B */ 151*4882a593Smuzhiyun u8 pddr_psc3psc2; /*0x1C */ 152*4882a593Smuzhiyun u8 pddr_psc1psc0; /*0x1D */ 153*4882a593Smuzhiyun u8 pddr_dspi; /*0x1E */ 154*4882a593Smuzhiyun u8 rsvd6; /*0x1F */ 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun /* Port Pin Data/Set Data Registers */ 157*4882a593Smuzhiyun u8 ppdsdr_fbctl; /*0x20 */ 158*4882a593Smuzhiyun u8 ppdsdr_fbcs; /*0x21 */ 159*4882a593Smuzhiyun u8 ppdsdr_dma; /*0x22 */ 160*4882a593Smuzhiyun u8 rsvd7; /*0x23 */ 161*4882a593Smuzhiyun u8 ppdsdr_fec0h; /*0x24 */ 162*4882a593Smuzhiyun u8 ppdsdr_fec0l; /*0x25 */ 163*4882a593Smuzhiyun u8 ppdsdr_fec1h; /*0x26 */ 164*4882a593Smuzhiyun u8 ppdsdr_fec1l; /*0x27 */ 165*4882a593Smuzhiyun u8 ppdsdr_feci2c; /*0x28 */ 166*4882a593Smuzhiyun u8 ppdsdr_pcibg; /*0x29 */ 167*4882a593Smuzhiyun u8 ppdsdr_pcibr; /*0x2A */ 168*4882a593Smuzhiyun u8 rsvd8; /*0x2B */ 169*4882a593Smuzhiyun u8 ppdsdr_psc3psc2; /*0x2C */ 170*4882a593Smuzhiyun u8 ppdsdr_psc1psc0; /*0x2D */ 171*4882a593Smuzhiyun u8 ppdsdr_dspi; /*0x2E */ 172*4882a593Smuzhiyun u8 rsvd9; /*0x2F */ 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun /* Port Clear Output Data Registers */ 175*4882a593Smuzhiyun u8 pclrr_fbctl; /*0x30 */ 176*4882a593Smuzhiyun u8 pclrr_fbcs; /*0x31 */ 177*4882a593Smuzhiyun u8 pclrr_dma; /*0x32 */ 178*4882a593Smuzhiyun u8 rsvd10; /*0x33 */ 179*4882a593Smuzhiyun u8 pclrr_fec0h; /*0x34 */ 180*4882a593Smuzhiyun u8 pclrr_fec0l; /*0x35 */ 181*4882a593Smuzhiyun u8 pclrr_fec1h; /*0x36 */ 182*4882a593Smuzhiyun u8 pclrr_fec1l; /*0x37 */ 183*4882a593Smuzhiyun u8 pclrr_feci2c; /*0x38 */ 184*4882a593Smuzhiyun u8 pclrr_pcibg; /*0x39 */ 185*4882a593Smuzhiyun u8 pclrr_pcibr; /*0x3A */ 186*4882a593Smuzhiyun u8 rsvd11; /*0x3B */ 187*4882a593Smuzhiyun u8 pclrr_psc3psc2; /*0x3C */ 188*4882a593Smuzhiyun u8 pclrr_psc1psc0; /*0x3D */ 189*4882a593Smuzhiyun u8 pclrr_dspi; /*0x3E */ 190*4882a593Smuzhiyun u8 rsvd12; /*0x3F */ 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun /* Pin Assignment Registers */ 193*4882a593Smuzhiyun u16 par_fbctl; /*0x40 */ 194*4882a593Smuzhiyun u8 par_fbcs; /*0x42 */ 195*4882a593Smuzhiyun u8 par_dma; /*0x43 */ 196*4882a593Smuzhiyun u16 par_feci2cirq; /*0x44 */ 197*4882a593Smuzhiyun u16 rsvd13; /*0x46 */ 198*4882a593Smuzhiyun u16 par_pcibg; /*0x48 */ 199*4882a593Smuzhiyun u16 par_pcibr; /*0x4A */ 200*4882a593Smuzhiyun u8 par_psc3; /*0x4C */ 201*4882a593Smuzhiyun u8 par_psc2; /*0x4D */ 202*4882a593Smuzhiyun u8 par_psc1; /*0x4E */ 203*4882a593Smuzhiyun u8 par_psc0; /*0x4F */ 204*4882a593Smuzhiyun u16 par_dspi; /*0x50 */ 205*4882a593Smuzhiyun u8 par_timer; /*0x52 */ 206*4882a593Smuzhiyun u8 rsvd14; /*0x53 */ 207*4882a593Smuzhiyun } gpio_t; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun typedef struct pci { 210*4882a593Smuzhiyun u32 idr; /* 0x00 Device Id / Vendor Id */ 211*4882a593Smuzhiyun u32 scr; /* 0x04 Status / command */ 212*4882a593Smuzhiyun u32 ccrir; /* 0x08 Class Code / Revision Id */ 213*4882a593Smuzhiyun u32 cr1; /* 0x0c Configuration 1 */ 214*4882a593Smuzhiyun u32 bar0; /* 0x10 Base address register 0 */ 215*4882a593Smuzhiyun u32 bar1; /* 0x14 Base address register 1 */ 216*4882a593Smuzhiyun u32 bar2; /* 0x18 NA */ 217*4882a593Smuzhiyun u32 bar3; /* 0x1c NA */ 218*4882a593Smuzhiyun u32 bar4; /* 0x20 NA */ 219*4882a593Smuzhiyun u32 bar5; /* 0x24 NA */ 220*4882a593Smuzhiyun u32 ccpr; /* 0x28 Cardbus CIS Pointer */ 221*4882a593Smuzhiyun u32 sid; /* 0x2c Subsystem ID / Subsystem Vendor ID */ 222*4882a593Smuzhiyun u32 erbar; /* 0x30 Expansion ROM Base Address */ 223*4882a593Smuzhiyun u32 cpr; /* 0x34 Capabilities Pointer */ 224*4882a593Smuzhiyun u32 rsvd1; /* 0x38 */ 225*4882a593Smuzhiyun u32 cr2; /* 0x3c Configuration 2 */ 226*4882a593Smuzhiyun u32 rsvd2[8]; /* 0x40 - 0x5f */ 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun /* General control / status registers */ 229*4882a593Smuzhiyun u32 gscr; /* 0x60 Global Status / Control */ 230*4882a593Smuzhiyun u32 tbatr0a; /* 0x64 Target Base Adr Translation 0 */ 231*4882a593Smuzhiyun u32 tbatr1a; /* 0x68 Target Base Adr Translation 1 */ 232*4882a593Smuzhiyun u32 tcr1; /* 0x6c Target Control 1 Register */ 233*4882a593Smuzhiyun u32 iw0btar; /* 0x70 Initiator Win 0 Base/Translation adr */ 234*4882a593Smuzhiyun u32 iw1btar; /* 0x74 Initiator Win 1 Base/Translation adr */ 235*4882a593Smuzhiyun u32 iw2btar; /* 0x78 NA */ 236*4882a593Smuzhiyun u32 rsvd3; /* 0x7c */ 237*4882a593Smuzhiyun u32 iwcr; /* 0x80 Initiator Window Configuration */ 238*4882a593Smuzhiyun u32 icr; /* 0x84 Initiator Control */ 239*4882a593Smuzhiyun u32 isr; /* 0x88 Initiator Status */ 240*4882a593Smuzhiyun u32 tcr2; /* 0x8c NA */ 241*4882a593Smuzhiyun u32 tbatr0; /* 0x90 NA */ 242*4882a593Smuzhiyun u32 tbatr1; /* 0x94 NA */ 243*4882a593Smuzhiyun u32 tbatr2; /* 0x98 NA */ 244*4882a593Smuzhiyun u32 tbatr3; /* 0x9c NA */ 245*4882a593Smuzhiyun u32 tbatr4; /* 0xa0 NA */ 246*4882a593Smuzhiyun u32 tbatr5; /* 0xa4 NA */ 247*4882a593Smuzhiyun u32 intr; /* 0xa8 NA */ 248*4882a593Smuzhiyun u32 rsvd4[19]; /* 0xac - 0xf7 */ 249*4882a593Smuzhiyun u32 car; /* 0xf8 Configuration Address */ 250*4882a593Smuzhiyun } pci_t; 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun typedef struct pci_arbiter { 253*4882a593Smuzhiyun /* Pci Arbiter Registers */ 254*4882a593Smuzhiyun union { 255*4882a593Smuzhiyun u32 acr; /* Arbiter Control */ 256*4882a593Smuzhiyun u32 asr; /* Arbiter Status */ 257*4882a593Smuzhiyun }; 258*4882a593Smuzhiyun } pciarb_t; 259*4882a593Smuzhiyun #endif /* __IMMAP_547x_8x__ */ 260