diff options
author | Terry Lv <r65388@freescale.com> | 2010-03-08 17:12:51 +0800 |
---|---|---|
committer | Terry Lv <r65388@freescale.com> | 2010-03-12 11:07:40 +0800 |
commit | aca6f560d03a0780d4713e1f458e132bec28f37b (patch) | |
tree | 7556ea9a2ec59871d8947e273437c5066bcd13ea /include/asm-arm | |
parent | f4c2bfd8fbed1fcf8d33abf54f614594779f57e8 (diff) | |
download | u-boot-imx-aca6f560d03a0780d4713e1f458e132bec28f37b.zip u-boot-imx-aca6f560d03a0780d4713e1f458e132bec28f37b.tar.gz u-boot-imx-aca6f560d03a0780d4713e1f458e132bec28f37b.tar.bz2 |
ENGR00121379: MX28 U-BOOT enhancements
MX28 U-BOOT enhancements.
Signed-off-by: Terry Lv <r65388@freescale.com>
Diffstat (limited to 'include/asm-arm')
-rw-r--r-- | include/asm-arm/arch-mx28/clkctrl.h | 64 | ||||
-rw-r--r-- | include/asm-arm/arch-mx28/dbguart.h | 30 | ||||
-rw-r--r-- | include/asm-arm/arch-mx28/mx28.h | 11 | ||||
-rw-r--r-- | include/asm-arm/arch-mx28/ocotp.h | 69 | ||||
-rw-r--r-- | include/asm-arm/arch-mx28/pinmux.h | 42 | ||||
-rw-r--r-- | include/asm-arm/arch-mx28/spi.h | 69 | ||||
-rw-r--r-- | include/asm-arm/arch-mx28/ssp.h | 100 | ||||
-rw-r--r-- | include/asm-arm/arch-mx28/timrot.h | 63 | ||||
-rw-r--r-- | include/asm-arm/fec.h | 6 |
9 files changed, 17 insertions, 437 deletions
diff --git a/include/asm-arm/arch-mx28/clkctrl.h b/include/asm-arm/arch-mx28/clkctrl.h deleted file mode 100644 index 76db80c..0000000 --- a/include/asm-arm/arch-mx28/clkctrl.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2008 Embedded Alley Solutions Inc. - * - * (C) Copyright 2009 Freescale Semiconductor, Inc. - * - * Clock control register descriptions - * - * 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 CLKCTRL_H -#define CLKCTRL_H - -#include <asm/arch/mx28.h> - -#define CLKCTRL_BASE (MX28_REGS_BASE + 0x40000) - -#define CLKCTRL_PLLCTRL0 0x000 -#define CLKCTRL_PLLCTRL1 0x010 -#define CLKCTRL_CPU 0x020 -#define CLKCTRL_HBUS 0x030 -#define CLKCTRL_XBUS 0x040 -#define CLKCTRL_XTAL 0x050 -#define CLKCTRL_PIX 0x060 -#define CLKCTRL_SSP 0x070 -#define CLKCTRL_GPMI 0x080 -#define CLKCTRL_SPDIF 0x090 -#define CLKCTRL_EMI 0x0a0 -#define CLKCTRL_IR 0x0b0 -#define CLKCTRL_SAIF 0x0c0 -#define CLKCTRL_TV 0x0d0 -#define CLKCTRL_ETM 0x0e0 -#define CLKCTRL_FRAC 0x0f0 -#define CLKCTRL_FRAC1 0x100 -#define CLKCTRL_CLKSEQ 0x110 -#define CLKCTRL_RESET 0x120 -#define CLKCTRL_STATUS 0x130 -#define CLKCTRL_VERSION 0x140 - -/* CLKCTRL_SSP register bits, bit fields and values */ -#define SSP_CLKGATE (1 << 31) -#define SSP_BUSY (1 << 29) -#define SSP_DIV_FRAC_EN (1 << 9) -#define SSP_DIV 0 - -/* CLKCTRL_FRAC register bits, bit fields and values */ -#define FRAC_CLKGATEIO (1 << 31) -#define FRAC_IOFRAC 24 - -/* CLKCTRL_FRAC register bits, bit fields and values */ -#define CLKSEQ_BYPASS_SSP (1 << 5) - -#endif /* CLKCTRL_H */ diff --git a/include/asm-arm/arch-mx28/dbguart.h b/include/asm-arm/arch-mx28/dbguart.h deleted file mode 100644 index b9a4bae..0000000 --- a/include/asm-arm/arch-mx28/dbguart.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2008 Embedded Alley Solutions Inc. - * - * (C) Copyright 2009 Freescale Semiconductor, Inc. - * - * Debug UART register definitions - * - * 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 DBGUART_H -#define DBGUART_H - -#include <asm/arch/mx28.h> - -#define DBGUART_BASE (MX28_REGS_BASE + 0x00070000) - -#endif /* DBGUART_H */ diff --git a/include/asm-arm/arch-mx28/mx28.h b/include/asm-arm/arch-mx28/mx28.h index c050fdf..fc671ae 100644 --- a/include/asm-arm/arch-mx28/mx28.h +++ b/include/asm-arm/arch-mx28/mx28.h @@ -20,6 +20,17 @@ #ifndef __MX28_H #define __MX28_H +#ifndef __ASSEMBLER__ +enum mxc_clock { + MXC_ARM_CLK = 0, + MXC_AHB_CLK, + MXC_IPG_CLK, +}; + +unsigned int mxc_get_clock(enum mxc_clock clk); +void enet_board_init(void); +#endif + /* * Most of i.MX28 SoC registers are associated with four addresses * used for different operations - read/write, set, clear and toggle bits. diff --git a/include/asm-arm/arch-mx28/ocotp.h b/include/asm-arm/arch-mx28/ocotp.h deleted file mode 100644 index 9396820..0000000 --- a/include/asm-arm/arch-mx28/ocotp.h +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright 2009 Freescale Semiconductor, Inc. - * - * On-Chip OTP register descriptions - * - * 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 OCOTP_H -#define OCOTP_H - -#include <asm/arch/mx28.h> - -#define OCOTP_BASE (MX28_REGS_BASE + 0x2c000) - -#define OCOTP_CTRL 0x000 -#define OCOTP_CTRL_SET 0x004 -#define OCOTP_CTRL_CLR 0x008 -#define OCOTP_CTRL_TOG 0x00c -#define OCOTP_DATA 0x010 -#define OCOTP_CUST0 0x020 -#define OCOTP_CUST1 0x030 -#define OCOTP_CUST2 0x040 -#define OCOTP_CUST3 0x050 -#define OCOTP_CRYPTO1 0x070 -#define OCOTP_CRYPTO2 0x080 -#define OCOTP_CRYPTO3 0x090 -#define OCOTP_HWCAP0 0x0a0 -#define OCOTP_HWCAP1 0x0b0 -#define OCOTP_HWCAP2 0x0c0 -#define OCOTP_HWCAP3 0x0d0 -#define OCOTP_HWCAP4 0x0e0 -#define OCOTP_HWCAP5 0x0f0 -#define OCOTP_SWCAP 0x100 -#define OCOTP_CUSTCAP 0x110 -#define OCOTP_LOCK 0x120 -#define OCOTP_OPS0 0x130 -#define OCOTP_OPS1 0x140 -#define OCOTP_OPS2 0x150 -#define OCOTP_OPS3 0x160 -#define OCOTP_UN0 0x170 -#define OCOTP_UN1 0x180 -#define OCOTP_UN2 0x190 -#define OCOTP_ROM0 0x1a0 -#define OCOTP_ROM1 0x1b0 -#define OCOTP_ROM2 0x1c0 -#define OCOTP_ROM3 0x1d0 -#define OCOTP_ROM4 0x1e0 -#define OCOTP_ROM5 0x1f0 -#define OCOTP_ROM6 0x200 -#define OCOTP_ROM7 0x210 -#define OCOTP_VERSION 0x220 - - -/* OCOTP_CTRL register bits, bit fields and values */ -#define CTRL_RD_BANK_OPEN (1 << 12) -#define CTRL_BUSY (8 << 12) - -#endif /* OCOTP_H */ diff --git a/include/asm-arm/arch-mx28/pinmux.h b/include/asm-arm/arch-mx28/pinmux.h deleted file mode 100644 index db581bc..0000000 --- a/include/asm-arm/arch-mx28/pinmux.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (C) 2008 Embedded Alley Solutions Inc. - * - * (C) Copyright 2009 Freescale Semiconductor, Inc. - * - * Clock control register descriptions - * - * 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 PINMUX_H -#define PINMUX_H - -#include <asm/arch/mx28.h> - -#define PINCTRL_BASE (MX28_REGS_BASE + 0x18000) - -#define PINCTRL_CTRL 0x000 -#define PINCTRL_MUXSEL(n) (0x100 + 0x10*(n)) -#define PINCTRL_DRIVE(n) (0x200 + 0x10*(n)) -#define PINCTRL_PULL(n) (0x400 + 0x10*(n)) -#define PINCTRL_DOUT(n) (0x500 + 0x10*(n)) -#define PINCTRL_DIN(n) (0x600 + 0x10*(n)) -#define PINCTRL_DOE(n) (0x700 + 0x10*(n)) -#define PINCTRL_PIN2IRQ(n) (0x800 + 0x10*(n)) -#define PINCTRL_IRQEN(n) (0x900 + 0x10*(n)) -#define PINCTRL_IRQLEVEL(n) (0xa00 + 0x10*(n)) -#define PINCTRL_IRQPOL(n) (0xb00 + 0x10*(n)) -#define PINCTRL_IRQSTAT(n) (0xc00 + 0x10*(n)) - -#endif /* PINMUX_H */ diff --git a/include/asm-arm/arch-mx28/spi.h b/include/asm-arm/arch-mx28/spi.h deleted file mode 100644 index afd3245..0000000 --- a/include/asm-arm/arch-mx28/spi.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2008 Embedded Alley Solutions Inc. - * - * (C) Copyright 2009 Freescale Semiconductor, Inc. - * - * SSP/SPI driver - * - * 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 SPI_H -#define SPI_H - -#include <config.h> -#include <common.h> -#include <asm/arch/ssp.h> - -/* - * Flags to set SPI mode - */ -#define SPI_PHASE 0x1 /* Set phase to 1 */ -#define SPI_POLARITY 0x2 /* Set polarity to 1 */ - -/* Various flags to control SPI transfers */ -#define SPI_START 0x1 /* Lock CS signal */ -#define SPI_STOP 0x2 /* Unlock CS signal */ - -/* - * Init SSPx interface, must be called first - */ -void spi_init(void); - -/* - * Set phase, polarity and CS number (SS0, SS1, SS2) - */ -void spi_set_cfg(unsigned int bus, unsigned int cs, unsigned long mode); - - -/* - * Send @rx_len bytes from @dout, then receive @rx_len bytes - * saving them to @din - */ -void spi_txrx(const char *dout, unsigned int tx_len, char *din, - unsigned int rx_len, unsigned long flags); - - -/* Lock/unlock SPI bus */ -static inline void spi_lock(void) -{ - disable_interrupts(); -} - -static inline void spi_unlock(void) -{ - enable_interrupts(); -} - -#endif /* SPI_H */ diff --git a/include/asm-arm/arch-mx28/ssp.h b/include/asm-arm/arch-mx28/ssp.h deleted file mode 100644 index f6e8e28..0000000 --- a/include/asm-arm/arch-mx28/ssp.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2008 Embedded Alley Solutions Inc. - * - * (C) Copyright 2009 Freescale Semiconductor, Inc. - * - * SSP register definitions - * - * 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 SSP_H -#define SSP_H - -#include <asm/arch/mx28.h> - -#define SSP1_BASE (MX28_REGS_BASE + 0x10000) -#define SSP2_BASE (MX28_REGS_BASE + 0x34000) - -#define SSP_CTRL0 0x000 -#define SSP_CMD0 0x010 -#define SSP_CMD1 0x020 -#define SSP_COMPREF 0x030 -#define SSP_COMPMASK 0x040 -#define SSP_TIMING 0x050 -#define SSP_CTRL1 0x060 -#define SSP_DATA 0x070 -#define SSP_SDRESP0 0x080 -#define SSP_SDRESP1 0x090 -#define SSP_SDRESP2 0x0a0 -#define SSP_SDRESP3 0x0b0 -#define SSP_STATUS 0x0c0 -#define SSP_DEBUG 0x100 -#define SSP_VERSION 0x110 - -/* CTRL0 bits, bit fields and values */ -#define CTRL0_SFTRST (0x1 << 31) -#define CTRL0_CLKGATE (0x1 << 30) -#define CTRL0_RUN (0x1 << 29) -#define CTRL0_LOCK_CS (0x1 << 27) -#define CTRL0_IGNORE_CRC (0x1 << 26) -#define CTRL0_DATA_XFER (0x1 << 24) -#define CTRL0_READ (0x1 << 25) -#define CTRL0_BUS_WIDTH 22 -#define CTRL0_WAIT_FOR_IRQ (0x1 << 21) -#define CTRL0_WAIT_FOR_CMD (0x1 << 20) -#define CTRL0_XFER_COUNT 0 - -#define BUS_WIDTH_SPI1 (0x0 << CTRL0_BUS_WIDTH) -#define BUS_WIDTH_SPI4 (0x1 << CTRL0_BUS_WIDTH) -#define BUS_WIDTH_SPI8 (0x2 << CTRL0_BUS_WIDTH) - -#define SPI_CS0 0x0 -#define SPI_CS1 CTRL0_WAIT_FOR_CMD -#define SPI_CS2 CTRL0_WAIT_FOR_IRQ -#define SPI_CS_CLR_MASK (CTRL0_WAIT_FOR_CMD | CTRL0_WAIT_FOR_IRQ) - -/* CMD0 bits, bit fields and values */ -#define CMD0_BLOCK_SIZE 16 -#define CMD0_BLOCK_COUNT 12 -#define CMD0_CMD 0 - -/* TIMING bits, bit fields and values */ -#define TIMING_TIMEOUT 16 -#define TIMING_CLOCK_DIVIDE 8 -#define TIMING_CLOCK_RATE 0 - -/* CTRL1 bits, bit fields and values */ -#define CTRL1_DMA_ENABLE (0x1 << 13) -#define CTRL1_PHASE (0x1 << 10) -#define CTRL1_POLARITY (0x1 << 9) -#define CTRL1_SLAVE_MODE (0x1 << 8) -#define CTRL1_WORD_LENGTH 4 -#define CTRL1_SSP_MODE 0 - -#define WORD_LENGTH4 (0x3 << CTRL1_WORD_LENGTH) -#define WORD_LENGTH8 (0x7 << CTRL1_WORD_LENGTH) -#define WORD_LENGTH16 (0xF << CTRL1_WORD_LENGTH) - -#define SSP_MODE_SPI (0x0 << CTRL1_SSP_MODE) -#define SSP_MODE_SSI (0x1 << CTRL1_SSP_MODE) -#define SSP_MODE_SD_MMC (0x3 << CTRL1_SSP_MODE) -#define SSP_MODE_MS (0x4 << CTRL1_SSP_MODE) -#define SSP_MODE_ATA (0x7 << CTRL1_SSP_MODE) - -/* CTRL1 bits, bit fields and values */ -#define STATUS_FIFO_EMPTY (1 << 5) -#define STATUS_FIFO_FULL (1 << 8) - -#endif /* SSP_H */ diff --git a/include/asm-arm/arch-mx28/timrot.h b/include/asm-arm/arch-mx28/timrot.h deleted file mode 100644 index ec9e716..0000000 --- a/include/asm-arm/arch-mx28/timrot.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2008 Embedded Alley Solutions Inc. - * - * (C) Copyright 2009 Freescale Semiconductor, Inc. - * - * Timers and rotary encoder register definitions - * - * 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 TIMROT_H -#define TIMROT_H - -#include <asm/arch/mx28.h> - -#define TIMROT_BASE (MX28_REGS_BASE + 0x00068000) - -/* Timer and rotary encoder register offsets */ -#define ROTCTRL 0x0 -#define ROTCOUNT 0x10 -#define TIMCTRL0 0x20 -#define TIMCOUNT0 0x30 -#define TIMCTRL1 0x40 -#define TIMCOUNT1 0x50 -#define TIMCTRL2 0x60 -#define TIMCOUNT2 0x70 -#define TIMCTRL3 0x80 -#define TIMCTRL3 0x90 - -/* TIMCTRL bits, bit fields and values */ -#define TIMCTRL_SELECT 0 -#define TIMCTRL_PRESCALE 4 -#define TIMCTRL_RELOAD (1 << 6) -#define TIMCTRL_UPDATE (1 << 7) -#define TIMCTRL_POLARITY (1 << 8) -#define TIMCTRL_IRQEN (1 << 14) -#define TIMCTRL_IRQ (1 << 15) - -#define TIMCTRL_SELECT_PWM0 (0x1 << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_PWM1 (0x2 << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_PWM2 (0x3 << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_PWM3 (0x4 << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_PWM4 (0x5 << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_ROTARYA (0x6 << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_ROTARYB (0x7 << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_32KHZ (0x8 << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_8KHZ (0x9 << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_4KHZ (0xa << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_1KHZ (0xb << TIMCTRL_SELECT) -#define TIMCTRL_SELECT_ALWAYS (0xc << TIMCTRL_SELECT) - -#endif /* TIMROT_H */ diff --git a/include/asm-arm/fec.h b/include/asm-arm/fec.h index 4e81fa0..226bb26 100644 --- a/include/asm-arm/fec.h +++ b/include/asm-arm/fec.h @@ -261,4 +261,10 @@ typedef struct fec { #define FEC_MAX_TIMEOUT 50000 #define FEC_TIMEOUT_TICKET 2 + +/* + * Functions + */ +int mxc_fec_initialize(bd_t *bis); + #endif /* fec_h */ |