mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
ColdFire: Add MCF5441x CPU support
Add MCF5441x CPU support. The MCF5441x devices are a family of highly-integrated 32-bit microprocessors based on the Version 4m ColdFire microarchitecture, comprising of the V4 integer core, memory management unit(MMU) and enchanced multiply-accumulate unit(EMAC). Signed-off-by: TsiChung Liew <tsicliew@gmail.com> Signed-off-by: Jason Jin <Jason.jin@freescale.com> Signed-off-by: Alison Wang <b18965@freescale.com>
This commit is contained in:
parent
7adbd11e78
commit
45370e1836
9 changed files with 1967 additions and 54 deletions
|
@ -4,6 +4,8 @@
|
|||
# (C) Copyright 2000-2004
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
#
|
||||
# Copyright 2011-2012 Freescale Semiconductor, Inc.
|
||||
#
|
||||
# See file CREDITS for list of people who contributed to this
|
||||
# project.
|
||||
#
|
||||
|
@ -24,7 +26,15 @@
|
|||
#
|
||||
|
||||
PLATFORM_RELFLAGS += -ffixed-d7 -msep-data
|
||||
|
||||
cfg=$(shell grep configs $(OBJTREE)/include/config.h | sed 's/.*<\(configs.*\)>/\1/')
|
||||
is5441x:=$(shell grep CONFIG_MCF5441x $(TOPDIR)/include/$(cfg))
|
||||
|
||||
ifneq (,$(findstring CONFIG_MCF5441x,$(is5441x)))
|
||||
PLATFORM_CPPFLAGS += -mcpu=54418 -fPIC
|
||||
else
|
||||
PLATFORM_CPPFLAGS += -mcpu=54455 -fPIC
|
||||
endif
|
||||
|
||||
ifneq (,$(findstring -linux-,$(shell $(CC) --version)))
|
||||
ifneq (,$(findstring GOT,$(shell $(LD) --help)))
|
||||
|
|
|
@ -39,6 +39,8 @@ int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
|||
{
|
||||
rcm_t *rcm = (rcm_t *) (MMAP_RCM);
|
||||
udelay(1000);
|
||||
out_8(&rcm->rcr, RCM_RCR_FRCRSTOUT);
|
||||
udelay(10000);
|
||||
setbits_8(&rcm->rcr, RCM_RCR_SOFTRST);
|
||||
|
||||
/* we don't return! */
|
||||
|
@ -74,6 +76,21 @@ int checkcpu(void)
|
|||
case 0x4f:
|
||||
id = 54450;
|
||||
break;
|
||||
case 0x9F:
|
||||
id = 54410;
|
||||
break;
|
||||
case 0xA0:
|
||||
id = 54415;
|
||||
break;
|
||||
case 0xA1:
|
||||
id = 54416;
|
||||
break;
|
||||
case 0xA2:
|
||||
id = 54417;
|
||||
break;
|
||||
case 0xA3:
|
||||
id = 54418;
|
||||
break;
|
||||
}
|
||||
|
||||
if (id) {
|
||||
|
|
|
@ -39,37 +39,11 @@
|
|||
#include <asm/fec.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Breath some life into the CPU...
|
||||
*
|
||||
* Set up the memory map,
|
||||
* initialize a bunch of registers,
|
||||
* initialize the UPM's
|
||||
*/
|
||||
void cpu_init_f(void)
|
||||
void init_fbcs(void)
|
||||
{
|
||||
scm1_t *scm1 = (scm1_t *) MMAP_SCM1;
|
||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
fbcs_t *fbcs __maybe_unused = (fbcs_t *) MMAP_FBCS;
|
||||
|
||||
out_be32(&scm1->mpr, 0x77777777);
|
||||
out_be32(&scm1->pacra, 0);
|
||||
out_be32(&scm1->pacrb, 0);
|
||||
out_be32(&scm1->pacrc, 0);
|
||||
out_be32(&scm1->pacrd, 0);
|
||||
out_be32(&scm1->pacre, 0);
|
||||
out_be32(&scm1->pacrf, 0);
|
||||
out_be32(&scm1->pacrg, 0);
|
||||
|
||||
/* FlexBus */
|
||||
out_8(&gpio->par_be,
|
||||
GPIO_PAR_BE_BE3_BE3 | GPIO_PAR_BE_BE2_BE2 |
|
||||
GPIO_PAR_BE_BE1_BE1 | GPIO_PAR_BE_BE0_BE0);
|
||||
out_8(&gpio->par_fbctl,
|
||||
GPIO_PAR_FBCTL_OE | GPIO_PAR_FBCTL_TA_TA |
|
||||
GPIO_PAR_FBCTL_RW_RW | GPIO_PAR_FBCTL_TS_TS);
|
||||
|
||||
#if !defined(CONFIG_CF_SBF)
|
||||
#if !defined(CONFIG_SERIAL_BOOT)
|
||||
#if (defined(CONFIG_SYS_CS0_BASE) && defined(CONFIG_SYS_CS0_MASK) && defined(CONFIG_SYS_CS0_CTRL))
|
||||
out_be32(&fbcs->csar0, CONFIG_SYS_CS0_BASE);
|
||||
out_be32(&fbcs->cscr0, CONFIG_SYS_CS0_CTRL);
|
||||
|
@ -107,6 +81,145 @@ void cpu_init_f(void)
|
|||
out_be32(&fbcs->cscr5, CONFIG_SYS_CS5_CTRL);
|
||||
out_be32(&fbcs->csmr5, CONFIG_SYS_CS5_MASK);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Breath some life into the CPU...
|
||||
*
|
||||
* Set up the memory map,
|
||||
* initialize a bunch of registers,
|
||||
* initialize the UPM's
|
||||
*/
|
||||
void cpu_init_f(void)
|
||||
{
|
||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
|
||||
#ifdef CONFIG_MCF5441x
|
||||
scm_t *scm = (scm_t *) MMAP_SCM;
|
||||
pm_t *pm = (pm_t *) MMAP_PM;
|
||||
|
||||
/* Disable Switch */
|
||||
*(unsigned long *)(MMAP_L2_SW0 + 0x00000024) = 0;
|
||||
|
||||
/* Disable core watchdog */
|
||||
out_be16(&scm->cwcr, 0);
|
||||
out_8(&gpio->par_fbctl,
|
||||
GPIO_PAR_FBCTL_ALE_FB_ALE | GPIO_PAR_FBCTL_OE_FB_OE |
|
||||
GPIO_PAR_FBCTL_FBCLK | GPIO_PAR_FBCTL_RW |
|
||||
GPIO_PAR_FBCTL_TA_TA);
|
||||
out_8(&gpio->par_be,
|
||||
GPIO_PAR_BE_BE3_BE3 | GPIO_PAR_BE_BE2_BE2 |
|
||||
GPIO_PAR_BE_BE1_BE1 | GPIO_PAR_BE_BE0_BE0);
|
||||
|
||||
/* eDMA */
|
||||
out_8(&pm->pmcr0, 17);
|
||||
|
||||
/* INTR0 - INTR2 */
|
||||
out_8(&pm->pmcr0, 18);
|
||||
out_8(&pm->pmcr0, 19);
|
||||
out_8(&pm->pmcr0, 20);
|
||||
|
||||
/* I2C */
|
||||
out_8(&pm->pmcr0, 22);
|
||||
out_8(&pm->pmcr1, 4);
|
||||
out_8(&pm->pmcr1, 7);
|
||||
|
||||
/* DTMR0 - DTMR3*/
|
||||
out_8(&pm->pmcr0, 28);
|
||||
out_8(&pm->pmcr0, 29);
|
||||
out_8(&pm->pmcr0, 30);
|
||||
out_8(&pm->pmcr0, 31);
|
||||
|
||||
/* PIT0 - PIT3 */
|
||||
out_8(&pm->pmcr0, 32);
|
||||
out_8(&pm->pmcr0, 33);
|
||||
out_8(&pm->pmcr0, 34);
|
||||
out_8(&pm->pmcr0, 35);
|
||||
|
||||
/* Edge Port */
|
||||
out_8(&pm->pmcr0, 36);
|
||||
out_8(&pm->pmcr0, 37);
|
||||
|
||||
/* USB OTG */
|
||||
out_8(&pm->pmcr0, 44);
|
||||
/* USB Host */
|
||||
out_8(&pm->pmcr0, 45);
|
||||
|
||||
/* ESDHC */
|
||||
out_8(&pm->pmcr0, 51);
|
||||
|
||||
/* ENET0 - ENET1 */
|
||||
out_8(&pm->pmcr0, 53);
|
||||
out_8(&pm->pmcr0, 54);
|
||||
|
||||
/* NAND */
|
||||
out_8(&pm->pmcr0, 63);
|
||||
|
||||
#ifdef CONFIG_SYS_I2C_0
|
||||
out_8(&gpio->par_cani2c, 0xF0);
|
||||
/* I2C0 pull up */
|
||||
out_be16(&gpio->pcr_b, 0x003C);
|
||||
/* I2C0 max speed */
|
||||
out_8(&gpio->srcr_cani2c, 0x03);
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_I2C_2
|
||||
/* I2C2 */
|
||||
out_8(&gpio->par_ssi0h, 0xA0);
|
||||
/* I2C2, UART7 */
|
||||
out_8(&gpio->par_ssi0h, 0xA8);
|
||||
/* UART7 */
|
||||
out_8(&gpio->par_ssi0l, 0x2);
|
||||
/* UART8, UART9 */
|
||||
out_8(&gpio->par_cani2c, 0xAA);
|
||||
/* UART4, UART0 */
|
||||
out_8(&gpio->par_uart0, 0xAF);
|
||||
/* UART5, UART1 */
|
||||
out_8(&gpio->par_uart1, 0xAF);
|
||||
/* UART6, UART2 */
|
||||
out_8(&gpio->par_uart2, 0xAF);
|
||||
/* I2C2 pull up */
|
||||
out_be16(&gpio->pcr_h, 0xF000);
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_I2C_5
|
||||
/* I2C5 */
|
||||
out_8(&gpio->par_uart1, 0x0A);
|
||||
/* I2C5 pull up */
|
||||
out_be16(&gpio->pcr_e, 0x0003);
|
||||
out_be16(&gpio->pcr_f, 0xC000);
|
||||
#endif
|
||||
|
||||
/* Lowest slew rate for UART0,1,2 */
|
||||
out_8(&gpio->srcr_uart, 0x00);
|
||||
#endif /* CONFIG_MCF5441x */
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
scm1_t *scm1 = (scm1_t *) MMAP_SCM1;
|
||||
|
||||
out_be32(&scm1->mpr, 0x77777777);
|
||||
out_be32(&scm1->pacra, 0);
|
||||
out_be32(&scm1->pacrb, 0);
|
||||
out_be32(&scm1->pacrc, 0);
|
||||
out_be32(&scm1->pacrd, 0);
|
||||
out_be32(&scm1->pacre, 0);
|
||||
out_be32(&scm1->pacrf, 0);
|
||||
out_be32(&scm1->pacrg, 0);
|
||||
|
||||
/* FlexBus */
|
||||
out_8(&gpio->par_be,
|
||||
GPIO_PAR_BE_BE3_BE3 | GPIO_PAR_BE_BE2_BE2 |
|
||||
GPIO_PAR_BE_BE1_BE1 | GPIO_PAR_BE_BE0_BE0);
|
||||
out_8(&gpio->par_fbctl,
|
||||
GPIO_PAR_FBCTL_OE | GPIO_PAR_FBCTL_TA_TA |
|
||||
GPIO_PAR_FBCTL_RW_RW | GPIO_PAR_FBCTL_TS_TS);
|
||||
|
||||
#ifdef CONFIG_FSL_I2C
|
||||
out_be16(&gpio->par_feci2c,
|
||||
GPIO_PAR_FECI2C_SCL_SCL | GPIO_PAR_FECI2C_SDA_SDA);
|
||||
#endif
|
||||
#endif /* CONFIG_MCF5445x */
|
||||
|
||||
/* FlexBus Chipselect */
|
||||
init_fbcs();
|
||||
|
||||
/*
|
||||
* now the flash base address is no longer at 0 (Newer ColdFire family
|
||||
|
@ -116,11 +229,6 @@ void cpu_init_f(void)
|
|||
if (CONFIG_SYS_CS0_BASE != 0)
|
||||
setvbr(CONFIG_SYS_CS0_BASE);
|
||||
|
||||
#ifdef CONFIG_FSL_I2C
|
||||
out_be16(&gpio->par_feci2c,
|
||||
GPIO_PAR_FECI2C_SCL_SCL | GPIO_PAR_FECI2C_SDA_SDA);
|
||||
#endif
|
||||
|
||||
icache_enable();
|
||||
}
|
||||
|
||||
|
@ -143,9 +251,95 @@ int cpu_init_r(void)
|
|||
void uart_port_conf(int port)
|
||||
{
|
||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
#ifdef CONFIG_MCF5441x
|
||||
pm_t *pm = (pm_t *) MMAP_PM;
|
||||
#endif
|
||||
|
||||
/* Setup Ports: */
|
||||
switch (port) {
|
||||
#ifdef CONFIG_MCF5441x
|
||||
case 0:
|
||||
/* UART0 */
|
||||
out_8(&pm->pmcr0, 24);
|
||||
clrbits_8(&gpio->par_uart0,
|
||||
~(GPIO_PAR_UART0_U0RXD_MASK | GPIO_PAR_UART0_U0TXD_MASK));
|
||||
setbits_8(&gpio->par_uart0,
|
||||
GPIO_PAR_UART0_U0RXD_U0RXD | GPIO_PAR_UART0_U0TXD_U0TXD);
|
||||
break;
|
||||
case 1:
|
||||
/* UART1 */
|
||||
out_8(&pm->pmcr0, 25);
|
||||
clrbits_8(&gpio->par_uart1,
|
||||
~(GPIO_PAR_UART1_U1RXD_MASK | GPIO_PAR_UART1_U1TXD_MASK));
|
||||
setbits_8(&gpio->par_uart1,
|
||||
GPIO_PAR_UART1_U1RXD_U1RXD | GPIO_PAR_UART1_U1TXD_U1TXD);
|
||||
break;
|
||||
case 2:
|
||||
/* UART2 */
|
||||
out_8(&pm->pmcr0, 26);
|
||||
clrbits_8(&gpio->par_uart2,
|
||||
~(GPIO_PAR_UART2_U2RXD_MASK | GPIO_PAR_UART2_U2TXD_MASK));
|
||||
setbits_8(&gpio->par_uart2,
|
||||
GPIO_PAR_UART2_U2RXD_U2RXD | GPIO_PAR_UART2_U2TXD_U2TXD);
|
||||
break;
|
||||
case 3:
|
||||
/* UART3 */
|
||||
out_8(&pm->pmcr0, 27);
|
||||
clrbits_8(&gpio->par_dspi0,
|
||||
~(GPIO_PAR_DSPI0_SIN_MASK | GPIO_PAR_DSPI0_SOUT_MASK));
|
||||
setbits_8(&gpio->par_dspi0,
|
||||
GPIO_PAR_DSPI0_SIN_U3RXD | GPIO_PAR_DSPI0_SOUT_U3TXD);
|
||||
break;
|
||||
case 4:
|
||||
/* UART4 */
|
||||
out_8(&pm->pmcr1, 24);
|
||||
clrbits_8(&gpio->par_uart0,
|
||||
~(GPIO_PAR_UART0_U0CTS_MASK | GPIO_PAR_UART0_U0RTS_MASK));
|
||||
setbits_8(&gpio->par_uart0,
|
||||
GPIO_PAR_UART0_U0CTS_U4TXD | GPIO_PAR_UART0_U0RTS_U4RXD);
|
||||
break;
|
||||
case 5:
|
||||
/* UART5 */
|
||||
out_8(&pm->pmcr1, 25);
|
||||
clrbits_8(&gpio->par_uart1,
|
||||
~(GPIO_PAR_UART1_U1CTS_MASK | GPIO_PAR_UART1_U1RTS_MASK));
|
||||
setbits_8(&gpio->par_uart1,
|
||||
GPIO_PAR_UART1_U1CTS_U5TXD | GPIO_PAR_UART1_U1RTS_U5RXD);
|
||||
break;
|
||||
case 6:
|
||||
/* UART6 */
|
||||
out_8(&pm->pmcr1, 26);
|
||||
clrbits_8(&gpio->par_uart2,
|
||||
~(GPIO_PAR_UART2_U2CTS_MASK | GPIO_PAR_UART2_U2RTS_MASK));
|
||||
setbits_8(&gpio->par_uart2,
|
||||
GPIO_PAR_UART2_U2CTS_U6TXD | GPIO_PAR_UART2_U2RTS_U6RXD);
|
||||
break;
|
||||
case 7:
|
||||
/* UART7 */
|
||||
out_8(&pm->pmcr1, 27);
|
||||
clrbits_8(&gpio->par_ssi0h, ~GPIO_PAR_SSI0H_RXD_MASK);
|
||||
clrbits_8(&gpio->par_ssi0l, ~GPIO_PAR_SSI0L_BCLK_MASK);
|
||||
setbits_8(&gpio->par_ssi0h, GPIO_PAR_SSI0H_FS_U7TXD);
|
||||
setbits_8(&gpio->par_ssi0l, GPIO_PAR_SSI0L_BCLK_U7RXD);
|
||||
break;
|
||||
case 8:
|
||||
/* UART8 */
|
||||
out_8(&pm->pmcr0, 28);
|
||||
clrbits_8(&gpio->par_cani2c,
|
||||
~(GPIO_PAR_CANI2C_I2C0SCL_MASK | GPIO_PAR_CANI2C_I2C0SDA_MASK));
|
||||
setbits_8(&gpio->par_cani2c,
|
||||
GPIO_PAR_CANI2C_I2C0SCL_U8TXD | GPIO_PAR_CANI2C_I2C0SDA_U8RXD);
|
||||
break;
|
||||
case 9:
|
||||
/* UART9 */
|
||||
out_8(&pm->pmcr1, 29);
|
||||
clrbits_8(&gpio->par_cani2c,
|
||||
~(GPIO_PAR_CANI2C_CAN1TX_MASK | GPIO_PAR_CANI2C_CAN1RX_MASK));
|
||||
setbits_8(&gpio->par_cani2c,
|
||||
GPIO_PAR_CANI2C_CAN1TX_U9TXD | GPIO_PAR_CANI2C_CAN1RX_U9RXD);
|
||||
break;
|
||||
#endif
|
||||
#ifdef CONFIG_MCF5445x
|
||||
case 0:
|
||||
clrbits_8(&gpio->par_uart,
|
||||
GPIO_PAR_UART_U0TXD_U0TXD | GPIO_PAR_UART_U0RXD_U0RXD);
|
||||
|
@ -178,6 +372,7 @@ void uart_port_conf(int port)
|
|||
GPIO_PAR_FECI2C_SCL_U2TXD | GPIO_PAR_FECI2C_SDA_U2RXD);
|
||||
#endif
|
||||
break;
|
||||
#endif /* CONFIG_MCF5445x */
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -187,6 +382,7 @@ int fecpin_setclear(struct eth_device *dev, int setclear)
|
|||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
struct fec_info_s *info = (struct fec_info_s *)dev->priv;
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
if (setclear) {
|
||||
#ifdef CONFIG_SYS_FEC_NO_SHARED_PHY
|
||||
if (info->iobase == CONFIG_SYS_FEC0_IOBASE)
|
||||
|
@ -224,6 +420,21 @@ int fecpin_setclear(struct eth_device *dev, int setclear)
|
|||
#endif
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_MCF5445x */
|
||||
|
||||
#ifdef CONFIG_MCF5441x
|
||||
if (setclear) {
|
||||
out_8(&gpio->par_fec, 0x03);
|
||||
out_8(&gpio->srcr_fec, 0x0F);
|
||||
clrsetbits_8(&gpio->par_simp0h, ~GPIO_PAR_SIMP0H_DAT_MASK,
|
||||
GPIO_PAR_SIMP0H_DAT_GPIO);
|
||||
clrsetbits_8(&gpio->pddr_g, ~GPIO_PDDR_G4_MASK,
|
||||
GPIO_PDDR_G4_OUTPUT);
|
||||
clrbits_8(&gpio->podr_g, ~GPIO_PODR_G4_MASK);
|
||||
|
||||
} else
|
||||
clrbits_8(&gpio->par_fec, ~GPIO_PAR_FEC_FEC_MASK);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
@ -233,10 +444,24 @@ void cfspi_port_conf(void)
|
|||
{
|
||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
out_8(&gpio->par_dspi,
|
||||
GPIO_PAR_DSPI_SIN_SIN |
|
||||
GPIO_PAR_DSPI_SOUT_SOUT |
|
||||
GPIO_PAR_DSPI_SCK_SCK);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCF5441x
|
||||
pm_t *pm = (pm_t *) MMAP_PM;
|
||||
|
||||
out_8(&gpio->par_dspi0,
|
||||
GPIO_PAR_DSPI0_SIN_DSPI0SIN | GPIO_PAR_DSPI0_SOUT_DSPI0SOUT |
|
||||
GPIO_PAR_DSPI0_SCK_DSPI0SCK);
|
||||
out_8(&gpio->srcr_dspiow, 3);
|
||||
|
||||
/* DSPI0 */
|
||||
out_8(&pm->pmcr0, 23);
|
||||
#endif
|
||||
}
|
||||
|
||||
int cfspi_claim_bus(uint bus, uint cs)
|
||||
|
@ -250,6 +475,7 @@ int cfspi_claim_bus(uint bus, uint cs)
|
|||
/* Clear FIFO and resume transfer */
|
||||
clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
switch (cs) {
|
||||
case 0:
|
||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
|
||||
|
@ -272,6 +498,20 @@ int cfspi_claim_bus(uint bus, uint cs)
|
|||
setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCF5441x
|
||||
switch (cs) {
|
||||
case 0:
|
||||
clrbits_8(&gpio->par_dspi0, ~GPIO_PAR_DSPI0_PCS0_MASK);
|
||||
setbits_8(&gpio->par_dspi0, GPIO_PAR_DSPI0_PCS0_DSPI0PCS0);
|
||||
break;
|
||||
case 1:
|
||||
clrbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
|
||||
setbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -284,6 +524,7 @@ void cfspi_release_bus(uint bus, uint cs)
|
|||
/* Clear FIFO */
|
||||
clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
switch (cs) {
|
||||
case 0:
|
||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
|
||||
|
@ -301,5 +542,11 @@ void cfspi_release_bus(uint bus, uint cs)
|
|||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCF5441x
|
||||
if (cs == 1)
|
||||
clrbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -57,8 +57,10 @@ void clock_enter_limp(int lpdiv)
|
|||
/* Round divider down to nearest power of two */
|
||||
for (i = 0, j = lpdiv; j != 1; j >>= 1, i++) ;
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
/* Apply the divider to the system clock */
|
||||
clrsetbits_be16(&ccm->cdr, 0x0f00, CCM_CDR_LPDIV(i));
|
||||
#endif
|
||||
|
||||
/* Enable Limp Mode */
|
||||
setbits_be16(&ccm->misccr, CCM_MISCCR_LIMP);
|
||||
|
@ -81,12 +83,66 @@ void clock_exit_limp(void)
|
|||
;
|
||||
}
|
||||
|
||||
/*
|
||||
* get_clocks() fills in gd->cpu_clock and gd->bus_clk
|
||||
*/
|
||||
int get_clocks(void)
|
||||
#ifdef CONFIG_MCF5441x
|
||||
void setup_5441x_clocks(void)
|
||||
{
|
||||
ccm_t *ccm = (ccm_t *)MMAP_CCM;
|
||||
pll_t *pll = (pll_t *)MMAP_PLL;
|
||||
int temp, vco = 0, bootmod_ccr, pdr;
|
||||
|
||||
bootmod_ccr = (in_be16(&ccm->ccr) & CCM_CCR_BOOTMOD) >> 14;
|
||||
|
||||
switch (bootmod_ccr) {
|
||||
case 0:
|
||||
out_be32(&pll->pcr, 0x00000013);
|
||||
out_be32(&pll->pdr, 0x00e70c61);
|
||||
clock_exit_limp();
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
|
||||
/*Change frequency for Modelo SER1 USB host*/
|
||||
#ifdef CONFIG_LOW_MCFCLK
|
||||
temp = in_be32(&pll->pcr);
|
||||
temp &= ~0x3f;
|
||||
temp |= 5;
|
||||
out_be32(&pll->pcr, temp);
|
||||
|
||||
temp = in_be32(&pll->pdr);
|
||||
temp &= ~0x001f0000;
|
||||
temp |= 0x00040000;
|
||||
out_be32(&pll->pdr, temp);
|
||||
__asm__("tpf");
|
||||
#endif
|
||||
|
||||
setbits_be16(&ccm->misccr2, 0x02);
|
||||
|
||||
vco = ((in_be32(&pll->pcr) & PLL_CR_FBKDIV_BITS) + 1) *
|
||||
CONFIG_SYS_INPUT_CLKSRC;
|
||||
gd->vco_clk = vco;
|
||||
|
||||
gd->inp_clk = CONFIG_SYS_INPUT_CLKSRC; /* Input clock */
|
||||
|
||||
pdr = in_be32(&pll->pdr);
|
||||
temp = (pdr & PLL_DR_OUTDIV1_BITS) + 1;
|
||||
gd->cpu_clk = vco / temp; /* cpu clock */
|
||||
gd->flb_clk = vco / temp; /* FlexBus clock */
|
||||
gd->flb_clk >>= 1;
|
||||
if (in_be16(ccm->misccr2) & 2) /* fsys/4 */
|
||||
gd->flb_clk >>= 1;
|
||||
|
||||
temp = ((pdr & PLL_DR_OUTDIV2_BITS) >> 5) + 1;
|
||||
gd->bus_clk = vco / temp; /* bus clock */
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
void setup_5445x_clocks(void)
|
||||
{
|
||||
ccm_t *ccm = (ccm_t *)MMAP_CCM;
|
||||
pll_t *pll = (pll_t *)MMAP_PLL;
|
||||
int pllmult_nopci[] = { 20, 10, 24, 18, 12, 6, 16, 8 };
|
||||
|
@ -217,6 +273,22 @@ int get_clocks(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifdef CONFIG_FSL_I2C
|
||||
gd->i2c1_clk = gd->bus_clk;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
/* get_clocks() fills in gd->cpu_clock and gd->bus_clk */
|
||||
int get_clocks(void)
|
||||
{
|
||||
#ifdef CONFIG_MCF5441x
|
||||
setup_5441x_clocks();
|
||||
#endif
|
||||
#ifdef CONFIG_MCF5445x
|
||||
setup_5445x_clocks();
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FSL_I2C
|
||||
gd->i2c1_clk = gd->bus_clk;
|
||||
#endif
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
* Copyright (C) 2003 Josef Baumgartner <josef.baumgartner@telex.de>
|
||||
* Based on code from Bernhard Kuhn <bkuhn@metrowerks.com>
|
||||
*
|
||||
* Copyright 2010-2012 Freescale Semiconductor, Inc.
|
||||
* TsiChung Liew (Tsi-Chung.Liew@freescale.com)
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
|
@ -21,8 +24,10 @@
|
|||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm-offsets.h>
|
||||
#include <config.h>
|
||||
#include <timestamp.h>
|
||||
#include "version.h"
|
||||
#include <asm/cache.h>
|
||||
|
||||
|
@ -43,8 +48,9 @@
|
|||
addl #60,%sp; /* space for 15 regs */ \
|
||||
rte;
|
||||
|
||||
#if defined(CONFIG_CF_SBF)
|
||||
#if defined(CONFIG_SERIAL_BOOT)
|
||||
#define ASM_DRAMINIT (asm_dram_init - CONFIG_SYS_TEXT_BASE + CONFIG_SYS_INIT_RAM_ADDR)
|
||||
#define ASM_DRAMINIT_N (asm_dram_init - TEXT_BASE)
|
||||
#define ASM_SBF_IMG_HDR (asm_sbf_img_hdr - CONFIG_SYS_TEXT_BASE + CONFIG_SYS_INIT_RAM_ADDR)
|
||||
#endif
|
||||
|
||||
|
@ -55,10 +61,15 @@
|
|||
* These vectors are to catch any un-intended traps.
|
||||
*/
|
||||
_vectors:
|
||||
#if defined(CONFIG_CF_SBF)
|
||||
#if defined(CONFIG_SERIAL_BOOT)
|
||||
|
||||
INITSP: .long 0 /* Initial SP */
|
||||
#ifdef CONFIG_CF_SBF
|
||||
INITPC: .long ASM_DRAMINIT /* Initial PC */
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_NAND_BOOT
|
||||
INITPC: .long ASM_DRAMINIT_N /* Initial PC */
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
|
@ -95,7 +106,7 @@ vector1D: .long _FAULT /* Autovector Level 5 */
|
|||
vector1E: .long _FAULT /* Autovector Level 6 */
|
||||
vector1F: .long _FAULT /* Autovector Level 7 */
|
||||
|
||||
#if !defined(CONFIG_CF_SBF)
|
||||
#if !defined(CONFIG_SERIAL_BOOT)
|
||||
|
||||
/* TRAP #0 - #15 */
|
||||
vector20_2F:
|
||||
|
@ -138,16 +149,26 @@ vector192_255:
|
|||
.long _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT, _FAULT
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CF_SBF)
|
||||
#if defined(CONFIG_SERIAL_BOOT)
|
||||
/* Image header: chksum 4 bytes, len 4 bytes, img dest 4 bytes */
|
||||
asm_sbf_img_hdr:
|
||||
.long 0x00000000 /* checksum, not yet implemented */
|
||||
.long 0x00030000 /* image length */
|
||||
.long 0x00040000 /* image length */
|
||||
.long CONFIG_SYS_TEXT_BASE /* image to be relocated at */
|
||||
|
||||
asm_dram_init:
|
||||
move.w #0x2700,%sr /* Mask off Interrupt */
|
||||
|
||||
#ifdef CONFIG_SYS_NAND_BOOT
|
||||
/* for assembly stack */
|
||||
move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_CTRL), %d0
|
||||
movec %d0, %RAMBAR1
|
||||
|
||||
move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET), %sp
|
||||
clr.l %sp@-
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_CF_SBF
|
||||
move.l #CONFIG_SYS_INIT_RAM_ADDR, %d0
|
||||
movec %d0, %VBR
|
||||
|
||||
|
@ -180,7 +201,90 @@ asm_dram_init:
|
|||
move.l #(CONFIG_SYS_CS0_CTRL), (%a1)
|
||||
move.l #0xFC008004, %a1
|
||||
move.l #(CONFIG_SYS_CS0_MASK), (%a1)
|
||||
#endif /* CONFIG_CF_SBF */
|
||||
|
||||
#ifdef CONFIG_MCF5441x
|
||||
/* TC: enable all peripherals,
|
||||
in the future only enable certain peripherals */
|
||||
move.l #0xFC04002D, %a1
|
||||
|
||||
#if defined(CONFIG_CF_SBF)
|
||||
move.b #23, (%a1) /* dspi */
|
||||
#endif
|
||||
move.b #46, (%a1) /* DDR */
|
||||
|
||||
/* slew settings */
|
||||
move.l #0xEC094060, %a1
|
||||
move.b #0, (%a1)
|
||||
|
||||
/* use vco instead of cpu*2 clock for ddr clock */
|
||||
move.l #0xEC09001A, %a1
|
||||
move.w #0xE01D, (%a1)
|
||||
|
||||
/* DDR settings */
|
||||
move.l #0xFC0B8180, %a1
|
||||
move.l #0x00000000, (%a1)
|
||||
move.l #0x40000000, (%a1)
|
||||
|
||||
move.l #0xFC0B81AC, %a1
|
||||
move.l #0x01030203, (%a1)
|
||||
|
||||
move.l #0xFC0B8000, %a1
|
||||
move.l #0x01010101, (%a1)+ /* 0x00 */
|
||||
move.l #0x00000101, (%a1)+ /* 0x04 */
|
||||
move.l #0x01010100, (%a1)+ /* 0x08 */
|
||||
move.l #0x01010000, (%a1)+ /* 0x0C */
|
||||
move.l #0x00010101, (%a1)+ /* 0x10 */
|
||||
move.l #0xFC0B8018, %a1
|
||||
move.l #0x00010100, (%a1)+ /* 0x18 */
|
||||
move.l #0x00000001, (%a1)+ /* 0x1C */
|
||||
move.l #0x01000001, (%a1)+ /* 0x20 */
|
||||
move.l #0x00000100, (%a1)+ /* 0x24 */
|
||||
move.l #0x00010001, (%a1)+ /* 0x28 */
|
||||
move.l #0x00000200, (%a1)+ /* 0x2C */
|
||||
move.l #0x01000002, (%a1)+ /* 0x30 */
|
||||
move.l #0x00000000, (%a1)+ /* 0x34 */
|
||||
move.l #0x00000100, (%a1)+ /* 0x38 */
|
||||
move.l #0x02000100, (%a1)+ /* 0x3C */
|
||||
move.l #0x02000407, (%a1)+ /* 0x40 */
|
||||
move.l #0x02030007, (%a1)+ /* 0x44 */
|
||||
move.l #0x02000100, (%a1)+ /* 0x48 */
|
||||
move.l #0x0A030203, (%a1)+ /* 0x4C */
|
||||
move.l #0x00020708, (%a1)+ /* 0x50 */
|
||||
move.l #0x00050008, (%a1)+ /* 0x54 */
|
||||
move.l #0x04030002, (%a1)+ /* 0x58 */
|
||||
move.l #0x00000004, (%a1)+ /* 0x5C */
|
||||
move.l #0x020A0000, (%a1)+ /* 0x60 */
|
||||
move.l #0x0C00000E, (%a1)+ /* 0x64 */
|
||||
move.l #0x00002004, (%a1)+ /* 0x68 */
|
||||
move.l #0x00000000, (%a1)+ /* 0x6C */
|
||||
move.l #0x00100010, (%a1)+ /* 0x70 */
|
||||
move.l #0x00100010, (%a1)+ /* 0x74 */
|
||||
move.l #0x00000000, (%a1)+ /* 0x78 */
|
||||
move.l #0x07990000, (%a1)+ /* 0x7C */
|
||||
move.l #0xFC0B80A0, %a1
|
||||
move.l #0x00000000, (%a1)+ /* 0xA0 */
|
||||
move.l #0x00C80064, (%a1)+ /* 0xA4 */
|
||||
move.l #0x44520002, (%a1)+ /* 0xA8 */
|
||||
move.l #0x00C80023, (%a1)+ /* 0xAC */
|
||||
move.l #0xFC0B80B4, %a1
|
||||
move.l #0x0000C350, (%a1) /* 0xB4 */
|
||||
move.l #0xFC0B80E0, %a1
|
||||
move.l #0x04000000, (%a1)+ /* 0xE0 */
|
||||
move.l #0x03000304, (%a1)+ /* 0xE4 */
|
||||
move.l #0x40040000, (%a1)+ /* 0xE8 */
|
||||
move.l #0xC0004004, (%a1)+ /* 0xEC */
|
||||
move.l #0x0642C000, (%a1)+ /* 0xF0 */
|
||||
move.l #0x00000642, (%a1)+ /* 0xF4 */
|
||||
move.l #0xFC0B8024, %a1
|
||||
tpf
|
||||
move.l #0x01000100, (%a1) /* 0x24 */
|
||||
|
||||
move.l #0x2000, %d1
|
||||
jsr asm_delay
|
||||
#endif /* CONFIG_MCF5441x */
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
/* Dram Initialization a1, a2, and d0 */
|
||||
/* mscr sdram */
|
||||
move.l #0xFC0A4074, %a1
|
||||
|
@ -203,7 +307,9 @@ dramsz_loop:
|
|||
add.l #1, %d1
|
||||
cmp.l #1, %d2
|
||||
bne dramsz_loop
|
||||
|
||||
#ifdef CONFIG_SYS_NAND_BOOT
|
||||
beq asm_nand_chk_status
|
||||
#endif
|
||||
/* SDRAM Chip 0 and 1 */
|
||||
move.l #(CONFIG_SYS_SDRAM_BASE), (%a1)
|
||||
or.l %d1, (%a1)
|
||||
|
@ -275,7 +381,9 @@ dramsz_loop:
|
|||
|
||||
move.l #2000, %d1
|
||||
jsr asm_delay
|
||||
#endif /* CONFIG_MCF5445x */
|
||||
|
||||
#ifdef CONFIG_CF_SBF
|
||||
/*
|
||||
* DSPI Initialization
|
||||
* a0 - general, sram - 0x80008000 - 32, see M54455EVB.h
|
||||
|
@ -286,15 +394,28 @@ dramsz_loop:
|
|||
*/
|
||||
/* Enable pins for DSPI mode - chip-selects are enabled later */
|
||||
asm_dspi_init:
|
||||
#ifdef CONFIG_MCF5441x
|
||||
move.l #0xEC09404E, %a1
|
||||
move.l #0xEC09404F, %a2
|
||||
move.b #0xFF, (%a1)
|
||||
move.b #0x80, (%a2)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
move.l #0xFC0A4063, %a0
|
||||
move.b #0x7F, (%a0)
|
||||
|
||||
#endif
|
||||
/* Configure DSPI module */
|
||||
move.l #0xFC05C000, %a0
|
||||
move.l #0x80FF0C00, (%a0) /* Master, clear TX/RX FIFO */
|
||||
|
||||
move.l #0xFC05C00C, %a0
|
||||
#ifdef CONFIG_MCF5441x
|
||||
move.l #0x3E000016, (%a0)
|
||||
#endif
|
||||
#ifdef CONFIG_MCF5445x
|
||||
move.l #0x3E000011, (%a0)
|
||||
#endif
|
||||
|
||||
move.l #0xFC05C034, %a2 /* dtfr */
|
||||
move.l #0xFC05C03B, %a3 /* drfr */
|
||||
|
@ -379,19 +500,148 @@ asm_dspi_rd_status:
|
|||
|
||||
move.b (%a3), %d1
|
||||
rts
|
||||
#endif /* CONFIG_CF_SBF */
|
||||
|
||||
#ifdef CONFIG_SYS_NAND_BOOT
|
||||
/* copy 4 boot pages to dram as soon as possible */
|
||||
/* each page is 996 bytes (1056 total with 60 ECC bytes */
|
||||
move.l #0x00000000, %a1 /* src */
|
||||
move.l #TEXT_BASE, %a2 /* dst */
|
||||
move.l #0x3E0, %d0 /* sz in long */
|
||||
|
||||
asm_boot_nand_copy:
|
||||
move.l (%a1)+, (%a2)+
|
||||
subq.l #1, %d0
|
||||
bne asm_boot_nand_copy
|
||||
|
||||
/* jump to memory and execute */
|
||||
move.l #(asm_nand_init), %a0
|
||||
jmp (%a0)
|
||||
|
||||
asm_nand_init:
|
||||
/* exit nand boot-mode */
|
||||
move.l #0xFC0FFF30, %a1
|
||||
or.l #0x00000040, %d1
|
||||
move.l %d1, (%a1)
|
||||
|
||||
/* initialize general use internal ram */
|
||||
move.l #0, %d0
|
||||
move.l #(CACR_STATUS), %a1 /* CACR */
|
||||
move.l #(ICACHE_STATUS), %a2 /* icache */
|
||||
move.l #(DCACHE_STATUS), %a3 /* dcache */
|
||||
move.l %d0, (%a1)
|
||||
move.l %d0, (%a2)
|
||||
move.l %d0, (%a3)
|
||||
|
||||
/* invalidate and disable cache */
|
||||
move.l #0x01004100, %d0 /* Invalidate cache cmd */
|
||||
movec %d0, %CACR /* Invalidate cache */
|
||||
move.l #0, %d0
|
||||
movec %d0, %ACR0
|
||||
movec %d0, %ACR1
|
||||
movec %d0, %ACR2
|
||||
movec %d0, %ACR3
|
||||
|
||||
/* Must disable global address */
|
||||
move.l #0xFC008000, %a1
|
||||
move.l #(CONFIG_SYS_CS0_BASE), (%a1)
|
||||
move.l #0xFC008008, %a1
|
||||
move.l #(CONFIG_SYS_CS0_CTRL), (%a1)
|
||||
move.l #0xFC008004, %a1
|
||||
move.l #(CONFIG_SYS_CS0_MASK), (%a1)
|
||||
|
||||
/* NAND port configuration */
|
||||
move.l #0xEC094048, %a1
|
||||
move.b #0xFD, (%a1)+
|
||||
move.b #0x5F, (%a1)+
|
||||
move.b #0x04, (%a1)+
|
||||
|
||||
/* reset nand */
|
||||
move.l #0xFC0FFF38, %a1 /* isr */
|
||||
move.l #0x000e0000, (%a1)
|
||||
move.l #0xFC0FFF08, %a2
|
||||
move.l #0x00000000, (%a2)+ /* car */
|
||||
move.l #0x11000000, (%a2)+ /* rar */
|
||||
move.l #0x00000000, (%a2)+ /* rpt */
|
||||
move.l #0x00000000, (%a2)+ /* rai */
|
||||
move.l #0xFC0FFF2c, %a2 /* cfg */
|
||||
move.l #0x00000000, (%a2)+ /* secsz */
|
||||
move.l #0x000e0681, (%a2)+
|
||||
move.l #0xFC0FFF04, %a2 /* cmd2 */
|
||||
move.l #0xFF404001, (%a2)
|
||||
move.l #0x000e0000, (%a1)
|
||||
|
||||
move.l #0x2000, %d1
|
||||
jsr asm_delay
|
||||
|
||||
/* setup nand */
|
||||
move.l #0xFC0FFF00, %a1
|
||||
move.l #0x30700000, (%a1)+ /* cmd1 */
|
||||
move.l #0x007EF000, (%a1)+ /* cmd2 */
|
||||
|
||||
move.l #0xFC0FFF2C, %a1
|
||||
move.l #0x00000841, (%a1)+ /* secsz */
|
||||
move.l #0x000e0681, (%a1)+ /* cfg */
|
||||
|
||||
move.l #100, %d4 /* 100 pages ~200KB */
|
||||
move.l #4, %d2 /* start at 4 */
|
||||
move.l #0xFC0FFF04, %a0 /* cmd2 */
|
||||
move.l #0xFC0FFF0C, %a1 /* rar */
|
||||
move.l #(TEXT_BASE + 0xF80), %a2 /* dst */
|
||||
|
||||
asm_nand_read:
|
||||
move.l #0x11000000, %d0 /* rar */
|
||||
or.l %d2, %d0
|
||||
move.l %d0, (%a1)
|
||||
add.l #1, %d2
|
||||
|
||||
move.l (%a0), %d0 /* cmd2 */
|
||||
or.l #1, %d0
|
||||
move.l %d0, (%a0)
|
||||
|
||||
move.l #0x200, %d1
|
||||
jsr asm_delay
|
||||
|
||||
asm_nand_chk_status:
|
||||
move.l #0xFC0FFF38, %a4 /* isr */
|
||||
move.l (%a4), %d0
|
||||
and.l #0x40000000, %d0
|
||||
tst.l %d0
|
||||
beq asm_nand_chk_status
|
||||
|
||||
move.l #0xFC0FFF38, %a4 /* isr */
|
||||
move.l (%a4), %d0
|
||||
or.l #0x000E0000, %d0
|
||||
move.l %d0, (%a4)
|
||||
|
||||
move.l #0x200, %d3
|
||||
move.l #0xFC0FC000, %a3 /* buf 1 */
|
||||
asm_nand_copy:
|
||||
move.l (%a3)+, (%a2)+
|
||||
subq.l #1, %d3
|
||||
bgt asm_nand_copy
|
||||
|
||||
subq.l #1, %d4
|
||||
bgt asm_nand_read
|
||||
|
||||
/* jump to memory and execute */
|
||||
move.l #(TEXT_BASE + 0x400), %a0
|
||||
jmp (%a0)
|
||||
|
||||
#endif /* CONFIG_SYS_NAND_BOOT */
|
||||
|
||||
asm_delay:
|
||||
nop
|
||||
subq.l #1, %d1
|
||||
bne asm_delay
|
||||
rts
|
||||
#endif /* CONFIG_CF_SBF */
|
||||
#endif /* CONFIG_CF_SBF || CONFIG_NAND_U_BOOT */
|
||||
|
||||
.text
|
||||
. = 0x400
|
||||
.globl _start
|
||||
_start:
|
||||
#if !defined(CONFIG_CF_SBF)
|
||||
#if !defined(CONFIG_SERIAL_BOOT)
|
||||
nop
|
||||
nop
|
||||
move.w #0x2700,%sr /* Mask off Interrupt */
|
||||
|
@ -418,12 +668,15 @@ _start:
|
|||
movec %d0, %ACR1
|
||||
movec %d0, %ACR2
|
||||
movec %d0, %ACR3
|
||||
#else
|
||||
move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_CTRL), %d0
|
||||
movec %d0, %RAMBAR1
|
||||
#endif
|
||||
|
||||
/* set stackpointer to end of internal ram to get some stackspace for
|
||||
the first c-code */
|
||||
move.l #(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET), %sp
|
||||
clr.l %sp@-
|
||||
#endif
|
||||
|
||||
move.l #__got_start, %a5 /* put relocation table address to a5 */
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* ColdFire cache
|
||||
*
|
||||
* Copyright (C) 2004-2010 Freescale Semiconductor, Inc.
|
||||
* Copyright 2004-2012 Freescale Semiconductor, Inc.
|
||||
* TsiChung Liew (Tsi-Chung.Liew@freescale.com)
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
|
@ -37,10 +37,9 @@
|
|||
|
||||
#if defined(CONFIG_MCF547x_8x) || defined(CONFIG_MCF5445x)
|
||||
#define CONFIG_CF_V4
|
||||
#if defined(CONFIG_MCF5441x)
|
||||
#elif defined(CONFIG_MCF5441x)
|
||||
#define CONFIG_CF_V4E /* Four Extra ACRn */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* ***** CACR ***** */
|
||||
/* V2 Core */
|
||||
|
@ -87,7 +86,7 @@
|
|||
#endif /* CONFIG_CF_V3 */
|
||||
|
||||
/* V4 Core */
|
||||
#ifdef CONFIG_CF_V4
|
||||
#if defined(CONFIG_CF_V4) || defined(CONFIG_CF_V4E)
|
||||
|
||||
#define CF_CACR_DEC (1 << 31)
|
||||
#define CF_CACR_DW (1 << 30)
|
||||
|
@ -113,7 +112,7 @@
|
|||
#define CF_CACR_IDSP (1 << 7)
|
||||
#define CF_CACR_EUSP (1 << 5)
|
||||
|
||||
#ifdef CONFIG_MCF5445x
|
||||
#if defined(CONFIG_MCF5445x) || defined(CONFIG_MCF5441x)
|
||||
#define CF_CACR_IVO (1 << 20)
|
||||
#define CF_CACR_SPA (1 << 14)
|
||||
#else
|
||||
|
@ -148,7 +147,7 @@
|
|||
#endif /* CONFIG_CF_V2 */
|
||||
|
||||
/* V4 Core */
|
||||
#ifdef CONFIG_CF_V4
|
||||
#if defined(CONFIG_CF_V4) || defined(CONFIG_CF_V4E)
|
||||
#define CF_ACR_AMM (1 << 10)
|
||||
#define CF_ACR_SP (1 << 3)
|
||||
#endif /* CONFIG_CF_V4 */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* ColdFire Internal Memory Map and Defines
|
||||
*
|
||||
* Copyright (C) 2004-2007 Freescale Semiconductor, Inc.
|
||||
* Copyright 2004-2012 Freescale Semiconductor, Inc.
|
||||
* TsiChung Liew (Tsi-Chung.Liew@freescale.com)
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
|
@ -318,6 +318,47 @@
|
|||
#define CONFIG_SYS_NUM_IRQS (128)
|
||||
#endif /* CONFIG_M5329 && CONFIG_M5373 */
|
||||
|
||||
#if defined(CONFIG_M54418)
|
||||
#include <asm/immap_5441x.h>
|
||||
#include <asm/m5441x.h>
|
||||
|
||||
#define CONFIG_SYS_FEC0_IOBASE (MMAP_FEC0)
|
||||
#define CONFIG_SYS_FEC1_IOBASE (MMAP_FEC1)
|
||||
|
||||
#if (CONFIG_SYS_UART_PORT < 4)
|
||||
#define CONFIG_SYS_UART_BASE (MMAP_UART0 + \
|
||||
(CONFIG_SYS_UART_PORT * 0x4000))
|
||||
#else
|
||||
#define CONFIG_SYS_UART_BASE (MMAP_UART4 + \
|
||||
((CONFIG_SYS_UART_PORT - 4) * 0x4000))
|
||||
#endif
|
||||
|
||||
#define MMAP_DSPI MMAP_DSPI0
|
||||
#define CONFIG_SYS_MCFRTC_BASE (MMAP_RTC)
|
||||
|
||||
/* Timer */
|
||||
#ifdef CONFIG_MCFTMR
|
||||
#define CONFIG_SYS_UDELAY_BASE (MMAP_DTMR0)
|
||||
#define CONFIG_SYS_TMR_BASE (MMAP_DTMR1)
|
||||
#define CONFIG_SYS_TMRPND_REG (((int0_t *)(CONFIG_SYS_INTR_BASE))->iprh0)
|
||||
#define CONFIG_SYS_TMRINTR_NO (INT0_HI_DTMR1)
|
||||
#define CONFIG_SYS_TMRINTR_MASK (INTC_IPRH_INT33)
|
||||
#define CONFIG_SYS_TMRINTR_PEND (CONFIG_SYS_TMRINTR_MASK)
|
||||
#define CONFIG_SYS_TMRINTR_PRI (6)
|
||||
#define CONFIG_SYS_TIMER_PRESCALER (((gd->bus_clk / 1000000) - 1) << 8)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MCFPIT
|
||||
#define CONFIG_SYS_UDELAY_BASE (MMAP_PIT0)
|
||||
#define CONFIG_SYS_PIT_BASE (MMAP_PIT1)
|
||||
#define CONFIG_SYS_PIT_PRESCALE (6)
|
||||
#endif
|
||||
|
||||
#define CONFIG_SYS_INTR_BASE (MMAP_INTC0)
|
||||
#define CONFIG_SYS_NUM_IRQS (128)
|
||||
|
||||
#endif /* CONFIG_M54418 */
|
||||
|
||||
#if defined(CONFIG_M54451) || defined(CONFIG_M54455)
|
||||
#include <asm/immap_5445x.h>
|
||||
#include <asm/m5445x.h>
|
||||
|
|
387
arch/m68k/include/asm/immap_5441x.h
Normal file
387
arch/m68k/include/asm/immap_5441x.h
Normal file
|
@ -0,0 +1,387 @@
|
|||
/*
|
||||
* MCF5441x Internal Memory Map
|
||||
*
|
||||
* Copyright 2010-2012 Freescale Semiconductor, Inc.
|
||||
* TsiChung Liew (Tsi-Chung.Liew@freescale.com)
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#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__ */
|
887
arch/m68k/include/asm/m5441x.h
Normal file
887
arch/m68k/include/asm/m5441x.h
Normal file
|
@ -0,0 +1,887 @@
|
|||
/*
|
||||
* MCF5441X Internal Memory Map
|
||||
*
|
||||
* Copyright 2010-2012 Freescale Semiconductor, Inc.
|
||||
* TsiChung Liew (Tsi-Chung.Liew@freescale.com)
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __MCF5441X__
|
||||
#define __MCF5441X__
|
||||
|
||||
/* Interrupt Controller (INTC) */
|
||||
#define INT0_LO_RSVD0 (0)
|
||||
#define INT0_LO_EPORT1 (1)
|
||||
#define INT0_LO_EPORT2 (2)
|
||||
#define INT0_LO_EPORT3 (3)
|
||||
#define INT0_LO_EPORT4 (4)
|
||||
#define INT0_LO_EPORT5 (5)
|
||||
#define INT0_LO_EPORT6 (6)
|
||||
#define INT0_LO_EPORT7 (7)
|
||||
#define INT0_LO_EDMA_00 (8)
|
||||
#define INT0_LO_EDMA_01 (9)
|
||||
#define INT0_LO_EDMA_02 (10)
|
||||
#define INT0_LO_EDMA_03 (11)
|
||||
#define INT0_LO_EDMA_04 (12)
|
||||
#define INT0_LO_EDMA_05 (13)
|
||||
#define INT0_LO_EDMA_06 (14)
|
||||
#define INT0_LO_EDMA_07 (15)
|
||||
#define INT0_LO_EDMA_08 (16)
|
||||
#define INT0_LO_EDMA_09 (17)
|
||||
#define INT0_LO_EDMA_10 (18)
|
||||
#define INT0_LO_EDMA_11 (19)
|
||||
#define INT0_LO_EDMA_12 (20)
|
||||
#define INT0_LO_EDMA_13 (21)
|
||||
#define INT0_LO_EDMA_14 (22)
|
||||
#define INT0_LO_EDMA_15 (23)
|
||||
#define INT0_LO_EDMA_ERR (24)
|
||||
#define INT0_LO_SCM (25)
|
||||
#define INT0_LO_UART0 (26)
|
||||
#define INT0_LO_UART1 (27)
|
||||
#define INT0_LO_UART2 (28)
|
||||
#define INT0_LO_UART3 (29)
|
||||
#define INT0_LO_I2C0 (30)
|
||||
#define INT0_LO_DSPI0 (31)
|
||||
#define INT0_HI_DTMR0 (32)
|
||||
#define INT0_HI_DTMR1 (33)
|
||||
#define INT0_HI_DTMR2 (34)
|
||||
#define INT0_HI_DTMR3 (35)
|
||||
#define INT0_HI_MACNET0_TXF (36)
|
||||
#define INT0_HI_MACNET0_TXB (37)
|
||||
#define INT0_HI_MACNET0_UN (38)
|
||||
#define INT0_HI_MACNET0_RL (39)
|
||||
#define INT0_HI_MACNET0_RXF (40)
|
||||
#define INT0_HI_MACNET0_RXB (41)
|
||||
#define INT0_HI_MACNET0_MII (42)
|
||||
#define INT0_HI_MACNET0_LC (43)
|
||||
/* not used 44 */
|
||||
#define INT0_HI_MACNET0_GRA (45)
|
||||
#define INT0_HI_MACNET0_EBERR (46)
|
||||
#define INT0_HI_MACNET0_BABT (47)
|
||||
#define INT0_HI_MACNET0_BABR (48)
|
||||
#define INT0_HI_MACNET1_TXF (49)
|
||||
#define INT0_HI_MACNET1_TXB (50)
|
||||
#define INT0_HI_MACNET1_UN (51)
|
||||
#define INT0_HI_MACNET1_RL (52)
|
||||
#define INT0_HI_MACNET1_RXF (53)
|
||||
#define INT0_HI_MACNET1_RXB (54)
|
||||
#define INT0_HI_MACNET1_MII (55)
|
||||
#define INT0_HI_MACNET1_LC (56)
|
||||
/* not used 57 */
|
||||
#define INT0_HI_MACNET1_GRA (58)
|
||||
#define INT0_HI_MACNET1_EBERR (59)
|
||||
#define INT0_HI_MACNET1_BABT (60)
|
||||
#define INT0_HI_MACNET1_BABR (61)
|
||||
#define INT0_HI_SCMIR (62)
|
||||
#define INT0_HI_OW (63)
|
||||
|
||||
#define INT1_LO_CAN0_IFG (0)
|
||||
#define INT1_LO_CAN0_BOFF (1)
|
||||
/* not used 2 */
|
||||
#define INT1_LO_CAN0_TXRXWRN (3)
|
||||
#define INT1_LO_CAN1_IFG (4)
|
||||
#define INT1_LO_CAN1_BOFF (5)
|
||||
/* not used 6 */
|
||||
#define INT1_LO_CAN1_TXRXWRN (7)
|
||||
#define INT1_LO_EDMA_16 (8)
|
||||
#define INT1_LO_EDMA_17 (9)
|
||||
#define INT1_LO_EDMA_18 (10)
|
||||
#define INT1_LO_EDMA_19 (11)
|
||||
#define INT1_LO_EDMA_20 (12)
|
||||
#define INT1_LO_EDMA_21 (13)
|
||||
#define INT1_LO_EDMA_22 (14)
|
||||
#define INT1_LO_EDMA_23 (15)
|
||||
#define INT1_LO_EDMA_24 (16)
|
||||
#define INT1_LO_EDMA_25 (17)
|
||||
#define INT1_LO_EDMA_26 (18)
|
||||
#define INT1_LO_EDMA_27 (19)
|
||||
#define INT1_LO_EDMA_28 (20)
|
||||
#define INT1_LO_EDMA_29 (21)
|
||||
#define INT1_LO_EDMA_30 (22)
|
||||
#define INT1_LO_EDMA_31 (23)
|
||||
#define INT1_LO_EDMA_32 (24)
|
||||
#define INT1_LO_EDMA_33 (25)
|
||||
#define INT1_LO_EDMA_34 (26)
|
||||
#define INT1_LO_EDMA_35 (27)
|
||||
#define INT1_LO_EDMA_36 (28)
|
||||
#define INT1_LO_EDMA_37 (29)
|
||||
#define INT1_LO_EDMA_38 (30)
|
||||
#define INT1_LO_EDMA_39 (31)
|
||||
#define INT1_LO_EDMA_40 (32)
|
||||
#define INT1_HI_EDMA_41 (33)
|
||||
#define INT1_HI_EDMA_42 (34)
|
||||
#define INT1_HI_EDMA_43 (35)
|
||||
#define INT1_HI_EDMA_44 (36)
|
||||
#define INT1_HI_EDMA_45 (37)
|
||||
#define INT1_HI_EDMA_46 (38)
|
||||
#define INT1_HI_EDMA_47 (39)
|
||||
#define INT1_HI_EDMA_48 (40)
|
||||
#define INT1_HI_EDMA_49 (41)
|
||||
#define INT1_HI_EDMA_50 (42)
|
||||
#define INT1_HI_EDMA_51 (43)
|
||||
#define INT1_HI_EDMA_52 (44)
|
||||
#define INT1_HI_EDMA_53 (45)
|
||||
#define INT1_HI_EDMA_54 (46)
|
||||
#define INT1_HI_EDMA_55 (47)
|
||||
#define INT1_HI_UART4 (48)
|
||||
#define INT1_HI_UART5 (49)
|
||||
#define INT1_HI_UART6 (50)
|
||||
#define INT1_HI_UART7 (51)
|
||||
#define INT1_HI_UART8 (52)
|
||||
#define INT1_HI_UART9 (53)
|
||||
#define INT1_HI_DSPI1 (54)
|
||||
#define INT1_HI_DSPI2 (55)
|
||||
#define INT1_HI_DSPI3 (56)
|
||||
#define INT1_HI_I2C1 (57)
|
||||
#define INT1_HI_I2C2 (58)
|
||||
#define INT1_HI_I2C3 (59)
|
||||
#define INT1_HI_I2C4 (60)
|
||||
#define INT1_HI_I2C5 (61)
|
||||
|
||||
#define INT2_LO_EDMA56_63 (0)
|
||||
#define INT2_LO_PWM_SM0SR_CF (1)
|
||||
#define INT2_LO_PWM_SM1SR_CF (2)
|
||||
#define INT2_LO_PWM_SM2SR_CF (3)
|
||||
#define INT2_LO_PWM_SM3SR_CF (4)
|
||||
#define INT2_LO_PWM_SM0SR_RF (5)
|
||||
#define INT2_LO_PWM_SM1SR_RF (6)
|
||||
#define INT2_LO_PWM_SM2SR_RF (7)
|
||||
#define INT2_LO_PWM_SM3SR_RF (8)
|
||||
#define INT2_LO_PWM_FSR (9)
|
||||
#define INT2_LO_PWM_SMSR_REF (10)
|
||||
#define INT2_LO_PLL_SR_LOCF (11)
|
||||
#define INT2_LO_PLL_SR_LOLF (12)
|
||||
#define INT2_LO_PIT0_PIF (13)
|
||||
#define INT2_LO_PIT1_PIF (14)
|
||||
#define INT2_LO_PIT2_PIF (15)
|
||||
#define INT2_LO_PIT3_PIF (16)
|
||||
#define INT2_LO_USBOTG_USBSTS (17)
|
||||
#define INT2_LO_USBH_USBSTS (18)
|
||||
/* not used 19-20 */
|
||||
#define INT2_LO_SSI0 (21)
|
||||
#define INT2_LO_SSI1 (22)
|
||||
#define INT2_LO_NFC (23)
|
||||
/* not used 24-25 */
|
||||
#define INT2_LO_RTC (26)
|
||||
#define INT2_LO_CCM_UOCSR (27)
|
||||
#define INT2_LO_RNG_EI (28)
|
||||
#define INT2_LO_SIM1_DATA (29)
|
||||
#define INT2_LO_SIM1 (30)
|
||||
#define INT2_LO_SDHC (31)
|
||||
/* not used 32-37 */
|
||||
#define INT2_HI_L2SW_BERR (38)
|
||||
#define INT2_HI_L2SW_RXB (39)
|
||||
#define INT2_HI_L2SW_RXF (40)
|
||||
#define INT2_HI_L2SW_TXB (41)
|
||||
#define INT2_HI_L2SW_TXF (42)
|
||||
#define INT2_HI_L2SW_QM (43)
|
||||
#define INT2_HI_L2SW_OD0 (44)
|
||||
#define INT2_HI_L2SW_OD1 (45)
|
||||
#define INT2_HI_L2SW_OD2 (46)
|
||||
#define INT2_HI_L2SW_LRN (47)
|
||||
#define INT2_HI_MACNET0_TS (48)
|
||||
#define INT2_HI_MACNET0_WAKE (49)
|
||||
#define INT2_HI_MACNET0_PLR (50)
|
||||
/* not used 51-54 */
|
||||
#define INT2_HI_MACNET1_TS (51)
|
||||
#define INT2_HI_MACNET1_WAKE (52)
|
||||
#define INT2_HI_MACNET1_PLR (53)
|
||||
|
||||
/* Serial Boot Facility (SBF) */
|
||||
#define SBF_SBFCR_BLDIV(x) (((x)&0x000F))
|
||||
#define SBF_SBFCR_FR (0x0010)
|
||||
|
||||
/* Reset Controller Module (RCM) */
|
||||
#define RCM_RCR_SOFTRST (0x80)
|
||||
#define RCM_RCR_FRCRSTOUT (0x40)
|
||||
|
||||
#define RCM_RSR_SOFT (0x20)
|
||||
#define RCM_RSR_LOC (0x10)
|
||||
#define RCM_RSR_POR (0x08)
|
||||
#define RCM_RSR_EXT (0x04)
|
||||
#define RCM_RSR_WDR_CORE (0x02)
|
||||
#define RCM_RSR_LOL (0x01)
|
||||
|
||||
/* Chip Configuration Module (CCM) */
|
||||
#define CCM_CCR_BOOTMOD (0xC000)
|
||||
#define CCM_CCR_PLLMULT (0x0FC0)
|
||||
#define CCM_CCR_BOOTPS (0x0030)
|
||||
#define CCM_CCR_BOOTPS_32 (0x0000)
|
||||
#define CCM_CCR_BOOTPS_16 (0x0020)
|
||||
#define CCM_CCR_BOOTPS_8 (0x0010)
|
||||
#define CCM_CCR_BOOTPS_ (0x0000)
|
||||
#define CCM_CCR_ALESEL (0x0008)
|
||||
#define CCM_CCR_OSCMOD (0x0004)
|
||||
#define CCM_CCR_PLLMOD (0x0002)
|
||||
#define CCM_CCR_BOOTMEM (0x0001)
|
||||
|
||||
#define CCM_CIR_PIN_MASK (0xFFC0)
|
||||
#define CCM_CIR_PRN_MASK (0x003F)
|
||||
#define CCM_CIR_PIN_MCF54410 (0x9F<<6)
|
||||
#define CCM_CIR_PIN_MCF54415 (0xA0<<6)
|
||||
#define CCM_CIR_PIN_MCF54416 (0xA1<<6)
|
||||
#define CCM_CIR_PIN_MCF54417 (0xA2<<6)
|
||||
#define CCM_CIR_PIN_MCF54418 (0xA3<<6)
|
||||
|
||||
#define CCM_MISCCR_PWM_EXTCLK(x) (((x)&(0x0003)<<14)
|
||||
#define CCM_MISCCR_PWM_EXTCLK_MASK (0x3FFF)
|
||||
#define CCM_MISCCR_PWM_EXTCLK_TMR0 (0x0000)
|
||||
#define CCM_MISCCR_PWM_EXTCLK_TMR1 (0x4000)
|
||||
#define CCM_MISCCR_PWM_EXTCLK_TMR2 (0x8000)
|
||||
#define CCM_MISCCR_PWM_EXTCLK_TMR3 (0xC000)
|
||||
#define CCM_MISCCR_LIMP (0x1000)
|
||||
#define CCM_MISCCR_BME (0x0800)
|
||||
#define CCM_MISCCR_BMT(x) (((x)&0x0007)<<8)
|
||||
#define CCM_MISCCR_BMT_65536 (0)
|
||||
#define CCM_MISCCR_BMT_32768 (1)
|
||||
#define CCM_MISCCR_BMT_16384 (2)
|
||||
#define CCM_MISCCR_BMT_8192 (3)
|
||||
#define CCM_MISCCR_BMT_4096 (4)
|
||||
#define CCM_MISCCR_BMT_2048 (5)
|
||||
#define CCM_MISCCR_BMT_1024 (6)
|
||||
#define CCM_MISCCR_BMT_512 (7)
|
||||
#define CCM_MISCCR_SDHCSRC (0x0040)
|
||||
#define CCM_MISCCR_SSI1SRC (0x0020)
|
||||
#define CCM_MISCCR_SSI0SRC (0x0010)
|
||||
#define CCM_MISCCR_USBHOC (0x0008)
|
||||
#define CCM_MISCCR_USBOOC (0x0004)
|
||||
#define CCM_MISCCR_USBPUE (0x0002)
|
||||
#define CCM_MISCCR_USBSRC (0x0001)
|
||||
|
||||
#define CCM_CDRH_SSI0DIV(x) (((x)&0x00FF)<<8)
|
||||
#define CCM_CDRH_SSI0DIV_MASK (0x00FF)
|
||||
#define CCM_CDRH_SSI1DIV(x) (((x)&0x00FF))
|
||||
#define CCM_CDRH_SSI1DIV_MASK (0xFF00)
|
||||
#define CCM_CDRL_LPDIV(x) (((x)&0x000F)<<8)
|
||||
#define CCM_CDRL_LPDIV_MASK (0xFF0F)
|
||||
#define CCM_CDR_LPDIV(x) CCM_CDRL_LPDIV(x)
|
||||
|
||||
#define CCM_UOCSR_DPPD (0x2000)
|
||||
#define CCM_UOCSR_DMPD (0x1000)
|
||||
#define CCM_UOCSR_DRV_VBUS (0x0800)
|
||||
#define CCM_UOCSR_CRG_VBUS (0x0400)
|
||||
#define CCM_UOCSR_DCR_VBUS (0x0200)
|
||||
#define CCM_UOCSR_DPPU (0x0100)
|
||||
#define CCM_UOCSR_AVLD (0x0080)
|
||||
#define CCM_UOCSR_BVLD (0x0040)
|
||||
#define CCM_UOCSR_VVLD (0x0020)
|
||||
#define CCM_UOCSR_SEND (0x0010)
|
||||
#define CCM_UOCSR_PWRFLT (0x0008)
|
||||
#define CCM_UOCSR_WKUP (0x0004)
|
||||
#define CCM_UOCSR_UOMIE (0x0002)
|
||||
#define CCM_UOCSR_XPDE (0x0001)
|
||||
|
||||
#define CCM_UHCSR_DRV_VBUS (0x0010)
|
||||
#define CCM_UHCSR_PWRFLT (0x0008)
|
||||
#define CCM_UHCSR_WKUP (0x0004)
|
||||
#define CCM_UHCSR_UOMIE (0x0002)
|
||||
#define CCM_UHCSR_XPDE (0x0001)
|
||||
|
||||
#define CCM_MISCCR3_TMR_ENET (0x1000)
|
||||
#define CCM_MISCCR3_ENETCLK(x) (((x)&7)<<8)
|
||||
#define CCM_MISCCR3_ENETCLK_MASK (0xF8FF)
|
||||
#define CCM_MISCCR3_ENETCLK_MII (0x0700)
|
||||
#define CCM_MISCCR3_ENETCLK_OSC (0x0600)
|
||||
#define CCM_MISCCR3_ENETCLK_USB (0x0500)
|
||||
#define CCM_MISCCR3_ENETCLK_TMR3 (0x0400)
|
||||
#define CCM_MISCCR3_ENETCLK_TMR2 (0x0300)
|
||||
#define CCM_MISCCR3_ENETCLK_TMR1 (0x0200)
|
||||
#define CCM_MISCCR3_ENETCLK_TMR0 (0x0100)
|
||||
#define CCM_MISCCR3_ENETCLK_INTBUS (0x0000)
|
||||
|
||||
#define CCM_MISCCR2_EXTCLKBYP (0x8000)
|
||||
#define CCM_MISCCR2_DDR2CLK (0x4000)
|
||||
#define CCM_MISCCR2_RGPIO_HALF (0x2000)
|
||||
#define CCM_MISCCR2_SWTSCR (0x1000)
|
||||
#define CCM_MISCCR2_PLLMODE(x) (((x)&7)<<8)
|
||||
#define CCM_MISCCR2_PLLMODE_MASK (0xF8FF)
|
||||
#define CCM_MISCCR2_DCCBYP (0x0080)
|
||||
#define CCM_MISCCR2_DAC1SEL (0x0040)
|
||||
#define CCM_MISCCR2_DAC0SEL (0x0020)
|
||||
#define CCM_MISCCR2_ADCEN (0x0010)
|
||||
#define CCM_MISCCR2_ADC7SEL (0x0008)
|
||||
#define CCM_MISCCR2_ADC3SEL (0x0004)
|
||||
#define CCM_MISCCR2_FBHALF (0x0002)
|
||||
#define CCM_MISCCR2_ULPI (0x0001)
|
||||
|
||||
#define CCM_FNACR_PCR(x) (((x)&0x0F)<<24)
|
||||
#define CCM_FNACR_PCR_MASK (0xF0FFFFFF)
|
||||
#define CCM_FNACR_MCC(x) ((x)&0xFFFF)
|
||||
#define CCM_FNACR_MCC_MASK (0xFFFF0000)
|
||||
|
||||
/* General Purpose I/O Module (GPIO) */
|
||||
#define GPIO_PAR_FBCTL_ALE(x) (((x)&3)<<6)
|
||||
#define GPIO_PAR_FBCTL_ALE_MASK (0x3F)
|
||||
#define GPIO_PAR_FBCTL_ALE_FB_ALE (0xC0)
|
||||
#define GPIO_PAR_FBCTL_ALE_FB_TS (0x80)
|
||||
#define GPIO_PAR_FBCTL_ALE_GPIO (0x00)
|
||||
#define GPIO_PAR_FBCTL_OE(x) (((x)&3)<<4)
|
||||
#define GPIO_PAR_FBCTL_OE_MASK (0xCF)
|
||||
#define GPIO_PAR_FBCTL_OE_FB_OE (0x30)
|
||||
#define GPIO_PAR_FBCTL_OE_FB_TBST (0x20)
|
||||
#define GPIO_PAR_FBCTL_OE_NFC_RE (0x20)
|
||||
#define GPIO_PAR_FBCTL_OE_GPIO (0x00)
|
||||
#define GPIO_PAR_FBCTL_FBCLK (0x08)
|
||||
#define GPIO_PAR_FBCTL_RW (0x04)
|
||||
#define GPIO_PAR_FBCTL_TA(x) ((x)&3)
|
||||
#define GPIO_PAR_FBCTL_TA_MASK (0xFC)
|
||||
#define GPIO_PAR_FBCTL_TA_TA (0x03)
|
||||
#define GPIO_PAR_FBCTL_TA_NFC_RB (0x01)
|
||||
#define GPIO_PAR_FBCTL_TA_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_BE_BS3(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_BE_BE3_MASK (0x3F)
|
||||
#define GPIO_PAR_BE_BE3_BE3 (0xC0)
|
||||
#define GPIO_PAR_BE_BE3_CS3 (0x80)
|
||||
#define GPIO_PAR_BE_BE3_FB_A1 (0x40)
|
||||
#define GPIO_PAR_BE_BE3_NFC_ALE (0x40)
|
||||
#define GPIO_PAR_BE_BE3_GPIO (0x00)
|
||||
#define GPIO_PAR_BE_BS2(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_BE_BE2_MASK (0xCF)
|
||||
#define GPIO_PAR_BE_BE2_BE2 (0x30)
|
||||
#define GPIO_PAR_BE_BE2_CS2 (0x20)
|
||||
#define GPIO_PAR_BE_BE2_FB_A0 (0x10)
|
||||
#define GPIO_PAR_BE_BE2_NFC_CLE (0x10)
|
||||
#define GPIO_PAR_BE_BE2_GPIO (0x00)
|
||||
#define GPIO_PAR_BE_BS1(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_BE_BE1_MASK (0xF3)
|
||||
#define GPIO_PAR_BE_BE1_BE1 (0x0C)
|
||||
#define GPIO_PAR_BE_BE1_FB_TSZ1 (0x08)
|
||||
#define GPIO_PAR_BE_BE1_GPIO (0x00)
|
||||
#define GPIO_PAR_BE_BS0(x) ((x)&0x03)
|
||||
#define GPIO_PAR_BE_BE0_MASK (0xFC)
|
||||
#define GPIO_PAR_BE_BE0_BE0 (0x03)
|
||||
#define GPIO_PAR_BE_BE0_FB_TSZ0 (0x02)
|
||||
#define GPIO_PAR_BE_BE0_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_CS_CS5(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_CS_CS5_MASK (0x3F)
|
||||
#define GPIO_PAR_CS_CS5_CS5 (0xC0)
|
||||
#define GPIO_PAR_CS_CS5_DACK1 (0x80)
|
||||
#define GPIO_PAR_CS_CS5_GPIO (0x00)
|
||||
#define GPIO_PAR_CS_CS4(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_CS_CS4_MASK (0xCF)
|
||||
#define GPIO_PAR_CS_CS4_CS4 (0x30)
|
||||
#define GPIO_PAR_CS_CS4_DREQ1 (0x20)
|
||||
#define GPIO_PAR_CS_CS4_GPIO (0x00)
|
||||
#define GPIO_PAR_CS_CS1(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_CS_CS1_MASK (0xF3)
|
||||
#define GPIO_PAR_CS_CS1_CS1 (0x0C)
|
||||
#define GPIO_PAR_CS_CS1_NFC_CE (0x04)
|
||||
#define GPIO_PAR_CS_CS1_GPIO (0x00)
|
||||
#define GPIO_PAR_CS_CS0_CS0 (0x01)
|
||||
|
||||
#define GPIO_PAR_CANI2C_I2C0SCL(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_CANI2C_I2C0SCL_MASK (0x3F)
|
||||
#define GPIO_PAR_CANI2C_I2C0SCL_I2C0SCL (0xC0)
|
||||
#define GPIO_PAR_CANI2C_I2C0SCL_U8TXD (0x80)
|
||||
#define GPIO_PAR_CANI2C_I2C0SCL_CAN0TX (0x40)
|
||||
#define GPIO_PAR_CANI2C_I2C0SCL_GPIO (0x00)
|
||||
#define GPIO_PAR_CANI2C_I2C0SDA(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_CANI2C_I2C0SDA_MASK (0xCF)
|
||||
#define GPIO_PAR_CANI2C_I2C0SDA_I2C0SDA (0x30)
|
||||
#define GPIO_PAR_CANI2C_I2C0SDA_U8RXD (0x20)
|
||||
#define GPIO_PAR_CANI2C_I2C0SDA_CAN0RX (0x10)
|
||||
#define GPIO_PAR_CANI2C_I2C0SDA_GPIO (0x00)
|
||||
#define GPIO_PAR_CANI2C_CAN1TX(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_CANI2C_CAN1TX_MASK (0xF3)
|
||||
#define GPIO_PAR_CANI2C_CAN1TX_CAN1TX (0x0C)
|
||||
#define GPIO_PAR_CANI2C_CAN1TX_U9TXD (0x08)
|
||||
#define GPIO_PAR_CANI2C_CAN1TX_I2C1SCL (0x04)
|
||||
#define GPIO_PAR_CANI2C_CAN1TX_GPIO (0x00)
|
||||
#define GPIO_PAR_CANI2C_CAN1RX(x) ((x)&0x03)
|
||||
#define GPIO_PAR_CANI2C_CAN1RX_MASK (0xFC)
|
||||
#define GPIO_PAR_CANI2C_CAN1RX_CAN1RX (0x03)
|
||||
#define GPIO_PAR_CANI2C_CAN1RX_U9RXD (0x02)
|
||||
#define GPIO_PAR_CANI2C_CAN1RX_I2C1SDA (0x01)
|
||||
#define GPIO_PAR_CANI2C_CAN1RX_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_IRQH_IRQ7 (0x10)
|
||||
#define GPIO_PAR_IRQH_IRQ4(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_IRQH_IRQ4_MASK (0xF3)
|
||||
#define GPIO_PAR_IRQH_IRQ4_IRQ4 (0x0C)
|
||||
#define GPIO_PAR_IRQH_IRQ4_DREQ0 (0x08)
|
||||
#define GPIO_PAR_IRQH_IRQ4_GPIO (0x00)
|
||||
#define GPIO_PAR_IRQH_IRQ1 (0x03)
|
||||
|
||||
#define GPIO_PAR_IRQL_IRQ6(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_IRQL_IRQ6_MASK (0x3F)
|
||||
#define GPIO_PAR_IRQL_IRQ6_IRQ6 (0xC0)
|
||||
#define GPIO_PAR_IRQL_IRQ6_USBCLKIN (0x40)
|
||||
#define GPIO_PAR_IRQL_IRQ6_GPIO (0x00)
|
||||
#define GPIO_PAR_IRQL_IRQ3(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_IRQL_IRQ3_MASK (0xCF)
|
||||
#define GPIO_PAR_IRQL_IRQ3_IRQ3 (0x30)
|
||||
#define GPIO_PAR_IRQL_IRQ3_DSPI0_PCS3 (0x20)
|
||||
#define GPIO_PAR_IRQL_IRQ3_USB1_VBUS_EN (0x10)
|
||||
#define GPIO_PAR_IRQL_IRQ3_GPIO (0x00)
|
||||
#define GPIO_PAR_IRQL_IRQ2(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_IRQL_IRQ2_MASK (0xF3)
|
||||
#define GPIO_PAR_IRQL_IRQ2_IRQ2 (0x0C)
|
||||
#define GPIO_PAR_IRQL_IRQ2_DSPI0_PCS2 (0x08)
|
||||
#define GPIO_PAR_IRQL_IRQ2_USB1_VBUS_OC (0x04)
|
||||
#define GPIO_PAR_IRQL_IRQ2_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_DSPI0_SIN(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_DSPI0_SIN_MASK (0x3F)
|
||||
#define GPIO_PAR_DSPI0_SIN_DSPI0SIN (0xC0)
|
||||
#define GPIO_PAR_DSPI0_SIN_SBF_DI (0xC0)
|
||||
#define GPIO_PAR_DSPI0_SIN_U3RXD (0x80)
|
||||
#define GPIO_PAR_DSPI0_SIN_SDHC_CMD (0x40)
|
||||
#define GPIO_PAR_DSPI0_SIN_GPIO (0x00)
|
||||
#define GPIO_PAR_DSPI0_SOUT(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_DSPI0_SOUT_MASK (0xCF)
|
||||
#define GPIO_PAR_DSPI0_SOUT_DSPI0SOUT (0x30)
|
||||
#define GPIO_PAR_DSPI0_SOUT_SBF_DO (0x30)
|
||||
#define GPIO_PAR_DSPI0_SOUT_U3TXD (0x20)
|
||||
#define GPIO_PAR_DSPI0_SOUT_SDHC_DAT0 (0x10)
|
||||
#define GPIO_PAR_DSPI0_SOUT_GPIO (0x00)
|
||||
#define GPIO_PAR_DSPI0_SCK(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_DSPI0_SCK_MASK (0xF3)
|
||||
#define GPIO_PAR_DSPI0_SCK_DSPI0SCK (0x0C)
|
||||
#define GPIO_PAR_DSPI0_SCK_SBF_CK (0x0C)
|
||||
#define GPIO_PAR_DSPI0_SCK_I2C3SCL (0x08)
|
||||
#define GPIO_PAR_DSPI0_SCK_SDHC_CLK (0x04)
|
||||
#define GPIO_PAR_DSPI0_SCK_GPIO (0x00)
|
||||
#define GPIO_PAR_DSPI0_PCS0(x) ((x)&0x03)
|
||||
#define GPIO_PAR_DSPI0_PCS0_MASK (0xFC)
|
||||
#define GPIO_PAR_DSPI0_PCS0_DSPI0PCS0 (0x03)
|
||||
#define GPIO_PAR_DSPI0_PCS0_SS (0x03)
|
||||
#define GPIO_PAR_DSPI0_PCS0_I2C3SDA (0x02)
|
||||
#define GPIO_PAR_DSPI0_PCS0_SDHC_DAT3 (0x01)
|
||||
#define GPIO_PAR_DSPI0_PCS0_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_DSPIOW_DSPI0PSC1 (0x80)
|
||||
#define GPIO_PAR_DSPIOW_SBF_CS (0x80)
|
||||
#define GPIO_PAR_DSPIOW_OWDAT (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_DSPIOW_OWDAT_MASK (0xCF)
|
||||
#define GPIO_PAR_DSPIOW_OWDAT_OWDAT (0x30)
|
||||
#define GPIO_PAR_DSPIOW_OWDAT_DACK0 (0x20)
|
||||
#define GPIO_PAR_DSPIOW_OWDAT_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_TIMER_T3IN(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_TIMER_T3IN_MASK (0x3F)
|
||||
#define GPIO_PAR_TIMER_T3IN_T3IN (0xC0)
|
||||
#define GPIO_PAR_TIMER_T3IN_EXTA3 (0xC0)
|
||||
#define GPIO_PAR_TIMER_T3IN_T3OUT (0x80)
|
||||
#define GPIO_PAR_TIMER_T3IN_USB0_VBUSEN (0x40)
|
||||
#define GPIO_PAR_TIMER_T3IN_ULIPI_DIR (0x40)
|
||||
#define GPIO_PAR_TIMER_T3IN_GPIO (0x00)
|
||||
#define GPIO_PAR_TIMER_T2IN(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_TIMER_T2IN_MASK (0xCF)
|
||||
#define GPIO_PAR_TIMER_T2IN_T2IN (0x30)
|
||||
#define GPIO_PAR_TIMER_T2IN_EXTA2 (0x30)
|
||||
#define GPIO_PAR_TIMER_T2IN_T2OUT (0x20)
|
||||
#define GPIO_PAR_TIMER_T2IN_SDHC_DAT2 (0x10)
|
||||
#define GPIO_PAR_TIMER_T2IN_GPIO (0x00)
|
||||
#define GPIO_PAR_TIMER_T1IN(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_TIMER_T1IN_MASK (0xF3)
|
||||
#define GPIO_PAR_TIMER_T1IN_T1IN (0x0C)
|
||||
#define GPIO_PAR_TIMER_T1IN_EXTA1 (0x0C)
|
||||
#define GPIO_PAR_TIMER_T1IN_T1OUT (0x08)
|
||||
#define GPIO_PAR_TIMER_T1IN_SDHC_DAT1 (0x04)
|
||||
#define GPIO_PAR_TIMER_T1IN_GPIO (0x00)
|
||||
#define GPIO_PAR_TIMER_T0IN(x) ((x)&0x03)
|
||||
#define GPIO_PAR_TIMER_T0IN_MASK (0xFC)
|
||||
#define GPIO_PAR_TIMER_T0IN_T0IN (0x03)
|
||||
#define GPIO_PAR_TIMER_T0IN_EXTA0 (0x03)
|
||||
#define GPIO_PAR_TIMER_T0IN_T0OUT (0x02)
|
||||
#define GPIO_PAR_TIMER_T0IN_USBO_VBUSOC (0x01)
|
||||
#define GPIO_PAR_TIMER_T0IN_ULPI_NXT (0x01)
|
||||
#define GPIO_PAR_TIMER_T0IN_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_UART2_U2CTS(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_UART2_U2CTS_MASK (0x3F)
|
||||
#define GPIO_PAR_UART2_U2CTS_U2CTS (0xC0)
|
||||
#define GPIO_PAR_UART2_U2CTS_U6TXD (0x80)
|
||||
#define GPIO_PAR_UART2_U2CTS_SSI1_BCLK (0x40)
|
||||
#define GPIO_PAR_UART2_U2CTS_GPIO (0x00)
|
||||
#define GPIO_PAR_UART2_U2RTS(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_UART2_U2RTS_MASK (0xCF)
|
||||
#define GPIO_PAR_UART2_U2RTS_U2RTS (0x30)
|
||||
#define GPIO_PAR_UART2_U2RTS_U6RXD (0x20)
|
||||
#define GPIO_PAR_UART2_U2RTS_SSI1_FS (0x10)
|
||||
#define GPIO_PAR_UART2_U2RTS_GPIO (0x00)
|
||||
#define GPIO_PAR_UART2_U2RXD(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_UART2_U2RXD_MASK (0xF3)
|
||||
#define GPIO_PAR_UART2_U2RXD_U2RXD (0x0C)
|
||||
#define GPIO_PAR_UART2_U2RXD_PWM_A3 (0x08)
|
||||
#define GPIO_PAR_UART2_U2RXD_SSI1_RXD (0x04)
|
||||
#define GPIO_PAR_UART2_U2RXD_GPIO (0x00)
|
||||
#define GPIO_PAR_UART2_U2TXD(x) ((x)&0x03)
|
||||
#define GPIO_PAR_UART2_U2TXD_MASK (0xFC)
|
||||
#define GPIO_PAR_UART2_U2TXD_U2TXD (0x03)
|
||||
#define GPIO_PAR_UART2_U2TXD_PWM_B3 (0x02)
|
||||
#define GPIO_PAR_UART2_U2TXD_SSI1_TXD (0x01)
|
||||
#define GPIO_PAR_UART2_U2TXD_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_UART1_U1CTS(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_UART1_U1CTS_MASK (0x3F)
|
||||
#define GPIO_PAR_UART1_U1CTS_U1CTS (0xC0)
|
||||
#define GPIO_PAR_UART1_U1CTS_U5TXD (0x80)
|
||||
#define GPIO_PAR_UART1_U1CTS_DSPI3_SCK (0x40)
|
||||
#define GPIO_PAR_UART1_U1CTS_GPIO (0x00)
|
||||
#define GPIO_PAR_UART1_U1RTS(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_UART1_U1RTS_MASK (0xCF)
|
||||
#define GPIO_PAR_UART1_U1RTS_U1RTS (0x30)
|
||||
#define GPIO_PAR_UART1_U1RTS_U5RXD (0x20)
|
||||
#define GPIO_PAR_UART1_U1RTS_DSPI3_PCS0 (0x10)
|
||||
#define GPIO_PAR_UART1_U1RTS_GPIO (0x00)
|
||||
#define GPIO_PAR_UART1_U1RXD(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_UART1_U1RXD_MASK (0xF3)
|
||||
#define GPIO_PAR_UART1_U1RXD_U1RXD (0x0C)
|
||||
#define GPIO_PAR_UART1_U1RXD_I2C5SDA (0x08)
|
||||
#define GPIO_PAR_UART1_U1RXD_DSPI3_SIN (0x04)
|
||||
#define GPIO_PAR_UART1_U1RXD_GPIO (0x00)
|
||||
#define GPIO_PAR_UART1_U1TXD(x) ((x)&0x03)
|
||||
#define GPIO_PAR_UART1_U1TXD_MASK (0xFC)
|
||||
#define GPIO_PAR_UART1_U1TXD_U1TXD (0x03)
|
||||
#define GPIO_PAR_UART1_U1TXD_I2C5SCL (0x02)
|
||||
#define GPIO_PAR_UART1_U1TXD_DSPI3_SOUT (0x01)
|
||||
#define GPIO_PAR_UART1_U1TXD_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_UART0_U0CTS(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_UART0_U0CTS_MASK (0x3F)
|
||||
#define GPIO_PAR_UART0_U0CTS_U0CTS (0xC0)
|
||||
#define GPIO_PAR_UART0_U0CTS_U4TXD (0x80)
|
||||
#define GPIO_PAR_UART0_U0CTS_DSPI2_SCK (0x40)
|
||||
#define GPIO_PAR_UART0_U0CTS_GPIO (0x00)
|
||||
#define GPIO_PAR_UART0_U0RTS(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_UART0_U0RTS_MASK (0xCF)
|
||||
#define GPIO_PAR_UART0_U0RTS_U0RTS (0x30)
|
||||
#define GPIO_PAR_UART0_U0RTS_U4RXD (0x20)
|
||||
#define GPIO_PAR_UART0_U0RTS_DSPI2_PCS0 (0x10)
|
||||
#define GPIO_PAR_UART0_U0RTS_GPIO (0x00)
|
||||
#define GPIO_PAR_UART0_U0RXD(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_UART0_U0RXD_MASK (0xF3)
|
||||
#define GPIO_PAR_UART0_U0RXD_U0RXD (0x0C)
|
||||
#define GPIO_PAR_UART0_U0RXD_I2C4SDA (0x08)
|
||||
#define GPIO_PAR_UART0_U0RXD_DSPI2_SIN (0x04)
|
||||
#define GPIO_PAR_UART0_U0RXD_GPIO (0x00)
|
||||
#define GPIO_PAR_UART0_U0TXD(x) ((x)&0x03)
|
||||
#define GPIO_PAR_UART0_U0TXD_MASK (0xFC)
|
||||
#define GPIO_PAR_UART0_U0TXD_U0TXD (0x03)
|
||||
#define GPIO_PAR_UART0_U0TXD_I2C4SCL (0x02)
|
||||
#define GPIO_PAR_UART0_U0TXD_DSPI2_SOUT (0x01)
|
||||
#define GPIO_PAR_UART0_U0TXD_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_SDHCH_DAT3(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_SDHCH_DAT3_MASK (0x3F)
|
||||
#define GPIO_PAR_SDHCH_DAT3_DAT3 (0xC0)
|
||||
#define GPIO_PAR_SDHCH_DAT3_PWM_A1 (0x80)
|
||||
#define GPIO_PAR_SDHCH_DAT3_DSPI1_PCS0 (0x40)
|
||||
#define GPIO_PAR_SDHCH_DAT3_GPIO (0x00)
|
||||
#define GPIO_PAR_SDHCH_DAT2(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_SDHCH_DAT2_MASK (0xCF)
|
||||
#define GPIO_PAR_SDHCH_DAT2_DAT2 (0x30)
|
||||
#define GPIO_PAR_SDHCH_DAT2_PWM_B1 (0x20)
|
||||
#define GPIO_PAR_SDHCH_DAT2_DSPI1_PCS2 (0x10)
|
||||
#define GPIO_PAR_SDHCH_DAT2_GPIO (0x00)
|
||||
#define GPIO_PAR_SDHCH_DAT1(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_SDHCH_DAT1_MASK (0xF3)
|
||||
#define GPIO_PAR_SDHCH_DAT1_DAT1 (0x0C)
|
||||
#define GPIO_PAR_SDHCH_DAT1_PWM_A2 (0x08)
|
||||
#define GPIO_PAR_SDHCH_DAT1_DSPI1_PCS1 (0x04)
|
||||
#define GPIO_PAR_SDHCH_DAT1_GPIO (0x00)
|
||||
#define GPIO_PAR_SDHCH_DAT0(x) ((x)&0x03)
|
||||
#define GPIO_PAR_SDHCH_DAT0_MASK (0xFC)
|
||||
#define GPIO_PAR_SDHCH_DAT0_DAT0 (0x03)
|
||||
#define GPIO_PAR_SDHCH_DAT0_PWM_B2 (0x02)
|
||||
#define GPIO_PAR_SDHCH_DAT0_DSPI1_SOUT (0x01)
|
||||
#define GPIO_PAR_SDHCH_DAT0_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_SDHCL_CMD(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_SDHCL_CMD_MASK (0xF3)
|
||||
#define GPIO_PAR_SDHCL_CMD_CMD (0x0C)
|
||||
#define GPIO_PAR_SDHCL_CMD_PWM_A0 (0x08)
|
||||
#define GPIO_PAR_SDHCL_CMD_DSPI1_SIN (0x04)
|
||||
#define GPIO_PAR_SDHCL_CMD_GPIO (0x00)
|
||||
#define GPIO_PAR_SDHCL_CLK(x) ((x)&0x03)
|
||||
#define GPIO_PAR_SDHCL_CLK_MASK (0xFC)
|
||||
#define GPIO_PAR_SDHCL_CLK_CLK (0x03)
|
||||
#define GPIO_PAR_SDHCL_CLK_PWM_B0 (0x02)
|
||||
#define GPIO_PAR_SDHCL_CLK_DSPI1_SCK (0x01)
|
||||
#define GPIO_PAR_SDHCL_CLK_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_SIMP0H_DAT(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_SIMP0H_DAT_MASK (0x3F)
|
||||
#define GPIO_PAR_SIMP0H_DAT_DAT (0xC0)
|
||||
#define GPIO_PAR_SIMP0H_DAT_PWM_FAULT2 (0x80)
|
||||
#define GPIO_PAR_SIMP0H_DAT_SDHC_DAT7 (0x40)
|
||||
#define GPIO_PAR_SIMP0H_DAT_GPIO (0x00)
|
||||
#define GPIO_PAR_SIMP0H_VEN(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_SIMP0H_VEN_MASK (0xCF)
|
||||
#define GPIO_PAR_SIMP0H_VEN_VEN (0x30)
|
||||
#define GPIO_PAR_SIMP0H_VEN_PWM_FAULT0 (0x20)
|
||||
#define GPIO_PAR_SIMP0H_VEN_GPIO (0x00)
|
||||
#define GPIO_PAR_SIMP0H_RST(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_SIMP0H_RST_MASK (0xF3)
|
||||
#define GPIO_PAR_SIMP0H_RST_RST (0x0C)
|
||||
#define GPIO_PAR_SIMP0H_RST_PWM_FORCE (0x08)
|
||||
#define GPIO_PAR_SIMP0H_RST_SDHC_DAT6 (0x04)
|
||||
#define GPIO_PAR_SIMP0H_RST_GPIO (0x00)
|
||||
#define GPIO_PAR_SIMP0H_PD(x) ((x)&0x03)
|
||||
#define GPIO_PAR_SIMP0H_PD_MASK (0xFC)
|
||||
#define GPIO_PAR_SIMP0H_PD_PD (0x03)
|
||||
#define GPIO_PAR_SIMP0H_PD_PWM_SYNC (0x02)
|
||||
#define GPIO_PAR_SIMP0H_PD_SDHC_DAT5 (0x01)
|
||||
#define GPIO_PAR_SIMP0H_PD_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_SIMP0L_CLK(x) ((x)&0x03)
|
||||
#define GPIO_PAR_SIMP0L_CLK_MASK (0xFC)
|
||||
#define GPIO_PAR_SIMP0L_CLK_CLK (0x03)
|
||||
#define GPIO_PAR_SIMP0L_CLK_PWM_FAULT1 (0x02)
|
||||
#define GPIO_PAR_SIMP0L_CLK_SDHC_DAT4 (0x01)
|
||||
#define GPIO_PAR_SIMP0L_CLK_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_SSI0H_RXD(x) (((x)&0x03)<<6)
|
||||
#define GPIO_PAR_SSI0H_RXD_MASK (0x3F)
|
||||
#define GPIO_PAR_SSI0H_RXD_RXD (0xC0)
|
||||
#define GPIO_PAR_SSI0H_RXD_I2C2SDA (0x80)
|
||||
#define GPIO_PAR_SSI0H_RXD_SIM1_VEN (0x40)
|
||||
#define GPIO_PAR_SSI0H_RXD_GPIO (0x00)
|
||||
#define GPIO_PAR_SSI0H_TXD(x) (((x)&0x03)<<4)
|
||||
#define GPIO_PAR_SSI0H_TXD_MASK (0xCF)
|
||||
#define GPIO_PAR_SSI0H_TXD_TXD (0x30)
|
||||
#define GPIO_PAR_SSI0H_TXD_I2C2SCL (0x20)
|
||||
#define GPIO_PAR_SSI0H_TXD_SIM1_DAT (0x10)
|
||||
#define GPIO_PAR_SSI0H_TXD_GPIO (0x00)
|
||||
#define GPIO_PAR_SSI0H_FS(x) (((x)&0x03)<<2)
|
||||
#define GPIO_PAR_SSI0H_FS_MASK (0xF3)
|
||||
#define GPIO_PAR_SSI0H_FS_FS (0x0C)
|
||||
#define GPIO_PAR_SSI0H_FS_U7TXD (0x08)
|
||||
#define GPIO_PAR_SSI0H_FS_SIM1_RST (0x04)
|
||||
#define GPIO_PAR_SSI0H_FS_GPIO (0x00)
|
||||
#define GPIO_PAR_SSI0H_MCLK(x) ((x)&0x03)
|
||||
#define GPIO_PAR_SSI0H_MCLK_MASK (0xFC)
|
||||
#define GPIO_PAR_SSI0H_MCLK_MCLK (0x03)
|
||||
#define GPIO_PAR_SSI0H_MCLK_SSI_CLKIN (0x02)
|
||||
#define GPIO_PAR_SSI0H_MCLK_SIM1_CLK (0x01)
|
||||
#define GPIO_PAR_SSI0H_MCLK_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_SSI0L_BCLK(x) ((x)&0x03)
|
||||
#define GPIO_PAR_SSI0L_BCLK_MASK (0xFC)
|
||||
#define GPIO_PAR_SSI0L_BCLK_BCLK (0x03)
|
||||
#define GPIO_PAR_SSI0L_BCLK_U7RXD (0x02)
|
||||
#define GPIO_PAR_SSI0L_BCLK_SIM1_PD (0x01)
|
||||
#define GPIO_PAR_SSI0L_BCLK_GPIO (0x00)
|
||||
|
||||
#define GPIO_PAR_DEBUGH1_DAT3 (0x40)
|
||||
#define GPIO_PAR_DEBUGH1_DAT2 (0x10)
|
||||
#define GPIO_PAR_DEBUGH1_DAT1 (0x04)
|
||||
#define GPIO_PAR_DEBUGH1_DAT0 (0x01)
|
||||
|
||||
#define GPIO_PAR_DEBUGH0_PST3 (0x40)
|
||||
#define GPIO_PAR_DEBUGH0_PST2 (0x10)
|
||||
#define GPIO_PAR_DEBUGH0_PST1 (0x04)
|
||||
#define GPIO_PAR_DEBUGH0_PST0 (0x01)
|
||||
|
||||
#define GPIO_PODR_G4_VAL (0x01 << 4)
|
||||
#define GPIO_PODR_G4_MASK (0xff & ~GPIO_PODR_G4_VAL)
|
||||
#define GPIO_PDDR_G4_OUTPUT (0x01 << 4)
|
||||
#define GPIO_PDDR_G4_MASK (0xff & ~GPIO_PDDR_G4_OUTPUT)
|
||||
|
||||
#define GPIO_PAR_DEBUGL_ALLPST (0x01)
|
||||
|
||||
#define GPIO_PAR_FEC_FEC(x) ((x)&0x0F)
|
||||
#define GPIO_PAR_FEC_FEC_MASK (0xF0)
|
||||
#define GPIO_PAR_FEC_FEC_GPIO (0x0D)
|
||||
#define GPIO_PAR_FEC_FEC_RMII1 (0x0C)
|
||||
#define GPIO_PAR_FEC_FEC_RMII1FUL (0x0B)
|
||||
#define GPIO_PAR_FEC_FEC_RMII_ULPI (0x0A)
|
||||
#define GPIO_PAR_FEC_FEC_RMII0 (0x09)
|
||||
#define GPIO_PAR_FEC_FEC_RMII0FUL_ULPI (0x08)
|
||||
#define GPIO_PAR_FEC_FEC_RMII0FUL (0x07)
|
||||
#define GPIO_PAR_FEC_FEC_RMII0_1FUL (0x06)
|
||||
#define GPIO_PAR_FEC_FEC_RMII0FUL_1 (0x05) /* 0:Full 1: */
|
||||
/* Both 0&1: MDC, MDIO, COL & TXER - GPIO */
|
||||
#define GPIO_PAR_FEC_FEC_RMII0_1 (0x04)
|
||||
#define GPIO_PAR_FEC_FEC_RMII0FUL_1FUL (0x03)
|
||||
#define GPIO_PAR_FEC_FEC_MII (0x01) /* MDC & MDIO - GPIO */
|
||||
#define GPIO_PAR_FEC_FEC_MIIFUL (0x00)
|
||||
|
||||
|
||||
/* TC: Need to edit here.... */
|
||||
|
||||
/* Mode Select Control */
|
||||
#define GPIO_MSCR_SDRAM_MSC(x) ((x)&0x03)
|
||||
#define GPIO_MSCR_SDRAM_MSC_MASK (0xFC)
|
||||
|
||||
/* Slew Rate Control */
|
||||
|
||||
#define GPIO_SRCR_FB3_FB3(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_FB3_FB3_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_FB2_FB2(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_FB2_FB2_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_FB1_FB1(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_FB1_FB1_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_FB4_FB5(x) (((x)&0x03)<<2)
|
||||
#define GPIO_SRCR_FB4_FB5_MASK (0xF3)
|
||||
#define GPIO_SRCR_FB4_FB4(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_FB4_FB4_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_DSPIOW_OWDAT(x) (((x)&0x03)<<4)
|
||||
#define GPIO_SRCR_DSPIOW_OWDAT_MASK (0xCF)
|
||||
#define GPIO_SRCR_DSPIOW_DSPI0(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_DSPIOW_DSPI0_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_CANI2C_CAN1(x) (((x)&0x03)<<2)
|
||||
#define GPIO_SRCR_CANI2C_CAN1_MASK (0xF3)
|
||||
#define GPIO_SRCR_CANI2C_I2C0(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_CANI2C_I2C0_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_IRQ0_IRQ0(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_IRQ0_IRQ0_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_TIMER_TMR3(x) (((x)&0x03)<<6)
|
||||
#define GPIO_SRCR_TIMER_TMR3_MASK (0x3F)
|
||||
#define GPIO_SRCR_TIMER_TMR2(x) (((x)&0x03)<<4)
|
||||
#define GPIO_SRCR_TIMER_TMR2_MASK (0xCF)
|
||||
#define GPIO_SRCR_TIMER_TMR1(x) (((x)&0x03)<<2)
|
||||
#define GPIO_SRCR_TIMER_TMR1_MASK (0xF3)
|
||||
#define GPIO_SRCR_TIMER_TMR0(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_TIMER_TMR0_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_UART_U2(x) (((x)&0x03)<<4)
|
||||
#define GPIO_SRCR_UART_U2_MASK (0xCF)
|
||||
#define GPIO_SRCR_UART_U1(x) (((x)&0x03)<<2)
|
||||
#define GPIO_SRCR_UART_U1_MASK (0xF3)
|
||||
#define GPIO_SRCR_UART_U0(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_UART_U0_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_FEC_RMII0(x) (((x)&0x03)<<2)
|
||||
#define GPIO_SRCR_FEC_RMII0_MASK (0xF3)
|
||||
#define GPIO_SRCR_FEC_RMII1(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_FEC_RMII1_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_SDHC_SDHC(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_SDHC_SDHC_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_SIM0_SIMP0(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_SIM0_SIMP0_MASK (0xFC)
|
||||
|
||||
#define GPIO_SRCR_SSI0_SSI0(x) ((x)&0x03)
|
||||
#define GPIO_SRCR_SSI0_SSI0_MASK (0xFC)
|
||||
|
||||
#define GPIO_PCR_URTS_U2 (0x0004)
|
||||
#define GPIO_PCR_URTS_U1 (0x0002)
|
||||
#define GPIO_PCR_URTS_U0 (0x0001)
|
||||
|
||||
#define GPIO_PCR_UCTS_U2 (0x0004)
|
||||
#define GPIO_PCR_UCTS_U1 (0x0002)
|
||||
#define GPIO_PCR_UCTS_U0 (0x0001)
|
||||
|
||||
#define GPIO_UTXD_WOM_U9 (0x0200)
|
||||
#define GPIO_UTXD_WOM_U8 (0x0100)
|
||||
#define GPIO_UTXD_WOM_U7 (0x0080)
|
||||
#define GPIO_UTXD_WOM_U6 (0x0040)
|
||||
#define GPIO_UTXD_WOM_U5 (0x0020)
|
||||
#define GPIO_UTXD_WOM_U4 (0x0010)
|
||||
#define GPIO_UTXD_WOM_U3 (0x0008)
|
||||
#define GPIO_UTXD_WOM_U2 (0x0004)
|
||||
#define GPIO_UTXD_WOM_U1 (0x0002)
|
||||
#define GPIO_UTXD_WOM_U0 (0x0001)
|
||||
|
||||
#define GPIO_URXD_WOM_U9(x) (((x)&3)<<18)
|
||||
#define GPIO_URXD_WOM_U9_MASK (0xFFF3FFFF)
|
||||
#define GPIO_URXD_WOM_U8(x) (((x)&3)<<16)
|
||||
#define GPIO_URXD_WOM_U8_MASK (0xFFFCFFFF)
|
||||
#define GPIO_URXD_WOM_U7(x) (((x)&3)<<14)
|
||||
#define GPIO_URXD_WOM_U7_MASK (0xFFFF3FFF)
|
||||
#define GPIO_URXD_WOM_U6(x) (((x)&3)<<12)
|
||||
#define GPIO_URXD_WOM_U6_MASK (0xFFFFCFFF)
|
||||
#define GPIO_URXD_WOM_U5(x) (((x)&3)<<10)
|
||||
#define GPIO_URXD_WOM_U5_MASK (0xFFFFF3FF)
|
||||
#define GPIO_URXD_WOM_U4(x) (((x)&3)<<8)
|
||||
#define GPIO_URXD_WOM_U4_MASK (0xFFFFFCFF)
|
||||
#define GPIO_URXD_WOM_U3(x) (((x)&3)<<6)
|
||||
#define GPIO_URXD_WOM_U3_MASK (0xFFFFFF3F)
|
||||
#define GPIO_URXD_WOM_U2(x) (((x)&3)<<4)
|
||||
#define GPIO_URXD_WOM_U2_MASK (0xFFFFFFCF)
|
||||
#define GPIO_URXD_WOM_U1(x) (((x)&3)<<2)
|
||||
#define GPIO_URXD_WOM_U1_MASK (0xFFFFFFF3)
|
||||
#define GPIO_URXD_WOM_U0(x) ((x)&3)
|
||||
#define GPIO_URXD_WOM_U0_MASK (0xFFFFFFFC)
|
||||
|
||||
#define GPIO_HCR1_PG4_0(x) (((x)&0x1F)<<27)
|
||||
#define GPIO_HCR1_PG4_0_MASK (0x07FFFFFF)
|
||||
#define GPIO_HCR1_PF7_3(x) (((x)&0x1F)<<22)
|
||||
#define GPIO_HCR1_PF7_3_MASK (0xF83FFFFF)
|
||||
#define GPIO_HCR1_PE6_0(x) (((x)&0x7F)<<15)
|
||||
#define GPIO_HCR1_PE6_0_MASK (0xFFC07FFF)
|
||||
#define GPIO_HCR1_PD7_3(x) (((x)&0x1F)<<10)
|
||||
#define GPIO_HCR1_PD7_3_MASK (0xFFFF83FF)
|
||||
#define GPIO_HCR1_PC7_1(x) (((x)&0x7F)<<3)
|
||||
#define GPIO_HCR1_PC7_1_MASK (0xFFFFFC07)
|
||||
#define GPIO_HCR1_PB2_0(x) ((x)&7)
|
||||
#define GPIO_HCR1_PB2_0_MASK (0xFFFFFFF8)
|
||||
|
||||
#define GPIO_HCR0_PK3 (0x00000400)
|
||||
#define GPIO_HCR0_PK0 (0x00000200)
|
||||
#define GPIO_HCR0_PD2_0(x) (((x)&7)<<6)
|
||||
#define GPIO_HCR0_PD2_0_MASK (0xFFFFFE3F)
|
||||
#define GPIO_HCR0_PE7 (0x00000020)
|
||||
#define GPIO_HCR0_PH7_3(x) ((x)&0x1F)
|
||||
#define GPIO_HCR0_PH7_3_MASK(x) (0xFFFFFFE0)
|
||||
|
||||
/* SDRAM Controller (SDRAMC) */
|
||||
|
||||
/* Phase Locked Loop (PLL) */
|
||||
#define PLL_CR_LOCIRQ (0x00040000)
|
||||
#define PLL_CR_LOCRE (0x00020000)
|
||||
#define PLL_CR_LOCEN (0x00010000)
|
||||
#define PLL_CR_LOLIRQ (0x00004000)
|
||||
#define PLL_CR_LOLRE (0x00002000)
|
||||
#define PLL_CR_LOLEN (0x00001000)
|
||||
#define PLL_CR_REFDIV(x) (((x)&7)<<8)
|
||||
#define PLL_CR_REFDIV_MASK (0xFFFFF8FF)
|
||||
#define PLL_CR_FBKDIV(x) ((x)&0x3F)
|
||||
#define PLL_CR_FBKDIV_MASK (0xFFFFFFC0)
|
||||
#define PLL_CR_FBKDIV_BITS (0x3F)
|
||||
|
||||
#define PLL_DR_OUTDIV5(x) (((x)&0x1F)<<21)
|
||||
#define PLL_DR_OUTDIV5_MASK (0xFC1FFFFF)
|
||||
#define PLL_DR_OUTDIV5_BITS (0x03E00000)
|
||||
#define PLL_DR_OUTDIV4(x) (((x)&0x1F)<<16)
|
||||
#define PLL_DR_OUTDIV4_MASK (0xFFE0FFFF)
|
||||
#define PLL_DR_OUTDIV4_BITS (0x001F0000)
|
||||
#define PLL_DR_OUTDIV3(x) (((x)&0x1F)<<10)
|
||||
#define PLL_DR_OUTDIV3_MASK (0xFFFF83FF)
|
||||
#define PLL_DR_OUTDIV3_BITS (0x00007C00)
|
||||
#define PLL_DR_OUTDIV2(x) (((x)&0x1F)<<5)
|
||||
#define PLL_DR_OUTDIV2_MASK (0xFFFFFC1F)
|
||||
#define PLL_DR_OUTDIV2_BITS (0x000003E0)
|
||||
#define PLL_DR_OUTDIV1(x) ((x)&0x1F)
|
||||
#define PLL_DR_OUTDIV1_MASK (0xFFFFFFE0)
|
||||
#define PLL_DR_OUTDIV1_BITS (0x0000001F)
|
||||
|
||||
#define PLL_SR_LOCF (0x00000200)
|
||||
#define PLL_SR_LOC (0x00000100)
|
||||
#define PLL_SR_LOLF (0x00000040)
|
||||
#define PLL_SR_LOCKS (0x00000020)
|
||||
#define PLL_SR_LOCK (0x00000010)
|
||||
#define PLL_PSR_LOCK PLL_SR_LOCK /* compatible with 5x */
|
||||
#define PLL_SR_MODE(x) ((x)&7)
|
||||
#define PLL_SR_MODE_MASK (0xFFFFFFF8)
|
||||
|
||||
#endif /* __MCF5441X__ */
|
Loading…
Reference in a new issue