1819833afSPeter Tyser /* 2819833afSPeter Tyser * MCF547x_8x Internal Memory Map 3819833afSPeter Tyser * 4819833afSPeter Tyser * Copyright (C) 2004-2007 Freescale Semiconductor, Inc. 5819833afSPeter Tyser * TsiChung Liew (Tsi-Chung.Liew@freescale.com) 6819833afSPeter Tyser * 7*1a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 8819833afSPeter Tyser */ 9819833afSPeter Tyser 10819833afSPeter Tyser #ifndef __IMMAP_547x_8x__ 11819833afSPeter Tyser #define __IMMAP_547x_8x__ 12819833afSPeter Tyser 13819833afSPeter Tyser #define MMAP_SIU (CONFIG_SYS_MBAR + 0x00000000) 14819833afSPeter Tyser #define MMAP_SDRAM (CONFIG_SYS_MBAR + 0x00000100) 15819833afSPeter Tyser #define MMAP_XARB (CONFIG_SYS_MBAR + 0x00000240) 16819833afSPeter Tyser #define MMAP_FBCS (CONFIG_SYS_MBAR + 0x00000500) 17819833afSPeter Tyser #define MMAP_INTC0 (CONFIG_SYS_MBAR + 0x00000700) 18819833afSPeter Tyser #define MMAP_GPTMR (CONFIG_SYS_MBAR + 0x00000800) 19819833afSPeter Tyser #define MMAP_SLT0 (CONFIG_SYS_MBAR + 0x00000900) 20819833afSPeter Tyser #define MMAP_SLT1 (CONFIG_SYS_MBAR + 0x00000910) 21819833afSPeter Tyser #define MMAP_GPIO (CONFIG_SYS_MBAR + 0x00000A00) 22819833afSPeter Tyser #define MMAP_PCI (CONFIG_SYS_MBAR + 0x00000B00) 23819833afSPeter Tyser #define MMAP_PCIARB (CONFIG_SYS_MBAR + 0x00000C00) 24819833afSPeter Tyser #define MMAP_EXTDMA (CONFIG_SYS_MBAR + 0x00000D00) 25819833afSPeter Tyser #define MMAP_EPORT (CONFIG_SYS_MBAR + 0x00000F00) 26819833afSPeter Tyser #define MMAP_CTM (CONFIG_SYS_MBAR + 0x00007F00) 27819833afSPeter Tyser #define MMAP_MCDMA (CONFIG_SYS_MBAR + 0x00008000) 28819833afSPeter Tyser #define MMAP_SCPCI (CONFIG_SYS_MBAR + 0x00008400) 29819833afSPeter Tyser #define MMAP_UART0 (CONFIG_SYS_MBAR + 0x00008600) 30819833afSPeter Tyser #define MMAP_UART1 (CONFIG_SYS_MBAR + 0x00008700) 31819833afSPeter Tyser #define MMAP_UART2 (CONFIG_SYS_MBAR + 0x00008800) 32819833afSPeter Tyser #define MMAP_UART3 (CONFIG_SYS_MBAR + 0x00008900) 33819833afSPeter Tyser #define MMAP_DSPI (CONFIG_SYS_MBAR + 0x00008A00) 34819833afSPeter Tyser #define MMAP_I2C (CONFIG_SYS_MBAR + 0x00008F00) 35819833afSPeter Tyser #define MMAP_FEC0 (CONFIG_SYS_MBAR + 0x00009000) 36819833afSPeter Tyser #define MMAP_FEC1 (CONFIG_SYS_MBAR + 0x00009800) 37819833afSPeter Tyser #define MMAP_CAN0 (CONFIG_SYS_MBAR + 0x0000A000) 38819833afSPeter Tyser #define MMAP_CAN1 (CONFIG_SYS_MBAR + 0x0000A800) 39819833afSPeter Tyser #define MMAP_USBD (CONFIG_SYS_MBAR + 0x0000B000) 40819833afSPeter Tyser #define MMAP_SRAM (CONFIG_SYS_MBAR + 0x00010000) 41819833afSPeter Tyser #define MMAP_SRAMCFG (CONFIG_SYS_MBAR + 0x0001FF00) 42819833afSPeter Tyser #define MMAP_SEC (CONFIG_SYS_MBAR + 0x00020000) 43819833afSPeter Tyser 44819833afSPeter Tyser #include <asm/coldfire/dspi.h> 45819833afSPeter Tyser #include <asm/coldfire/eport.h> 46819833afSPeter Tyser #include <asm/coldfire/flexbus.h> 47819833afSPeter Tyser #include <asm/coldfire/flexcan.h> 48819833afSPeter Tyser #include <asm/coldfire/intctrl.h> 49819833afSPeter Tyser 50819833afSPeter Tyser typedef struct siu { 51819833afSPeter Tyser u32 mbar; /* 0x00 */ 52819833afSPeter Tyser u32 drv; /* 0x04 */ 53819833afSPeter Tyser u32 rsvd1[2]; /* 0x08 - 0x1F */ 54819833afSPeter Tyser u32 sbcr; /* 0x10 */ 55819833afSPeter Tyser u32 rsvd2[3]; /* 0x14 - 0x1F */ 56819833afSPeter Tyser u32 cs0cfg; /* 0x20 */ 57819833afSPeter Tyser u32 cs1cfg; /* 0x24 */ 58819833afSPeter Tyser u32 cs2cfg; /* 0x28 */ 59819833afSPeter Tyser u32 cs3cfg; /* 0x2C */ 60819833afSPeter Tyser u32 rsvd3[2]; /* 0x30 - 0x37 */ 61819833afSPeter Tyser u32 secsacr; /* 0x38 */ 62819833afSPeter Tyser u32 rsvd4[2]; /* 0x3C - 0x43 */ 63819833afSPeter Tyser u32 rsr; /* 0x44 */ 64819833afSPeter Tyser u32 rsvd5[2]; /* 0x48 - 0x4F */ 65819833afSPeter Tyser u32 jtagid; /* 0x50 */ 66819833afSPeter Tyser } siu_t; 67819833afSPeter Tyser 68819833afSPeter Tyser typedef struct sdram { 69819833afSPeter Tyser u32 mode; /* 0x00 */ 70819833afSPeter Tyser u32 ctrl; /* 0x04 */ 71819833afSPeter Tyser u32 cfg1; /* 0x08 */ 72819833afSPeter Tyser u32 cfg2; /* 0x0c */ 73819833afSPeter Tyser } sdram_t; 74819833afSPeter Tyser 75819833afSPeter Tyser typedef struct xlb_arb { 76819833afSPeter Tyser u32 cfg; /* 0x240 */ 77819833afSPeter Tyser u32 ver; /* 0x244 */ 78819833afSPeter Tyser u32 sr; /* 0x248 */ 79819833afSPeter Tyser u32 imr; /* 0x24c */ 80819833afSPeter Tyser u32 adrcap; /* 0x250 */ 81819833afSPeter Tyser u32 sigcap; /* 0x254 */ 82819833afSPeter Tyser u32 adrto; /* 0x258 */ 83819833afSPeter Tyser u32 datto; /* 0x25c */ 84819833afSPeter Tyser u32 busto; /* 0x260 */ 85819833afSPeter Tyser u32 prien; /* 0x264 */ 86819833afSPeter Tyser u32 pri; /* 0x268 */ 87819833afSPeter Tyser } xlbarb_t; 88819833afSPeter Tyser 89819833afSPeter Tyser typedef struct gptmr { 90819833afSPeter Tyser u8 ocpw; 91819833afSPeter Tyser u8 octict; 92819833afSPeter Tyser u8 ctrl; 93819833afSPeter Tyser u8 mode; 94819833afSPeter Tyser 95819833afSPeter Tyser u16 pre; /* Prescale */ 96819833afSPeter Tyser u16 cnt; 97819833afSPeter Tyser 98819833afSPeter Tyser u16 pwmwidth; 99819833afSPeter Tyser u8 pwmop; /* Output Polarity */ 100819833afSPeter Tyser u8 pwmld; /* Immediate Update */ 101819833afSPeter Tyser 102819833afSPeter Tyser u16 cap; /* Capture internal counter */ 103819833afSPeter Tyser u8 ovfpin; /* Ovf and Pin */ 104819833afSPeter Tyser u8 intr; /* Interrupts */ 105819833afSPeter Tyser } gptmr_t; 106819833afSPeter Tyser 107819833afSPeter Tyser typedef struct canex_ctrl { 108819833afSPeter Tyser can_msg_t msg[16]; /* 0x00 Message Buffer 0-15 */ 109819833afSPeter Tyser } canex_t; 110819833afSPeter Tyser 111819833afSPeter Tyser 112819833afSPeter Tyser typedef struct slt { 113819833afSPeter Tyser u32 tcnt; /* 0x00 */ 114819833afSPeter Tyser u32 cr; /* 0x04 */ 115819833afSPeter Tyser u32 cnt; /* 0x08 */ 116819833afSPeter Tyser u32 sr; /* 0x0C */ 117819833afSPeter Tyser } slt_t; 118819833afSPeter Tyser 119819833afSPeter Tyser typedef struct gpio { 120819833afSPeter Tyser /* Port Output Data Registers */ 121819833afSPeter Tyser u8 podr_fbctl; /*0x00 */ 122819833afSPeter Tyser u8 podr_fbcs; /*0x01 */ 123819833afSPeter Tyser u8 podr_dma; /*0x02 */ 124819833afSPeter Tyser u8 rsvd1; /*0x03 */ 125819833afSPeter Tyser u8 podr_fec0h; /*0x04 */ 126819833afSPeter Tyser u8 podr_fec0l; /*0x05 */ 127819833afSPeter Tyser u8 podr_fec1h; /*0x06 */ 128819833afSPeter Tyser u8 podr_fec1l; /*0x07 */ 129819833afSPeter Tyser u8 podr_feci2c; /*0x08 */ 130819833afSPeter Tyser u8 podr_pcibg; /*0x09 */ 131819833afSPeter Tyser u8 podr_pcibr; /*0x0A */ 132819833afSPeter Tyser u8 rsvd2; /*0x0B */ 133819833afSPeter Tyser u8 podr_psc3psc2; /*0x0C */ 134819833afSPeter Tyser u8 podr_psc1psc0; /*0x0D */ 135819833afSPeter Tyser u8 podr_dspi; /*0x0E */ 136819833afSPeter Tyser u8 rsvd3; /*0x0F */ 137819833afSPeter Tyser 138819833afSPeter Tyser /* Port Data Direction Registers */ 139819833afSPeter Tyser u8 pddr_fbctl; /*0x10 */ 140819833afSPeter Tyser u8 pddr_fbcs; /*0x11 */ 141819833afSPeter Tyser u8 pddr_dma; /*0x12 */ 142819833afSPeter Tyser u8 rsvd4; /*0x13 */ 143819833afSPeter Tyser u8 pddr_fec0h; /*0x14 */ 144819833afSPeter Tyser u8 pddr_fec0l; /*0x15 */ 145819833afSPeter Tyser u8 pddr_fec1h; /*0x16 */ 146819833afSPeter Tyser u8 pddr_fec1l; /*0x17 */ 147819833afSPeter Tyser u8 pddr_feci2c; /*0x18 */ 148819833afSPeter Tyser u8 pddr_pcibg; /*0x19 */ 149819833afSPeter Tyser u8 pddr_pcibr; /*0x1A */ 150819833afSPeter Tyser u8 rsvd5; /*0x1B */ 151819833afSPeter Tyser u8 pddr_psc3psc2; /*0x1C */ 152819833afSPeter Tyser u8 pddr_psc1psc0; /*0x1D */ 153819833afSPeter Tyser u8 pddr_dspi; /*0x1E */ 154819833afSPeter Tyser u8 rsvd6; /*0x1F */ 155819833afSPeter Tyser 156819833afSPeter Tyser /* Port Pin Data/Set Data Registers */ 157819833afSPeter Tyser u8 ppdsdr_fbctl; /*0x20 */ 158819833afSPeter Tyser u8 ppdsdr_fbcs; /*0x21 */ 159819833afSPeter Tyser u8 ppdsdr_dma; /*0x22 */ 160819833afSPeter Tyser u8 rsvd7; /*0x23 */ 161819833afSPeter Tyser u8 ppdsdr_fec0h; /*0x24 */ 162819833afSPeter Tyser u8 ppdsdr_fec0l; /*0x25 */ 163819833afSPeter Tyser u8 ppdsdr_fec1h; /*0x26 */ 164819833afSPeter Tyser u8 ppdsdr_fec1l; /*0x27 */ 165819833afSPeter Tyser u8 ppdsdr_feci2c; /*0x28 */ 166819833afSPeter Tyser u8 ppdsdr_pcibg; /*0x29 */ 167819833afSPeter Tyser u8 ppdsdr_pcibr; /*0x2A */ 168819833afSPeter Tyser u8 rsvd8; /*0x2B */ 169819833afSPeter Tyser u8 ppdsdr_psc3psc2; /*0x2C */ 170819833afSPeter Tyser u8 ppdsdr_psc1psc0; /*0x2D */ 171819833afSPeter Tyser u8 ppdsdr_dspi; /*0x2E */ 172819833afSPeter Tyser u8 rsvd9; /*0x2F */ 173819833afSPeter Tyser 174819833afSPeter Tyser /* Port Clear Output Data Registers */ 175819833afSPeter Tyser u8 pclrr_fbctl; /*0x30 */ 176819833afSPeter Tyser u8 pclrr_fbcs; /*0x31 */ 177819833afSPeter Tyser u8 pclrr_dma; /*0x32 */ 178819833afSPeter Tyser u8 rsvd10; /*0x33 */ 179819833afSPeter Tyser u8 pclrr_fec0h; /*0x34 */ 180819833afSPeter Tyser u8 pclrr_fec0l; /*0x35 */ 181819833afSPeter Tyser u8 pclrr_fec1h; /*0x36 */ 182819833afSPeter Tyser u8 pclrr_fec1l; /*0x37 */ 183819833afSPeter Tyser u8 pclrr_feci2c; /*0x38 */ 184819833afSPeter Tyser u8 pclrr_pcibg; /*0x39 */ 185819833afSPeter Tyser u8 pclrr_pcibr; /*0x3A */ 186819833afSPeter Tyser u8 rsvd11; /*0x3B */ 187819833afSPeter Tyser u8 pclrr_psc3psc2; /*0x3C */ 188819833afSPeter Tyser u8 pclrr_psc1psc0; /*0x3D */ 189819833afSPeter Tyser u8 pclrr_dspi; /*0x3E */ 190819833afSPeter Tyser u8 rsvd12; /*0x3F */ 191819833afSPeter Tyser 192819833afSPeter Tyser /* Pin Assignment Registers */ 193819833afSPeter Tyser u16 par_fbctl; /*0x40 */ 194819833afSPeter Tyser u8 par_fbcs; /*0x42 */ 195819833afSPeter Tyser u8 par_dma; /*0x43 */ 196819833afSPeter Tyser u16 par_feci2cirq; /*0x44 */ 197819833afSPeter Tyser u16 rsvd13; /*0x46 */ 198819833afSPeter Tyser u16 par_pcibg; /*0x48 */ 199819833afSPeter Tyser u16 par_pcibr; /*0x4A */ 200819833afSPeter Tyser u8 par_psc3; /*0x4C */ 201819833afSPeter Tyser u8 par_psc2; /*0x4D */ 202819833afSPeter Tyser u8 par_psc1; /*0x4E */ 203819833afSPeter Tyser u8 par_psc0; /*0x4F */ 204819833afSPeter Tyser u16 par_dspi; /*0x50 */ 205819833afSPeter Tyser u8 par_timer; /*0x52 */ 206819833afSPeter Tyser u8 rsvd14; /*0x53 */ 207819833afSPeter Tyser } gpio_t; 208819833afSPeter Tyser 209819833afSPeter Tyser typedef struct pci { 210819833afSPeter Tyser u32 idr; /* 0x00 Device Id / Vendor Id */ 211819833afSPeter Tyser u32 scr; /* 0x04 Status / command */ 212819833afSPeter Tyser u32 ccrir; /* 0x08 Class Code / Revision Id */ 213819833afSPeter Tyser u32 cr1; /* 0x0c Configuration 1 */ 214819833afSPeter Tyser u32 bar0; /* 0x10 Base address register 0 */ 215819833afSPeter Tyser u32 bar1; /* 0x14 Base address register 1 */ 216819833afSPeter Tyser u32 bar2; /* 0x18 NA */ 217819833afSPeter Tyser u32 bar3; /* 0x1c NA */ 218819833afSPeter Tyser u32 bar4; /* 0x20 NA */ 219819833afSPeter Tyser u32 bar5; /* 0x24 NA */ 220819833afSPeter Tyser u32 ccpr; /* 0x28 Cardbus CIS Pointer */ 221819833afSPeter Tyser u32 sid; /* 0x2c Subsystem ID / Subsystem Vendor ID */ 222819833afSPeter Tyser u32 erbar; /* 0x30 Expansion ROM Base Address */ 223819833afSPeter Tyser u32 cpr; /* 0x34 Capabilities Pointer */ 224819833afSPeter Tyser u32 rsvd1; /* 0x38 */ 225819833afSPeter Tyser u32 cr2; /* 0x3c Configuration 2 */ 226819833afSPeter Tyser u32 rsvd2[8]; /* 0x40 - 0x5f */ 227819833afSPeter Tyser 228819833afSPeter Tyser /* General control / status registers */ 229819833afSPeter Tyser u32 gscr; /* 0x60 Global Status / Control */ 230819833afSPeter Tyser u32 tbatr0a; /* 0x64 Target Base Adr Translation 0 */ 231819833afSPeter Tyser u32 tbatr1a; /* 0x68 Target Base Adr Translation 1 */ 232819833afSPeter Tyser u32 tcr1; /* 0x6c Target Control 1 Register */ 233819833afSPeter Tyser u32 iw0btar; /* 0x70 Initiator Win 0 Base/Translation adr */ 234819833afSPeter Tyser u32 iw1btar; /* 0x74 Initiator Win 1 Base/Translation adr */ 235819833afSPeter Tyser u32 iw2btar; /* 0x78 NA */ 236819833afSPeter Tyser u32 rsvd3; /* 0x7c */ 237819833afSPeter Tyser u32 iwcr; /* 0x80 Initiator Window Configuration */ 238819833afSPeter Tyser u32 icr; /* 0x84 Initiator Control */ 239819833afSPeter Tyser u32 isr; /* 0x88 Initiator Status */ 240819833afSPeter Tyser u32 tcr2; /* 0x8c NA */ 241819833afSPeter Tyser u32 tbatr0; /* 0x90 NA */ 242819833afSPeter Tyser u32 tbatr1; /* 0x94 NA */ 243819833afSPeter Tyser u32 tbatr2; /* 0x98 NA */ 244819833afSPeter Tyser u32 tbatr3; /* 0x9c NA */ 245819833afSPeter Tyser u32 tbatr4; /* 0xa0 NA */ 246819833afSPeter Tyser u32 tbatr5; /* 0xa4 NA */ 247819833afSPeter Tyser u32 intr; /* 0xa8 NA */ 248819833afSPeter Tyser u32 rsvd4[19]; /* 0xac - 0xf7 */ 249819833afSPeter Tyser u32 car; /* 0xf8 Configuration Address */ 250819833afSPeter Tyser } pci_t; 251819833afSPeter Tyser 252819833afSPeter Tyser typedef struct pci_arbiter { 253819833afSPeter Tyser /* Pci Arbiter Registers */ 254819833afSPeter Tyser union { 255819833afSPeter Tyser u32 acr; /* Arbiter Control */ 256819833afSPeter Tyser u32 asr; /* Arbiter Status */ 257819833afSPeter Tyser }; 258819833afSPeter Tyser } pciarb_t; 259819833afSPeter Tyser #endif /* __IMMAP_547x_8x__ */ 260