83d290c56f
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
371 lines
8.6 KiB
C
371 lines
8.6 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* MCF5441x Internal Memory Map
|
|
*
|
|
* Copyright 2010-2012 Freescale Semiconductor, Inc.
|
|
* TsiChung Liew (Tsi-Chung.Liew@freescale.com)
|
|
*/
|
|
|
|
#ifndef __IMMAP_5441X__
|
|
#define __IMMAP_5441X__
|
|
|
|
/* Module Base Addresses */
|
|
#define MMAP_XBS 0xFC004000
|
|
#define MMAP_FBCS 0xFC008000
|
|
#define MMAP_CAN0 0xFC020000
|
|
#define MMAP_CAN1 0xFC024000
|
|
#define MMAP_I2C1 0xFC038000
|
|
#define MMAP_DSPI1 0xFC03C000
|
|
#define MMAP_SCM 0xFC040000
|
|
#define MMAP_PM 0xFC04002C
|
|
#define MMAP_EDMA 0xFC044000
|
|
#define MMAP_INTC0 0xFC048000
|
|
#define MMAP_INTC1 0xFC04C000
|
|
#define MMAP_INTC2 0xFC050000
|
|
#define MMAP_IACK 0xFC054000
|
|
#define MMAP_I2C0 0xFC058000
|
|
#define MMAP_DSPI0 0xFC05C000
|
|
#define MMAP_UART0 0xFC060000
|
|
#define MMAP_UART1 0xFC064000
|
|
#define MMAP_UART2 0xFC068000
|
|
#define MMAP_UART3 0xFC06C000
|
|
#define MMAP_DTMR0 0xFC070000
|
|
#define MMAP_DTMR1 0xFC074000
|
|
#define MMAP_DTMR2 0xFC078000
|
|
#define MMAP_DTMR3 0xFC07C000
|
|
#define MMAP_PIT0 0xFC080000
|
|
#define MMAP_PIT1 0xFC084000
|
|
#define MMAP_PIT2 0xFC088000
|
|
#define MMAP_PIT3 0xFC08C000
|
|
#define MMAP_EPORT0 0xFC090000
|
|
#define MMAP_ADC 0xFC094000
|
|
#define MMAP_DAC0 0xFC098000
|
|
#define MMAP_DAC1 0xFC09C000
|
|
#define MMAP_RRTC 0xFC0A8000
|
|
#define MMAP_SIM 0xFC0AC000
|
|
#define MMAP_USBOTG 0xFC0B0000
|
|
#define MMAP_USBEHCI 0xFC0B4000
|
|
#define MMAP_SDRAM 0xFC0B8000
|
|
#define MMAP_SSI0 0xFC0BC000
|
|
#define MMAP_PLL 0xFC0C0000
|
|
#define MMAP_RNG 0xFC0C4000
|
|
#define MMAP_SSI1 0xFC0C8000
|
|
#define MMAP_ESDHC 0xFC0CC000
|
|
#define MMAP_FEC0 0xFC0D4000
|
|
#define MMAP_FEC1 0xFC0D8000
|
|
#define MMAP_L2_SW0 0xFC0DC000
|
|
#define MMAP_L2_SW1 0xFC0E0000
|
|
|
|
#define MMAP_NFC_RAM 0xFC0FC000
|
|
#define MMAP_NFC 0xFC0FF000
|
|
|
|
#define MMAP_1WIRE 0xEC008000
|
|
#define MMAP_I2C2 0xEC010000
|
|
#define MMAP_I2C3 0xEC014000
|
|
#define MMAP_I2C4 0xEC018000
|
|
#define MMAP_I2C5 0xEC01C000
|
|
#define MMAP_DSPI2 0xEC038000
|
|
#define MMAP_DSPI3 0xEC03C000
|
|
#define MMAP_UART4 0xEC060000
|
|
#define MMAP_UART5 0xEC064000
|
|
#define MMAP_UART6 0xEC068000
|
|
#define MMAP_UART7 0xEC06C000
|
|
#define MMAP_UART8 0xEC070000
|
|
#define MMAP_UART9 0xEC074000
|
|
#define MMAP_RCM 0xEC090000
|
|
#define MMAP_CCM 0xEC090000
|
|
#define MMAP_GPIO 0xEC094000
|
|
|
|
#include <asm/coldfire/crossbar.h>
|
|
#include <asm/coldfire/dspi.h>
|
|
#include <asm/coldfire/edma.h>
|
|
#include <asm/coldfire/eport.h>
|
|
#include <asm/coldfire/flexbus.h>
|
|
#include <asm/coldfire/flexcan.h>
|
|
#include <asm/coldfire/intctrl.h>
|
|
#include <asm/coldfire/ssi.h>
|
|
|
|
/* Serial Boot Facility (SBF) */
|
|
typedef struct sbf {
|
|
u8 resv0[0x18];
|
|
u16 sbfsr; /* Serial Boot Facility Status */
|
|
u8 resv1[0x6];
|
|
u16 sbfcr; /* Serial Boot Facility Control */
|
|
} sbf_t;
|
|
|
|
/* Reset Controller Module (RCM) */
|
|
typedef struct rcm {
|
|
u8 rcr;
|
|
u8 rsr;
|
|
} rcm_t;
|
|
|
|
/* Chip Configuration Module (CCM) */
|
|
typedef struct ccm {
|
|
u8 ccm_resv0[0x4]; /* 0x00 */
|
|
u16 ccr; /* 0x04 Chip Configuration */
|
|
u8 resv1[0x2]; /* 0x06 */
|
|
u16 rcon; /* 0x08 Reset Configuration */
|
|
u16 cir; /* 0x0A Chip Identification */
|
|
u8 resv2[0x2]; /* 0x0C */
|
|
u16 misccr; /* 0x0E Miscellaneous Control */
|
|
u16 cdrh; /* 0x10 Clock Divider */
|
|
u16 cdrl; /* 0x12 Clock Divider */
|
|
u16 uocsr; /* 0x14 USB On-the-Go Controller Status */
|
|
u16 uhcsr; /* 0x16 */
|
|
u16 misccr3; /* 0x18 */
|
|
u16 misccr2; /* 0x1A */
|
|
u16 adctsr; /* 0x1C */
|
|
u16 dactsr; /* 0x1E */
|
|
u16 sbfsr; /* 0x20 */
|
|
u16 sbfcr; /* 0x22 */
|
|
u32 fnacr; /* 0x24 */
|
|
} ccm_t;
|
|
|
|
/* General Purpose I/O Module (GPIO) */
|
|
typedef struct gpio {
|
|
u8 podr_a; /* 0x00 */
|
|
u8 podr_b; /* 0x01 */
|
|
u8 podr_c; /* 0x02 */
|
|
u8 podr_d; /* 0x03 */
|
|
u8 podr_e; /* 0x04 */
|
|
u8 podr_f; /* 0x05 */
|
|
u8 podr_g; /* 0x06 */
|
|
u8 podr_h; /* 0x07 */
|
|
u8 podr_i; /* 0x08 */
|
|
u8 podr_j; /* 0x09 */
|
|
u8 podr_k; /* 0x0A */
|
|
u8 rsvd0; /* 0x0B */
|
|
|
|
u8 pddr_a; /* 0x0C */
|
|
u8 pddr_b; /* 0x0D */
|
|
u8 pddr_c; /* 0x0E */
|
|
u8 pddr_d; /* 0x0F */
|
|
u8 pddr_e; /* 0x10 */
|
|
u8 pddr_f; /* 0x11 */
|
|
u8 pddr_g; /* 0x12 */
|
|
u8 pddr_h; /* 0x13 */
|
|
u8 pddr_i; /* 0x14 */
|
|
u8 pddr_j; /* 0x15 */
|
|
u8 pddr_k; /* 0x16 */
|
|
u8 rsvd1; /* 0x17 */
|
|
|
|
u8 ppdsdr_a; /* 0x18 */
|
|
u8 ppdsdr_b; /* 0x19 */
|
|
u8 ppdsdr_c; /* 0x1A */
|
|
u8 ppdsdr_d; /* 0x1B */
|
|
u8 ppdsdr_e; /* 0x1C */
|
|
u8 ppdsdr_f; /* 0x1D */
|
|
u8 ppdsdr_g; /* 0x1E */
|
|
u8 ppdsdr_h; /* 0x1F */
|
|
u8 ppdsdr_i; /* 0x20 */
|
|
u8 ppdsdr_j; /* 0x21 */
|
|
u8 ppdsdr_k; /* 0x22 */
|
|
u8 rsvd2; /* 0x23 */
|
|
|
|
u8 pclrr_a; /* 0x24 */
|
|
u8 pclrr_b; /* 0x25 */
|
|
u8 pclrr_c; /* 0x26 */
|
|
u8 pclrr_d; /* 0x27 */
|
|
u8 pclrr_e; /* 0x28 */
|
|
u8 pclrr_f; /* 0x29 */
|
|
u8 pclrr_g; /* 0x2A */
|
|
u8 pclrr_h; /* 0x2B */
|
|
u8 pclrr_i; /* 0x2C */
|
|
u8 pclrr_j; /* 0x2D */
|
|
u8 pclrr_k; /* 0x2E */
|
|
u8 rsvd3; /* 0x2F */
|
|
|
|
u16 pcr_a; /* 0x30 */
|
|
u16 pcr_b; /* 0x32 */
|
|
u16 pcr_c; /* 0x34 */
|
|
u16 pcr_d; /* 0x36 */
|
|
u16 pcr_e; /* 0x38 */
|
|
u16 pcr_f; /* 0x3A */
|
|
u16 pcr_g; /* 0x3C */
|
|
u16 pcr_h; /* 0x3E */
|
|
u16 pcr_i; /* 0x40 */
|
|
u16 pcr_j; /* 0x42 */
|
|
u16 pcr_k; /* 0x44 */
|
|
u16 rsvd4; /* 0x46 */
|
|
|
|
u8 par_fbctl; /* 0x48 */
|
|
u8 par_be; /* 0x49 */
|
|
u8 par_cs; /* 0x4A */
|
|
u8 par_cani2c; /* 0x4B */
|
|
u8 par_irqh; /* 0x4C */
|
|
u8 par_irql; /* 0x4D */
|
|
u8 par_dspi0; /* 0x4E */
|
|
u8 par_dspiow; /* 0x4F */
|
|
u8 par_timer; /* 0x50 */
|
|
u8 par_uart2; /* 0x51 */
|
|
u8 par_uart1; /* 0x52 */
|
|
u8 par_uart0; /* 0x53 */
|
|
u8 par_sdhch; /* 0x54 */
|
|
u8 par_sdhcl; /* 0x55 */
|
|
u8 par_simp0h; /* 0x56 */
|
|
u8 par_simp1h; /* 0x57 */
|
|
u8 par_ssi0h; /* 0x58 */
|
|
u8 par_ssi0l; /* 0x59 */
|
|
u8 par_dbg1h; /* 0x5A */
|
|
u8 par_dbg0h; /* 0x5B */
|
|
u8 par_dbgl; /* 0x5C */
|
|
u8 rsvd5; /* 0x5D */
|
|
u8 par_fec; /* 0x5E */
|
|
u8 rsvd6; /* 0x5F */
|
|
|
|
u8 mscr_sdram; /* 0x60 */
|
|
u8 rsvd7[3]; /* 0x61-0x63 */
|
|
|
|
u8 srcr_fb1; /* 0x64 */
|
|
u8 srcr_fb2; /* 0x65 */
|
|
u8 srcr_fb3; /* 0x66 */
|
|
u8 srcr_fb4; /* 0x67 */
|
|
u8 srcr_dspiow; /* 0x68 */
|
|
u8 srcr_cani2c; /* 0x69 */
|
|
u8 srcr_irq; /* 0x6A */
|
|
u8 srcr_timer; /* 0x6B */
|
|
u8 srcr_uart; /* 0x6C */
|
|
u8 srcr_fec; /* 0x6D */
|
|
u8 srcr_sdhc; /* 0x6E */
|
|
u8 srcr_simp0; /* 0x6F */
|
|
u8 srcr_ssi0; /* 0x70 */
|
|
u8 rsvd8[3]; /* 0x71-0x73 */
|
|
|
|
u16 urts_pol; /* 0x74 */
|
|
u16 ucts_pol; /* 0x76 */
|
|
u16 utxd_wom; /* 0x78 */
|
|
u32 urxd_wom; /* 0x7c */
|
|
|
|
u32 hcr1; /* 0x80 */
|
|
u32 hcr0; /* 0x84 */
|
|
} gpio_t;
|
|
|
|
/* SDRAM Controller (SDRAMC) */
|
|
typedef struct sdramc {
|
|
u32 cr00; /* 0x00 */
|
|
u32 cr01; /* 0x04 */
|
|
u32 cr02; /* 0x08 */
|
|
u32 cr03; /* 0x0C */
|
|
u32 cr04; /* 0x10 */
|
|
u32 cr05; /* 0x14 */
|
|
u32 cr06; /* 0x18 */
|
|
u32 cr07; /* 0x1C */
|
|
|
|
u32 cr08; /* 0x20 */
|
|
u32 cr09; /* 0x24 */
|
|
u32 cr10; /* 0x28 */
|
|
u32 cr11; /* 0x2C */
|
|
u32 cr12; /* 0x30 */
|
|
u32 cr13; /* 0x34 */
|
|
u32 cr14; /* 0x38 */
|
|
u32 cr15; /* 0x3C */
|
|
|
|
u32 cr16; /* 0x40 */
|
|
u32 cr17; /* 0x44 */
|
|
u32 cr18; /* 0x48 */
|
|
u32 cr19; /* 0x4C */
|
|
u32 cr20; /* 0x50 */
|
|
u32 cr21; /* 0x54 */
|
|
u32 cr22; /* 0x58 */
|
|
u32 cr23; /* 0x5C */
|
|
|
|
u32 cr24; /* 0x60 */
|
|
u32 cr25; /* 0x64 */
|
|
u32 cr26; /* 0x68 */
|
|
u32 cr27; /* 0x6C */
|
|
u32 cr28; /* 0x70 */
|
|
u32 cr29; /* 0x74 */
|
|
u32 cr30; /* 0x78 */
|
|
u32 cr31; /* 0x7C */
|
|
|
|
u32 cr32; /* 0x80 */
|
|
u32 cr33; /* 0x84 */
|
|
u32 cr34; /* 0x88 */
|
|
u32 cr35; /* 0x8C */
|
|
u32 cr36; /* 0x90 */
|
|
u32 cr37; /* 0x94 */
|
|
u32 cr38; /* 0x98 */
|
|
u32 cr39; /* 0x9C */
|
|
|
|
u32 cr40; /* 0xA0 */
|
|
u32 cr41; /* 0xA4 */
|
|
u32 cr42; /* 0xA8 */
|
|
u32 cr43; /* 0xAC */
|
|
u32 cr44; /* 0xB0 */
|
|
u32 cr45; /* 0xB4 */
|
|
u32 cr46; /* 0xB8 */
|
|
u32 cr47; /* 0xBC */
|
|
u32 cr48; /* 0xC0 */
|
|
u32 cr49; /* 0xC4 */
|
|
u32 cr50; /* 0xC8 */
|
|
u32 cr51; /* 0xCC */
|
|
u32 cr52; /* 0xD0 */
|
|
u32 cr53; /* 0xD4 */
|
|
u32 cr54; /* 0xD8 */
|
|
u32 cr55; /* 0xDC */
|
|
u32 cr56; /* 0xE0 */
|
|
u32 cr57; /* 0xE4 */
|
|
u32 cr58; /* 0xE8 */
|
|
u32 cr59; /* 0xEC */
|
|
u32 cr60; /* 0xF0 */
|
|
u32 cr61; /* 0xF4 */
|
|
u32 cr62; /* 0xF8 */
|
|
u32 cr63; /* 0xFC */
|
|
|
|
u32 rsvd3[32]; /* 0xF4-0x1A8 */
|
|
|
|
u32 rcrcr; /* 0x180 */
|
|
u32 swrcr; /* 0x184 */
|
|
u32 rcr; /* 0x188 */
|
|
u32 msovr; /* 0x18C */
|
|
u32 rcrdbg; /* 0x190 */
|
|
u32 sl0adj; /* 0x194 */
|
|
u32 sl1adj; /* 0x198 */
|
|
u32 sl2adj; /* 0x19C */
|
|
u32 sl3adj; /* 0x1A0 */
|
|
u32 sl4adj; /* 0x1A4 */
|
|
u32 flight_tm; /* 0x1A8 */
|
|
u32 padcr; /* 0x1AC */
|
|
} sdramc_t;
|
|
|
|
/* Phase Locked Loop (PLL) */
|
|
typedef struct pll {
|
|
u32 pcr; /* Control */
|
|
u32 pdr; /* Divider */
|
|
u32 psr; /* Status */
|
|
} pll_t;
|
|
|
|
typedef struct scm {
|
|
u8 rsvd1[19]; /* 0x00 - 0x12 */
|
|
u8 wcr; /* 0x13 */
|
|
u16 rsvd2; /* 0x14 - 0x15 */
|
|
u16 cwcr; /* 0x16 */
|
|
u8 rsvd3[3]; /* 0x18 - 0x1A */
|
|
u8 cwsr; /* 0x1B */
|
|
u8 rsvd4[3]; /* 0x1C - 0x1E */
|
|
u8 scmisr; /* 0x1F */
|
|
u32 rsvd5; /* 0x20 - 0x23 */
|
|
u32 bcr; /* 0x24 */
|
|
u8 rsvd6[72]; /* 0x28 - 0x6F */
|
|
u32 cfadr; /* 0x70 */
|
|
u8 rsvd7; /* 0x74 */
|
|
u8 cfier; /* 0x75 */
|
|
u8 cfloc; /* 0x76 */
|
|
u8 cfatr; /* 0x77 */
|
|
u32 rsvd8; /* 0x78 - 0x7B */
|
|
u32 cfdtr; /* 0x7C */
|
|
} scm_t;
|
|
|
|
typedef struct pm {
|
|
u8 pmsr0; /* */
|
|
u8 pmcr0;
|
|
u8 pmsr1;
|
|
u8 pmcr1;
|
|
u32 pmhr0;
|
|
u32 pmlr0;
|
|
u32 pmhr1;
|
|
u32 pmlr1;
|
|
} pm_t;
|
|
|
|
#endif /* __IMMAP_5441X__ */
|