Merge branch 'u-boot-imx/master' into 'u-boot-arm/master'
Conflicts: drivers/mtd/nand/mxc_nand_spl.c include/configs/m28evk.h
This commit is contained in:
commit
ec7023db8d
1
.gitignore
vendored
1
.gitignore
vendored
@ -46,6 +46,7 @@
|
||||
/u-boot.ais
|
||||
/u-boot.dtb
|
||||
/u-boot.sb
|
||||
/u-boot.bd
|
||||
/u-boot.geany
|
||||
|
||||
#
|
||||
|
@ -664,6 +664,7 @@ Fabio Estevam <fabio.estevam@freescale.com>
|
||||
mx6qsabresd i.MX6Q
|
||||
mx6qsabreauto i.MX6Q
|
||||
wandboard i.MX6DL/S
|
||||
mx6slevk i.MX6SL
|
||||
|
||||
Daniel Gorsulowski <daniel.gorsulowski@esd.eu>
|
||||
|
||||
@ -877,6 +878,8 @@ Stefan Roese <sr@denx.de>
|
||||
|
||||
x600 ARM926EJS (spear600 Soc)
|
||||
|
||||
titanium i.MX6Q
|
||||
|
||||
pdnb3 xscale/ixp
|
||||
scpu xscale/ixp
|
||||
|
||||
@ -954,6 +957,7 @@ Marek Vasut <marek.vasut@gmail.com>
|
||||
mx23_olinuxino i.MX23
|
||||
m28evk i.MX28
|
||||
sc_sps_1 i.MX28
|
||||
m53evk i.MX53
|
||||
|
||||
Hugo Villeneuve <hugo.villeneuve@lyrtech.com>
|
||||
|
||||
|
9
Makefile
9
Makefile
@ -341,7 +341,7 @@ ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP34XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(C
|
||||
LIBS-y += $(CPUDIR)/omap-common/libomap-common.o
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35))
|
||||
ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35 mxs))
|
||||
LIBS-y += arch/$(ARCH)/imx-common/libimx-common.o
|
||||
endif
|
||||
|
||||
@ -522,13 +522,9 @@ $(obj)u-boot.ais: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
|
||||
cat $(obj)spl/u-boot-spl-pad.ais $(obj)u-boot.img > \
|
||||
$(obj)u-boot.ais
|
||||
|
||||
# Specify the target for use in elftosb call
|
||||
ELFTOSB_TARGET-$(CONFIG_MX23) = imx23
|
||||
ELFTOSB_TARGET-$(CONFIG_MX28) = imx28
|
||||
|
||||
$(obj)u-boot.sb: $(obj)u-boot.bin $(obj)spl/u-boot-spl.bin
|
||||
elftosb -zf $(ELFTOSB_TARGET-y) -c $(TOPDIR)/$(CPUDIR)/$(SOC)/u-boot-$(ELFTOSB_TARGET-y).bd \
|
||||
-o $(obj)u-boot.sb
|
||||
$(MAKE) -C $(SRCTREE)/$(CPUDIR)/$(SOC)/ $(OBJTREE)/u-boot.sb
|
||||
|
||||
# On x600 (SPEAr600) U-Boot is appended to U-Boot SPL.
|
||||
# Both images are created using mkimage (crc etc), so that the ROM
|
||||
@ -871,6 +867,7 @@ clobber: tidy
|
||||
@rm -f $(obj)u-boot.ais
|
||||
@rm -f $(obj)u-boot.dtb
|
||||
@rm -f $(obj)u-boot.sb
|
||||
@rm -f $(obj)u-boot.bd
|
||||
@rm -f $(obj)u-boot.spr
|
||||
@rm -f $(obj)nand_spl/{u-boot.{lds,lst},System.map}
|
||||
@rm -f $(obj)nand_spl/{u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map}
|
||||
|
1
README
1
README
@ -844,6 +844,7 @@ The following options need to be configured:
|
||||
CONFIG_CMD_FDOS * Dos diskette Support
|
||||
CONFIG_CMD_FLASH flinfo, erase, protect
|
||||
CONFIG_CMD_FPGA FPGA device initialization support
|
||||
CONFIG_CMD_FUSE Device fuse support
|
||||
CONFIG_CMD_GETTIME * Get time since boot
|
||||
CONFIG_CMD_GO * the 'go' command (exec code)
|
||||
CONFIG_CMD_GREPENV * search environment
|
||||
|
@ -29,7 +29,6 @@ LIB = $(obj)lib$(SOC).o
|
||||
|
||||
COBJS += generic.o
|
||||
COBJS += timer.o
|
||||
COBJS += iomux.o
|
||||
COBJS += mx35_sdram.o
|
||||
|
||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||
|
@ -1,114 +0,0 @@
|
||||
/*
|
||||
* Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/mx35_pins.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
|
||||
/*
|
||||
* IOMUX register (base) addresses
|
||||
*/
|
||||
enum iomux_reg_addr {
|
||||
IOMUXGPR = IOMUXC_BASE_ADDR, /* General purpose */
|
||||
IOMUXSW_MUX_CTL = IOMUXC_BASE_ADDR + 4, /* MUX control */
|
||||
IOMUXSW_MUX_END = IOMUXC_BASE_ADDR + 0x324, /* last MUX control */
|
||||
IOMUXSW_PAD_CTL = IOMUXC_BASE_ADDR + 0x328, /* Pad control */
|
||||
IOMUXSW_PAD_END = IOMUXC_BASE_ADDR + 0x794, /* last Pad control */
|
||||
IOMUXSW_INPUT_CTL = IOMUXC_BASE_ADDR + 0x7AC, /* input select */
|
||||
IOMUXSW_INPUT_END = IOMUXC_BASE_ADDR + 0x9F4, /* last input select */
|
||||
};
|
||||
|
||||
#define MUX_PIN_NUM_MAX \
|
||||
(((IOMUXSW_PAD_END - IOMUXSW_PAD_CTL) >> 2) + 1)
|
||||
#define MUX_INPUT_NUM_MUX \
|
||||
(((IOMUXSW_INPUT_END - IOMUXSW_INPUT_CTL) >> 2) + 1)
|
||||
|
||||
/*
|
||||
* Request ownership for an IO pin. This function has to be the first one
|
||||
* being called before that pin is used.
|
||||
*/
|
||||
void mxc_request_iomux(iomux_pin_name_t pin, iomux_pin_cfg_t cfg)
|
||||
{
|
||||
u32 mux_reg = PIN_TO_IOMUX_MUX(pin);
|
||||
|
||||
if (mux_reg != NON_MUX_I) {
|
||||
mux_reg += IOMUXGPR;
|
||||
writel(cfg, mux_reg);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Release ownership for an IO pin
|
||||
*/
|
||||
void mxc_free_iomux(iomux_pin_name_t pin, iomux_pin_cfg_t cfg)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* This function configures the pad value for a IOMUX pin.
|
||||
*
|
||||
* @param pin a pin number as defined in iomux_pin_name_t
|
||||
* @param config the ORed value of elements defined in iomux_pad_config_t
|
||||
*/
|
||||
void mxc_iomux_set_pad(iomux_pin_name_t pin, u32 config)
|
||||
{
|
||||
u32 pad_reg = IOMUXGPR + PIN_TO_IOMUX_PAD(pin);
|
||||
|
||||
writel(config, pad_reg);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function enables/disables the general purpose function for a particular
|
||||
* signal.
|
||||
*
|
||||
* @param gp one signal as defined in iomux_gp_func_t
|
||||
* @param en enable/disable
|
||||
*/
|
||||
void mxc_iomux_set_gpr(iomux_gp_func_t gp, int en)
|
||||
{
|
||||
u32 l;
|
||||
|
||||
l = readl(IOMUXGPR);
|
||||
if (en)
|
||||
l |= gp;
|
||||
else
|
||||
l &= ~gp;
|
||||
|
||||
writel(l, IOMUXGPR);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function configures input path.
|
||||
*
|
||||
* @param input index of input select register as defined in
|
||||
* iomux_input_select_t
|
||||
* @param config the binary value of elements defined in
|
||||
* iomux_input_config_t
|
||||
*/
|
||||
void mxc_iomux_set_input(iomux_input_select_t input, u32 config)
|
||||
{
|
||||
u32 reg = IOMUXSW_INPUT_CTL + (input << 2);
|
||||
|
||||
writel(config, reg);
|
||||
}
|
@ -27,7 +27,6 @@
|
||||
#include <netdev.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/imx25-pinmux.h>
|
||||
#include <asm/arch/clock.h>
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
@ -248,123 +247,7 @@ int cpu_mmc_init(bd_t *bis)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MXC_UART
|
||||
void mx25_uart1_init_pins(void)
|
||||
{
|
||||
struct iomuxc_mux_ctl *muxctl;
|
||||
struct iomuxc_pad_ctl *padctl;
|
||||
u32 inpadctl;
|
||||
u32 outpadctl;
|
||||
u32 muxmode0;
|
||||
|
||||
muxctl = (struct iomuxc_mux_ctl *)IMX_IOPADMUX_BASE;
|
||||
padctl = (struct iomuxc_pad_ctl *)IMX_IOPADCTL_BASE;
|
||||
muxmode0 = MX25_PIN_MUX_MODE(0);
|
||||
/*
|
||||
* set up input pins with hysteresis and 100K pull-ups
|
||||
*/
|
||||
inpadctl = MX25_PIN_PAD_CTL_HYS
|
||||
| MX25_PIN_PAD_CTL_PKE
|
||||
| MX25_PIN_PAD_CTL_PUE | MX25_PIN_PAD_CTL_100K_PU;
|
||||
|
||||
/*
|
||||
* set up output pins with 100K pull-downs
|
||||
* FIXME: need to revisit this
|
||||
* PUE is ignored if PKE is not set
|
||||
* so the right value here is likely
|
||||
* 0x0 for no pull up/down
|
||||
* or
|
||||
* 0xc0 for 100k pull down
|
||||
*/
|
||||
outpadctl = MX25_PIN_PAD_CTL_PUE | MX25_PIN_PAD_CTL_100K_PD;
|
||||
|
||||
/* UART1 */
|
||||
/* rxd */
|
||||
writel(muxmode0, &muxctl->pad_uart1_rxd);
|
||||
writel(inpadctl, &padctl->pad_uart1_rxd);
|
||||
|
||||
/* txd */
|
||||
writel(muxmode0, &muxctl->pad_uart1_txd);
|
||||
writel(outpadctl, &padctl->pad_uart1_txd);
|
||||
|
||||
/* rts */
|
||||
writel(muxmode0, &muxctl->pad_uart1_rts);
|
||||
writel(outpadctl, &padctl->pad_uart1_rts);
|
||||
|
||||
/* cts */
|
||||
writel(muxmode0, &muxctl->pad_uart1_cts);
|
||||
writel(inpadctl, &padctl->pad_uart1_cts);
|
||||
}
|
||||
#endif /* CONFIG_MXC_UART */
|
||||
|
||||
#ifdef CONFIG_FEC_MXC
|
||||
void mx25_fec_init_pins(void)
|
||||
{
|
||||
struct iomuxc_mux_ctl *muxctl;
|
||||
struct iomuxc_pad_ctl *padctl;
|
||||
u32 inpadctl_100kpd;
|
||||
u32 inpadctl_22kpu;
|
||||
u32 outpadctl;
|
||||
u32 muxmode0;
|
||||
|
||||
muxctl = (struct iomuxc_mux_ctl *)IMX_IOPADMUX_BASE;
|
||||
padctl = (struct iomuxc_pad_ctl *)IMX_IOPADCTL_BASE;
|
||||
muxmode0 = MX25_PIN_MUX_MODE(0);
|
||||
inpadctl_100kpd = MX25_PIN_PAD_CTL_HYS
|
||||
| MX25_PIN_PAD_CTL_PKE
|
||||
| MX25_PIN_PAD_CTL_PUE | MX25_PIN_PAD_CTL_100K_PD;
|
||||
inpadctl_22kpu = MX25_PIN_PAD_CTL_HYS
|
||||
| MX25_PIN_PAD_CTL_PKE
|
||||
| MX25_PIN_PAD_CTL_PUE | MX25_PIN_PAD_CTL_22K_PU;
|
||||
/*
|
||||
* set up output pins with 100K pull-downs
|
||||
* FIXME: need to revisit this
|
||||
* PUE is ignored if PKE is not set
|
||||
* so the right value here is likely
|
||||
* 0x0 for no pull
|
||||
* or
|
||||
* 0xc0 for 100k pull down
|
||||
*/
|
||||
outpadctl = MX25_PIN_PAD_CTL_PUE | MX25_PIN_PAD_CTL_100K_PD;
|
||||
|
||||
/* FEC_TX_CLK */
|
||||
writel(muxmode0, &muxctl->pad_fec_tx_clk);
|
||||
writel(inpadctl_100kpd, &padctl->pad_fec_tx_clk);
|
||||
|
||||
/* FEC_RX_DV */
|
||||
writel(muxmode0, &muxctl->pad_fec_rx_dv);
|
||||
writel(inpadctl_100kpd, &padctl->pad_fec_rx_dv);
|
||||
|
||||
/* FEC_RDATA0 */
|
||||
writel(muxmode0, &muxctl->pad_fec_rdata0);
|
||||
writel(inpadctl_100kpd, &padctl->pad_fec_rdata0);
|
||||
|
||||
/* FEC_TDATA0 */
|
||||
writel(muxmode0, &muxctl->pad_fec_tdata0);
|
||||
writel(outpadctl, &padctl->pad_fec_tdata0);
|
||||
|
||||
/* FEC_TX_EN */
|
||||
writel(muxmode0, &muxctl->pad_fec_tx_en);
|
||||
writel(outpadctl, &padctl->pad_fec_tx_en);
|
||||
|
||||
/* FEC_MDC */
|
||||
writel(muxmode0, &muxctl->pad_fec_mdc);
|
||||
writel(outpadctl, &padctl->pad_fec_mdc);
|
||||
|
||||
/* FEC_MDIO */
|
||||
writel(muxmode0, &muxctl->pad_fec_mdio);
|
||||
writel(inpadctl_22kpu, &padctl->pad_fec_mdio);
|
||||
|
||||
/* FEC_RDATA1 */
|
||||
writel(muxmode0, &muxctl->pad_fec_rdata1);
|
||||
writel(inpadctl_100kpd, &padctl->pad_fec_rdata1);
|
||||
|
||||
/* FEC_TDATA1 */
|
||||
writel(muxmode0, &muxctl->pad_fec_tdata1);
|
||||
writel(outpadctl, &padctl->pad_fec_tdata1);
|
||||
|
||||
}
|
||||
|
||||
void imx_get_mac_from_fuse(int dev_id, unsigned char *mac)
|
||||
{
|
||||
int i;
|
||||
|
@ -40,6 +40,16 @@ all: $(obj).depend $(LIB)
|
||||
$(LIB): $(OBJS)
|
||||
$(call cmd_link_o_target, $(OBJS))
|
||||
|
||||
# Specify the target for use in elftosb call
|
||||
ELFTOSB_TARGET-$(CONFIG_MX23) = imx23
|
||||
ELFTOSB_TARGET-$(CONFIG_MX28) = imx28
|
||||
|
||||
$(OBJTREE)/u-boot.bd: $(SRCTREE)/$(CPUDIR)/$(SOC)/u-boot-$(ELFTOSB_TARGET-y).bd
|
||||
sed "s@OBJTREE@$(OBJTREE)@g" $^ > $@
|
||||
|
||||
$(OBJTREE)/u-boot.sb: $(OBJTREE)/u-boot.bin $(OBJTREE)/spl/u-boot-spl.bin $(OBJTREE)/u-boot.bd
|
||||
elftosb -zf $(ELFTOSB_TARGET-y) -c $(OBJTREE)/u-boot.bd -o $(OBJTREE)/u-boot.sb
|
||||
|
||||
#########################################################################
|
||||
|
||||
# defines $(obj).depend target
|
||||
|
@ -325,6 +325,99 @@ void mxs_set_ssp_busclock(unsigned int bus, uint32_t freq)
|
||||
bus, tgtclk, freq);
|
||||
}
|
||||
|
||||
void mxs_set_lcdclk(uint32_t freq)
|
||||
{
|
||||
struct mxs_clkctrl_regs *clkctrl_regs =
|
||||
(struct mxs_clkctrl_regs *)MXS_CLKCTRL_BASE;
|
||||
uint32_t fp, x, k_rest, k_best, x_best, tk;
|
||||
int32_t k_best_l = 999, k_best_t = 0, x_best_l = 0xff, x_best_t = 0xff;
|
||||
|
||||
if (freq == 0)
|
||||
return;
|
||||
|
||||
#if defined(CONFIG_MX23)
|
||||
writel(CLKCTRL_CLKSEQ_BYPASS_PIX, &clkctrl_regs->hw_clkctrl_clkseq_clr);
|
||||
#elif defined(CONFIG_MX28)
|
||||
writel(CLKCTRL_CLKSEQ_BYPASS_DIS_LCDIF, &clkctrl_regs->hw_clkctrl_clkseq_clr);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* / 18 \ 1 1
|
||||
* freq kHz = | 480000000 Hz * -- | * --- * ------
|
||||
* \ x / k 1000
|
||||
*
|
||||
* 480000000 Hz 18
|
||||
* ------------ * --
|
||||
* freq kHz x
|
||||
* k = -------------------
|
||||
* 1000
|
||||
*/
|
||||
|
||||
fp = ((PLL_FREQ_KHZ * 1000) / freq) * 18;
|
||||
|
||||
for (x = 18; x <= 35; x++) {
|
||||
tk = fp / x;
|
||||
if ((tk / 1000 == 0) || (tk / 1000 > 255))
|
||||
continue;
|
||||
|
||||
k_rest = tk % 1000;
|
||||
|
||||
if (k_rest < (k_best_l % 1000)) {
|
||||
k_best_l = tk;
|
||||
x_best_l = x;
|
||||
}
|
||||
|
||||
if (k_rest > (k_best_t % 1000)) {
|
||||
k_best_t = tk;
|
||||
x_best_t = x;
|
||||
}
|
||||
}
|
||||
|
||||
if (1000 - (k_best_t % 1000) > (k_best_l % 1000)) {
|
||||
k_best = k_best_l;
|
||||
x_best = x_best_l;
|
||||
} else {
|
||||
k_best = k_best_t;
|
||||
x_best = x_best_t;
|
||||
}
|
||||
|
||||
k_best /= 1000;
|
||||
|
||||
#if defined(CONFIG_MX23)
|
||||
writeb(CLKCTRL_FRAC_CLKGATE,
|
||||
&clkctrl_regs->hw_clkctrl_frac0_set[CLKCTRL_FRAC0_PIX]);
|
||||
writeb(CLKCTRL_FRAC_CLKGATE | (x_best & CLKCTRL_FRAC_FRAC_MASK),
|
||||
&clkctrl_regs->hw_clkctrl_frac0[CLKCTRL_FRAC0_PIX]);
|
||||
writeb(CLKCTRL_FRAC_CLKGATE,
|
||||
&clkctrl_regs->hw_clkctrl_frac0_clr[CLKCTRL_FRAC0_PIX]);
|
||||
|
||||
writel(CLKCTRL_PIX_CLKGATE,
|
||||
&clkctrl_regs->hw_clkctrl_pix_set);
|
||||
clrsetbits_le32(&clkctrl_regs->hw_clkctrl_pix,
|
||||
CLKCTRL_PIX_DIV_MASK | CLKCTRL_PIX_CLKGATE,
|
||||
k_best << CLKCTRL_PIX_DIV_OFFSET);
|
||||
|
||||
while (readl(&clkctrl_regs->hw_clkctrl_pix) & CLKCTRL_PIX_BUSY)
|
||||
;
|
||||
#elif defined(CONFIG_MX28)
|
||||
writeb(CLKCTRL_FRAC_CLKGATE,
|
||||
&clkctrl_regs->hw_clkctrl_frac1_set[CLKCTRL_FRAC1_PIX]);
|
||||
writeb(CLKCTRL_FRAC_CLKGATE | (x_best & CLKCTRL_FRAC_FRAC_MASK),
|
||||
&clkctrl_regs->hw_clkctrl_frac1[CLKCTRL_FRAC1_PIX]);
|
||||
writeb(CLKCTRL_FRAC_CLKGATE,
|
||||
&clkctrl_regs->hw_clkctrl_frac1_clr[CLKCTRL_FRAC1_PIX]);
|
||||
|
||||
writel(CLKCTRL_DIS_LCDIF_CLKGATE,
|
||||
&clkctrl_regs->hw_clkctrl_lcdif_set);
|
||||
clrsetbits_le32(&clkctrl_regs->hw_clkctrl_lcdif,
|
||||
CLKCTRL_DIS_LCDIF_DIV_MASK | CLKCTRL_DIS_LCDIF_CLKGATE,
|
||||
k_best << CLKCTRL_DIS_LCDIF_DIV_OFFSET);
|
||||
|
||||
while (readl(&clkctrl_regs->hw_clkctrl_lcdif) & CLKCTRL_DIS_LCDIF_BUSY)
|
||||
;
|
||||
#endif
|
||||
}
|
||||
|
||||
uint32_t mxc_get_clock(enum mxc_clock clk)
|
||||
{
|
||||
switch (clk) {
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include <asm/errno.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/dma.h>
|
||||
#include <asm/imx-common/dma.h>
|
||||
#include <asm/arch/gpio.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
@ -39,12 +39,6 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
/* 1 second delay should be plenty of time for block reset. */
|
||||
#define RESET_MAX_TIMEOUT 1000000
|
||||
|
||||
#define MXS_BLOCK_SFTRST (1 << 31)
|
||||
#define MXS_BLOCK_CLKGATE (1 << 30)
|
||||
|
||||
/* Lowlevel init isn't used on i.MX28, so just have a dummy here */
|
||||
inline void lowlevel_init(void) {}
|
||||
|
||||
@ -82,63 +76,6 @@ void enable_caches(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
int mxs_wait_mask_set(struct mxs_register_32 *reg, uint32_t mask, unsigned
|
||||
int timeout)
|
||||
{
|
||||
while (--timeout) {
|
||||
if ((readl(®->reg) & mask) == mask)
|
||||
break;
|
||||
udelay(1);
|
||||
}
|
||||
|
||||
return !timeout;
|
||||
}
|
||||
|
||||
int mxs_wait_mask_clr(struct mxs_register_32 *reg, uint32_t mask, unsigned
|
||||
int timeout)
|
||||
{
|
||||
while (--timeout) {
|
||||
if ((readl(®->reg) & mask) == 0)
|
||||
break;
|
||||
udelay(1);
|
||||
}
|
||||
|
||||
return !timeout;
|
||||
}
|
||||
|
||||
int mxs_reset_block(struct mxs_register_32 *reg)
|
||||
{
|
||||
/* Clear SFTRST */
|
||||
writel(MXS_BLOCK_SFTRST, ®->reg_clr);
|
||||
|
||||
if (mxs_wait_mask_clr(reg, MXS_BLOCK_SFTRST, RESET_MAX_TIMEOUT))
|
||||
return 1;
|
||||
|
||||
/* Clear CLKGATE */
|
||||
writel(MXS_BLOCK_CLKGATE, ®->reg_clr);
|
||||
|
||||
/* Set SFTRST */
|
||||
writel(MXS_BLOCK_SFTRST, ®->reg_set);
|
||||
|
||||
/* Wait for CLKGATE being set */
|
||||
if (mxs_wait_mask_set(reg, MXS_BLOCK_CLKGATE, RESET_MAX_TIMEOUT))
|
||||
return 1;
|
||||
|
||||
/* Clear SFTRST */
|
||||
writel(MXS_BLOCK_SFTRST, ®->reg_clr);
|
||||
|
||||
if (mxs_wait_mask_clr(reg, MXS_BLOCK_SFTRST, RESET_MAX_TIMEOUT))
|
||||
return 1;
|
||||
|
||||
/* Clear CLKGATE */
|
||||
writel(MXS_BLOCK_CLKGATE, ®->reg_clr);
|
||||
|
||||
if (mxs_wait_mask_clr(reg, MXS_BLOCK_CLKGATE, RESET_MAX_TIMEOUT))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void mx28_fixup_vt(uint32_t start_addr)
|
||||
{
|
||||
uint32_t *vt = (uint32_t *)0x20;
|
||||
|
@ -110,6 +110,7 @@ __weak void mxs_adjust_memory_params(uint32_t *dram_vals)
|
||||
{
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MX28
|
||||
static void initialize_dram_values(void)
|
||||
{
|
||||
int i;
|
||||
@ -118,15 +119,36 @@ static void initialize_dram_values(void)
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(dram_vals); i++)
|
||||
writel(dram_vals[i], MXS_DRAM_BASE + (4 * i));
|
||||
}
|
||||
#else
|
||||
static void initialize_dram_values(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
mxs_adjust_memory_params(dram_vals);
|
||||
|
||||
/*
|
||||
* HW_DRAM_CTL27, HW_DRAM_CTL28 and HW_DRAM_CTL35 are not initialized as
|
||||
* per FSL bootlets code.
|
||||
*
|
||||
* mx23 Reference Manual marks HW_DRAM_CTL27 and HW_DRAM_CTL28 as
|
||||
* "reserved".
|
||||
* HW_DRAM_CTL8 is setup as the last element.
|
||||
* So skip the initialization of these HW_DRAM_CTL registers.
|
||||
*/
|
||||
for (i = 0; i < ARRAY_SIZE(dram_vals); i++) {
|
||||
if (i == 8 || i == 27 || i == 28 || i == 35)
|
||||
continue;
|
||||
writel(dram_vals[i], MXS_DRAM_BASE + (4 * i));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MX23
|
||||
/*
|
||||
* Enable tRAS lockout in HW_DRAM_CTL08 ; it must be the last
|
||||
* element to be set
|
||||
*/
|
||||
writel((1 << 24), MXS_DRAM_BASE + (4 * 8));
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
static void mxs_mem_init_clock(void)
|
||||
{
|
||||
@ -234,17 +256,9 @@ static void mx23_mem_setup_vddmem(void)
|
||||
struct mxs_power_regs *power_regs =
|
||||
(struct mxs_power_regs *)MXS_POWER_BASE;
|
||||
|
||||
writel((0x10 << POWER_VDDMEMCTRL_TRG_OFFSET) |
|
||||
POWER_VDDMEMCTRL_ENABLE_ILIMIT |
|
||||
POWER_VDDMEMCTRL_ENABLE_LINREG |
|
||||
POWER_VDDMEMCTRL_PULLDOWN_ACTIVE,
|
||||
&power_regs->hw_power_vddmemctrl);
|
||||
clrbits_le32(&power_regs->hw_power_vddmemctrl,
|
||||
POWER_VDDMEMCTRL_ENABLE_ILIMIT);
|
||||
|
||||
early_delay(10000);
|
||||
|
||||
writel((0x10 << POWER_VDDMEMCTRL_TRG_OFFSET) |
|
||||
POWER_VDDMEMCTRL_ENABLE_LINREG,
|
||||
&power_regs->hw_power_vddmemctrl);
|
||||
}
|
||||
|
||||
static void mx23_mem_init(void)
|
||||
@ -267,22 +281,18 @@ static void mx23_mem_init(void)
|
||||
|
||||
initialize_dram_values();
|
||||
|
||||
/* Set START bit in DRAM_CTL16 */
|
||||
/* Set START bit in DRAM_CTL8 */
|
||||
setbits_le32(MXS_DRAM_BASE + 0x20, 1 << 16);
|
||||
|
||||
clrbits_le32(MXS_DRAM_BASE + 0x40, 1 << 17);
|
||||
early_delay(20000);
|
||||
|
||||
/* Adjust EMI port priority. */
|
||||
clrsetbits_le32(0x80020000, 0x1f << 16, 0x8);
|
||||
clrsetbits_le32(0x80020000, 0x1f << 16, 0x2);
|
||||
early_delay(20000);
|
||||
|
||||
setbits_le32(MXS_DRAM_BASE + 0x40, 1 << 19);
|
||||
setbits_le32(MXS_DRAM_BASE + 0x40, 1 << 11);
|
||||
|
||||
/* Wait for bit 10 (DRAM init complete) in DRAM_CTL18 */
|
||||
while (!(readl(MXS_DRAM_BASE + 0x48) & (1 << 10)))
|
||||
;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -687,6 +687,12 @@ static void mxs_power_configure_power_source(void)
|
||||
mxs_init_batt_bo();
|
||||
|
||||
mxs_switch_vddd_to_dcdc_source();
|
||||
|
||||
#ifdef CONFIG_MX23
|
||||
/* Fire up the VDDMEM LinReg now that we're all set. */
|
||||
writel(POWER_VDDMEMCTRL_ENABLE_LINREG | POWER_VDDMEMCTRL_ENABLE_ILIMIT,
|
||||
&power_regs->hw_power_vddmemctrl);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void mxs_enable_output_rail_protection(void)
|
||||
@ -781,7 +787,11 @@ struct mxs_vddx_cfg {
|
||||
static const struct mxs_vddx_cfg mxs_vddio_cfg = {
|
||||
.reg = &(((struct mxs_power_regs *)MXS_POWER_BASE)->
|
||||
hw_power_vddioctrl),
|
||||
#if defined(CONFIG_MX23)
|
||||
.step_mV = 25,
|
||||
#else
|
||||
.step_mV = 50,
|
||||
#endif
|
||||
.lowest_mV = 2800,
|
||||
.powered_by_linreg = mxs_get_vddio_power_source_off,
|
||||
.trg_mask = POWER_VDDIOCTRL_TRG_MASK,
|
||||
@ -804,6 +814,21 @@ static const struct mxs_vddx_cfg mxs_vddd_cfg = {
|
||||
.bo_offset_offset = POWER_VDDDCTRL_BO_OFFSET_OFFSET,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_MX23
|
||||
static const struct mxs_vddx_cfg mxs_vddmem_cfg = {
|
||||
.reg = &(((struct mxs_power_regs *)MXS_POWER_BASE)->
|
||||
hw_power_vddmemctrl),
|
||||
.step_mV = 50,
|
||||
.lowest_mV = 1700,
|
||||
.powered_by_linreg = NULL,
|
||||
.trg_mask = POWER_VDDMEMCTRL_TRG_MASK,
|
||||
.bo_irq = 0,
|
||||
.bo_enirq = 0,
|
||||
.bo_offset_mask = 0,
|
||||
.bo_offset_offset = 0,
|
||||
};
|
||||
#endif
|
||||
|
||||
static void mxs_power_set_vddx(const struct mxs_vddx_cfg *cfg,
|
||||
uint32_t new_target, uint32_t new_brownout)
|
||||
{
|
||||
@ -821,9 +846,10 @@ static void mxs_power_set_vddx(const struct mxs_vddx_cfg *cfg,
|
||||
cur_target += cfg->lowest_mV;
|
||||
|
||||
adjust_up = new_target > cur_target;
|
||||
powered_by_linreg = cfg->powered_by_linreg();
|
||||
if (cfg->powered_by_linreg)
|
||||
powered_by_linreg = cfg->powered_by_linreg();
|
||||
|
||||
if (adjust_up) {
|
||||
if (adjust_up && cfg->bo_irq) {
|
||||
if (powered_by_linreg) {
|
||||
bo_int = readl(cfg->reg);
|
||||
clrbits_le32(cfg->reg, cfg->bo_enirq);
|
||||
@ -864,14 +890,16 @@ static void mxs_power_set_vddx(const struct mxs_vddx_cfg *cfg,
|
||||
cur_target += cfg->lowest_mV;
|
||||
} while (new_target > cur_target);
|
||||
|
||||
if (adjust_up && powered_by_linreg) {
|
||||
writel(cfg->bo_irq, &power_regs->hw_power_ctrl_clr);
|
||||
if (bo_int & cfg->bo_enirq)
|
||||
setbits_le32(cfg->reg, cfg->bo_enirq);
|
||||
}
|
||||
if (cfg->bo_irq) {
|
||||
if (adjust_up && powered_by_linreg) {
|
||||
writel(cfg->bo_irq, &power_regs->hw_power_ctrl_clr);
|
||||
if (bo_int & cfg->bo_enirq)
|
||||
setbits_le32(cfg->reg, cfg->bo_enirq);
|
||||
}
|
||||
|
||||
clrsetbits_le32(cfg->reg, cfg->bo_offset_mask,
|
||||
new_brownout << cfg->bo_offset_offset);
|
||||
clrsetbits_le32(cfg->reg, cfg->bo_offset_mask,
|
||||
new_brownout << cfg->bo_offset_offset);
|
||||
}
|
||||
}
|
||||
|
||||
static void mxs_setup_batt_detect(void)
|
||||
@ -910,7 +938,9 @@ void mxs_power_init(void)
|
||||
|
||||
mxs_power_set_vddx(&mxs_vddio_cfg, 3300, 3150);
|
||||
mxs_power_set_vddx(&mxs_vddd_cfg, 1500, 1000);
|
||||
|
||||
#ifdef CONFIG_MX23
|
||||
mxs_power_set_vddx(&mxs_vddmem_cfg, 2500, 1700);
|
||||
#endif
|
||||
writel(POWER_CTRL_VDDD_BO_IRQ | POWER_CTRL_VDDA_BO_IRQ |
|
||||
POWER_CTRL_VDDIO_BO_IRQ | POWER_CTRL_VDD5V_DROOP_IRQ |
|
||||
POWER_CTRL_VBUS_VALID_IRQ | POWER_CTRL_BATT_BO_IRQ |
|
||||
|
@ -4,8 +4,8 @@ options {
|
||||
}
|
||||
|
||||
sources {
|
||||
u_boot_spl="spl/u-boot-spl.bin";
|
||||
u_boot="u-boot.bin";
|
||||
u_boot_spl="OBJTREE/spl/u-boot-spl.bin";
|
||||
u_boot="OBJTREE/u-boot.bin";
|
||||
}
|
||||
|
||||
section (0) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
sources {
|
||||
u_boot_spl="spl/u-boot-spl.bin";
|
||||
u_boot="u-boot.bin";
|
||||
u_boot_spl="OBJTREE/spl/u-boot-spl.bin";
|
||||
u_boot="OBJTREE/u-boot.bin";
|
||||
}
|
||||
|
||||
section (0) {
|
||||
|
@ -27,7 +27,7 @@ include $(TOPDIR)/config.mk
|
||||
|
||||
LIB = $(obj)lib$(SOC).o
|
||||
|
||||
COBJS = soc.o clock.o iomux.o
|
||||
COBJS = soc.o clock.o
|
||||
SOBJS = lowlevel_init.o
|
||||
|
||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||
|
@ -739,10 +739,11 @@ static int config_core_clk(u32 ref, u32 freq)
|
||||
static int config_nfc_clk(u32 nfc_clk)
|
||||
{
|
||||
u32 parent_rate = get_emi_slow_clk();
|
||||
u32 div = parent_rate / nfc_clk;
|
||||
u32 div;
|
||||
|
||||
if (nfc_clk <= 0)
|
||||
if (nfc_clk == 0)
|
||||
return -EINVAL;
|
||||
div = parent_rate / nfc_clk;
|
||||
if (div == 0)
|
||||
div++;
|
||||
if (parent_rate / div > NFC_CLK_MAX)
|
||||
@ -755,6 +756,15 @@ static int config_nfc_clk(u32 nfc_clk)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void enable_nfc_clk(unsigned char enable)
|
||||
{
|
||||
unsigned int cg = enable ? MXC_CCM_CCGR_CG_ON : MXC_CCM_CCGR_CG_OFF;
|
||||
|
||||
clrsetbits_le32(&mxc_ccm->CCGR5,
|
||||
MXC_CCM_CCGR5_EMI_ENFC(MXC_CCM_CCGR_CG_MASK),
|
||||
MXC_CCM_CCGR5_EMI_ENFC(cg));
|
||||
}
|
||||
|
||||
/* Config main_bus_clock for periphs */
|
||||
static int config_periph_clk(u32 ref, u32 freq)
|
||||
{
|
||||
|
@ -1,186 +0,0 @@
|
||||
/*
|
||||
* (C) Copyright 2009 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/mx5x_pins.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
|
||||
/* IOMUX register (base) addresses */
|
||||
enum iomux_reg_addr {
|
||||
IOMUXGPR0 = IOMUXC_BASE_ADDR,
|
||||
IOMUXGPR1 = IOMUXC_BASE_ADDR + 0x004,
|
||||
IOMUXSW_MUX_CTL = IOMUXC_BASE_ADDR,
|
||||
IOMUXSW_MUX_END = IOMUXC_BASE_ADDR + MUX_I_END,
|
||||
IOMUXSW_PAD_CTL = IOMUXC_BASE_ADDR + PAD_I_START,
|
||||
IOMUXSW_INPUT_CTL = IOMUXC_BASE_ADDR + INPUT_CTL_START,
|
||||
};
|
||||
|
||||
#define MUX_PIN_NUM_MAX (((MUX_I_END - MUX_I_START) >> 2) + 1)
|
||||
|
||||
/* Get the iomux register address of this pin */
|
||||
static inline u32 get_mux_reg(iomux_pin_name_t pin)
|
||||
{
|
||||
u32 mux_reg = PIN_TO_IOMUX_MUX(pin);
|
||||
|
||||
#if defined(CONFIG_MX51)
|
||||
if (is_soc_rev(CHIP_REV_2_0) < 0) {
|
||||
/*
|
||||
* Fixup register address:
|
||||
* i.MX51 TO1 has offset with the register
|
||||
* which is define as TO2.
|
||||
*/
|
||||
if ((pin == MX51_PIN_NANDF_RB5) ||
|
||||
(pin == MX51_PIN_NANDF_RB6) ||
|
||||
(pin == MX51_PIN_NANDF_RB7))
|
||||
; /* Do nothing */
|
||||
else if (mux_reg >= 0x2FC)
|
||||
mux_reg += 8;
|
||||
else if (mux_reg >= 0x130)
|
||||
mux_reg += 0xC;
|
||||
}
|
||||
#endif
|
||||
mux_reg += IOMUXSW_MUX_CTL;
|
||||
return mux_reg;
|
||||
}
|
||||
|
||||
/* Get the pad register address of this pin */
|
||||
static inline u32 get_pad_reg(iomux_pin_name_t pin)
|
||||
{
|
||||
u32 pad_reg = PIN_TO_IOMUX_PAD(pin);
|
||||
|
||||
#if defined(CONFIG_MX51)
|
||||
if (is_soc_rev(CHIP_REV_2_0) < 0) {
|
||||
/*
|
||||
* Fixup register address:
|
||||
* i.MX51 TO1 has offset with the register
|
||||
* which is define as TO2.
|
||||
*/
|
||||
if ((pin == MX51_PIN_NANDF_RB5) ||
|
||||
(pin == MX51_PIN_NANDF_RB6) ||
|
||||
(pin == MX51_PIN_NANDF_RB7))
|
||||
; /* Do nothing */
|
||||
else if (pad_reg == 0x4D0 - PAD_I_START)
|
||||
pad_reg += 0x4C;
|
||||
else if (pad_reg == 0x860 - PAD_I_START)
|
||||
pad_reg += 0x9C;
|
||||
else if (pad_reg >= 0x804 - PAD_I_START)
|
||||
pad_reg += 0xB0;
|
||||
else if (pad_reg >= 0x7FC - PAD_I_START)
|
||||
pad_reg += 0xB4;
|
||||
else if (pad_reg >= 0x4E4 - PAD_I_START)
|
||||
pad_reg += 0xCC;
|
||||
else
|
||||
pad_reg += 8;
|
||||
}
|
||||
#endif
|
||||
pad_reg += IOMUXSW_PAD_CTL;
|
||||
return pad_reg;
|
||||
}
|
||||
|
||||
/* Get the last iomux register address */
|
||||
static inline u32 get_mux_end(void)
|
||||
{
|
||||
#if defined(CONFIG_MX51)
|
||||
if (is_soc_rev(CHIP_REV_2_0) < 0)
|
||||
return IOMUXC_BASE_ADDR + (0x3F8 - 4);
|
||||
else
|
||||
return IOMUXC_BASE_ADDR + (0x3F0 - 4);
|
||||
#endif
|
||||
return IOMUXSW_MUX_END;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is used to configure a pin through the IOMUX module.
|
||||
* @param pin a pin number as defined in iomux_pin_name_t
|
||||
* @param cfg an output function as defined in iomux_pin_cfg_t
|
||||
*
|
||||
* @return 0 if successful; Non-zero otherwise
|
||||
*/
|
||||
static void iomux_config_mux(iomux_pin_name_t pin, iomux_pin_cfg_t cfg)
|
||||
{
|
||||
u32 mux_reg = get_mux_reg(pin);
|
||||
|
||||
if ((mux_reg > get_mux_end()) || (mux_reg < IOMUXSW_MUX_CTL))
|
||||
return ;
|
||||
if (cfg == IOMUX_CONFIG_GPIO)
|
||||
writel(PIN_TO_ALT_GPIO(pin), mux_reg);
|
||||
else
|
||||
writel(cfg, mux_reg);
|
||||
}
|
||||
|
||||
/*
|
||||
* Request ownership for an IO pin. This function has to be the first one
|
||||
* being called before that pin is used. The caller has to check the
|
||||
* return value to make sure it returns 0.
|
||||
*
|
||||
* @param pin a name defined by iomux_pin_name_t
|
||||
* @param cfg an input function as defined in iomux_pin_cfg_t
|
||||
*
|
||||
*/
|
||||
void mxc_request_iomux(iomux_pin_name_t pin, iomux_pin_cfg_t cfg)
|
||||
{
|
||||
iomux_config_mux(pin, cfg);
|
||||
}
|
||||
|
||||
/*
|
||||
* Release ownership for an IO pin
|
||||
*
|
||||
* @param pin a name defined by iomux_pin_name_t
|
||||
* @param cfg an input function as defined in iomux_pin_cfg_t
|
||||
*/
|
||||
void mxc_free_iomux(iomux_pin_name_t pin, iomux_pin_cfg_t cfg)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* This function configures the pad value for a IOMUX pin.
|
||||
*
|
||||
* @param pin a pin number as defined in iomux_pin_name_t
|
||||
* @param config the ORed value of elements defined in iomux_pad_config_t
|
||||
*/
|
||||
void mxc_iomux_set_pad(iomux_pin_name_t pin, u32 config)
|
||||
{
|
||||
u32 pad_reg = get_pad_reg(pin);
|
||||
writel(config, pad_reg);
|
||||
}
|
||||
|
||||
unsigned int mxc_iomux_get_pad(iomux_pin_name_t pin)
|
||||
{
|
||||
u32 pad_reg = get_pad_reg(pin);
|
||||
return readl(pad_reg);
|
||||
}
|
||||
|
||||
/*
|
||||
* This function configures daisy-chain
|
||||
*
|
||||
* @param input index of input select register
|
||||
* @param config the binary value of elements
|
||||
*/
|
||||
void mxc_iomux_set_input(iomux_input_select_t input, u32 config)
|
||||
{
|
||||
u32 reg = IOMUXSW_INPUT_CTL + (input << 2);
|
||||
|
||||
writel(config, reg);
|
||||
}
|
@ -72,6 +72,13 @@ u32 get_cpu_rev(void)
|
||||
return system_rev;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_REVISION_TAG
|
||||
u32 __weak get_board_rev(void)
|
||||
{
|
||||
return get_cpu_rev();
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_DCACHE_OFF
|
||||
void enable_caches(void)
|
||||
{
|
||||
|
@ -37,6 +37,20 @@ enum pll_clocks {
|
||||
|
||||
struct mxc_ccm_reg *imx_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
|
||||
|
||||
#ifdef CONFIG_MXC_OCOTP
|
||||
void enable_ocotp_clk(unsigned char enable)
|
||||
{
|
||||
u32 reg;
|
||||
|
||||
reg = __raw_readl(&imx_ccm->CCGR2);
|
||||
if (enable)
|
||||
reg |= MXC_CCM_CCGR2_OCOTP_CTRL_MASK;
|
||||
else
|
||||
reg &= ~MXC_CCM_CCGR2_OCOTP_CTRL_MASK;
|
||||
__raw_writel(reg, &imx_ccm->CCGR2);
|
||||
}
|
||||
#endif
|
||||
|
||||
void enable_usboh3_clk(unsigned char enable)
|
||||
{
|
||||
u32 reg;
|
||||
@ -186,12 +200,16 @@ static u32 get_ipg_per_clk(void)
|
||||
static u32 get_uart_clk(void)
|
||||
{
|
||||
u32 reg, uart_podf;
|
||||
|
||||
u32 freq = PLL3_80M;
|
||||
reg = __raw_readl(&imx_ccm->cscdr1);
|
||||
#ifdef CONFIG_MX6SL
|
||||
if (reg & MXC_CCM_CSCDR1_UART_CLK_SEL)
|
||||
freq = MXC_HCLK;
|
||||
#endif
|
||||
reg &= MXC_CCM_CSCDR1_UART_CLK_PODF_MASK;
|
||||
uart_podf = reg >> MXC_CCM_CSCDR1_UART_CLK_PODF_OFFSET;
|
||||
|
||||
return PLL3_80M / (uart_podf + 1);
|
||||
return freq / (uart_podf + 1);
|
||||
}
|
||||
|
||||
static u32 get_cspi_clk(void)
|
||||
@ -252,6 +270,35 @@ static u32 get_emi_slow_clk(void)
|
||||
return root_freq / (emi_slow_pof + 1);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MX6SL
|
||||
static u32 get_mmdc_ch0_clk(void)
|
||||
{
|
||||
u32 cbcmr = __raw_readl(&imx_ccm->cbcmr);
|
||||
u32 cbcdr = __raw_readl(&imx_ccm->cbcdr);
|
||||
u32 freq, podf;
|
||||
|
||||
podf = (cbcdr & MXC_CCM_CBCDR_MMDC_CH1_PODF_MASK) \
|
||||
>> MXC_CCM_CBCDR_MMDC_CH1_PODF_OFFSET;
|
||||
|
||||
switch ((cbcmr & MXC_CCM_CBCMR_PRE_PERIPH2_CLK_SEL_MASK) >>
|
||||
MXC_CCM_CBCMR_PRE_PERIPH2_CLK_SEL_OFFSET) {
|
||||
case 0:
|
||||
freq = decode_pll(PLL_BUS, MXC_HCLK);
|
||||
break;
|
||||
case 1:
|
||||
freq = PLL2_PFD2_FREQ;
|
||||
break;
|
||||
case 2:
|
||||
freq = PLL2_PFD0_FREQ;
|
||||
break;
|
||||
case 3:
|
||||
freq = PLL2_PFD2_DIV_FREQ;
|
||||
}
|
||||
|
||||
return freq / (podf + 1);
|
||||
|
||||
}
|
||||
#else
|
||||
static u32 get_mmdc_ch0_clk(void)
|
||||
{
|
||||
u32 cbcdr = __raw_readl(&imx_ccm->cbcdr);
|
||||
@ -260,6 +307,7 @@ static u32 get_mmdc_ch0_clk(void)
|
||||
|
||||
return get_periph_clk() / (mmdc_ch0_podf + 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
static u32 get_usdhc_clk(u32 port)
|
||||
{
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/imx-common/boot_mode.h>
|
||||
#include <asm/imx-common/dma.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
struct scu_regs {
|
||||
@ -151,6 +152,12 @@ int arch_cpu_init(void)
|
||||
set_vddsoc(1200); /* Set VDDSOC to 1.2V */
|
||||
|
||||
imx_set_wdog_powerdown(false); /* Disable PDE bit of WMCR register */
|
||||
|
||||
#ifdef CONFIG_APBH_DMA
|
||||
/* Start APBH DMA */
|
||||
mxs_dma_init();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -165,8 +172,8 @@ void enable_caches(void)
|
||||
#if defined(CONFIG_FEC_MXC)
|
||||
void imx_get_mac_from_fuse(int dev_id, unsigned char *mac)
|
||||
{
|
||||
struct iim_regs *iim = (struct iim_regs *)IMX_IIM_BASE;
|
||||
struct fuse_bank *bank = &iim->bank[4];
|
||||
struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
|
||||
struct fuse_bank *bank = &ocotp->bank[4];
|
||||
struct fuse_bank4_regs *fuse =
|
||||
(struct fuse_bank4_regs *)bank->fuse_regs;
|
||||
|
||||
|
@ -27,10 +27,16 @@ include $(TOPDIR)/config.mk
|
||||
|
||||
LIB = $(obj)libimx-common.o
|
||||
|
||||
ifeq ($(SOC),$(filter $(SOC),mx25 mx35 mx5 mx6))
|
||||
COBJS-y = iomux-v3.o
|
||||
endif
|
||||
ifeq ($(SOC),$(filter $(SOC),mx5 mx6))
|
||||
COBJS-y = iomux-v3.o timer.o cpu.o speed.o
|
||||
COBJS-y += timer.o cpu.o speed.o
|
||||
COBJS-$(CONFIG_I2C_MXC) += i2c-mxv7.o
|
||||
endif
|
||||
ifeq ($(SOC),$(filter $(SOC),mx6 mxs))
|
||||
COBJS-y += misc.o
|
||||
endif
|
||||
COBJS-$(CONFIG_CMD_BMODE) += cmd_bmode.o
|
||||
COBJS-$(CONFIG_CMD_HDMIDETECT) += cmd_hdmidet.o
|
||||
COBJS := $(sort $(COBJS-y))
|
||||
@ -58,8 +64,11 @@ $(OBJTREE)/SPL: $(OBJTREE)/spl/u-boot-spl.bin $(OBJTREE)/$(patsubst "%",%,$(CONF
|
||||
$(OBJTREE)/u-boot-with-spl.imx: $(OBJTREE)/SPL $(OBJTREE)/u-boot.bin
|
||||
$(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SPL_PAD_TO) \
|
||||
-I binary -O binary $< $(OBJTREE)/spl/u-boot-spl-pad.imx
|
||||
cat $(OBJTREE)/spl/u-boot-spl-pad.imx $(OBJTREE)/u-boot.bin > $@
|
||||
rm $(OBJTREE)/spl/u-boot-spl-pad.imx
|
||||
$(OBJTREE)/tools/mkimage -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \
|
||||
-e $(CONFIG_SYS_TEXT_BASE) -C none -d $(OBJTREE)/u-boot.bin \
|
||||
$(OBJTREE)/u-boot.uim
|
||||
cat $(OBJTREE)/spl/u-boot-spl-pad.imx $(OBJTREE)/u-boot.uim > $@
|
||||
rm $(OBJTREE)/spl/u-boot-spl-pad.imx $(OBJTREE)/u-boot.uim
|
||||
|
||||
$(OBJTREE)/u-boot-with-nand-spl.imx: $(OBJTREE)/SPL $(OBJTREE)/u-boot.bin
|
||||
(echo -ne '\x00\x00\x00\x00\x46\x43\x42\x20\x01' && \
|
||||
@ -69,8 +78,11 @@ $(OBJTREE)/u-boot-with-nand-spl.imx: $(OBJTREE)/SPL $(OBJTREE)/u-boot.bin
|
||||
-I binary -O binary $(OBJTREE)/spl/u-boot-nand-spl.imx \
|
||||
$(OBJTREE)/spl/u-boot-nand-spl-pad.imx
|
||||
rm $(OBJTREE)/spl/u-boot-nand-spl.imx
|
||||
cat $(OBJTREE)/spl/u-boot-nand-spl-pad.imx $(OBJTREE)/u-boot.bin > $@
|
||||
rm $(OBJTREE)/spl/u-boot-nand-spl-pad.imx
|
||||
$(OBJTREE)/tools/mkimage -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \
|
||||
-e $(CONFIG_SYS_TEXT_BASE) -C none -d $(OBJTREE)/u-boot.bin \
|
||||
$(OBJTREE)/u-boot.uim
|
||||
cat $(OBJTREE)/spl/u-boot-nand-spl-pad.imx $(OBJTREE)/u-boot.uim > $@
|
||||
rm $(OBJTREE)/spl/u-boot-nand-spl-pad.imx $(OBJTREE)/u-boot.uim
|
||||
|
||||
|
||||
#########################################################################
|
||||
|
@ -30,7 +30,7 @@ static void *base = (void *)IOMUXC_BASE_ADDR;
|
||||
/*
|
||||
* configures a single pad in the iomuxer
|
||||
*/
|
||||
int imx_iomux_v3_setup_pad(iomux_v3_cfg_t pad)
|
||||
void imx_iomux_v3_setup_pad(iomux_v3_cfg_t pad)
|
||||
{
|
||||
u32 mux_ctrl_ofs = (pad & MUX_CTRL_OFS_MASK) >> MUX_CTRL_OFS_SHIFT;
|
||||
u32 mux_mode = (pad & MUX_MODE_MASK) >> MUX_MODE_SHIFT;
|
||||
@ -50,22 +50,14 @@ int imx_iomux_v3_setup_pad(iomux_v3_cfg_t pad)
|
||||
|
||||
if (!(pad_ctrl & NO_PAD_CTRL) && pad_ctrl_ofs)
|
||||
__raw_writel(pad_ctrl, base + pad_ctrl_ofs);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int imx_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t const *pad_list,
|
||||
unsigned count)
|
||||
void imx_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t const *pad_list,
|
||||
unsigned count)
|
||||
{
|
||||
iomux_v3_cfg_t const *p = pad_list;
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
ret = imx_iomux_v3_setup_pad(*p);
|
||||
if (ret)
|
||||
return ret;
|
||||
p++;
|
||||
}
|
||||
return 0;
|
||||
for (i = 0; i < count; i++)
|
||||
imx_iomux_v3_setup_pad(*p++);
|
||||
}
|
||||
|
84
arch/arm/imx-common/misc.c
Normal file
84
arch/arm/imx-common/misc.c
Normal file
@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Copyright 2013 Stefan Roese <sr@denx.de>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/errno.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
/* 1 second delay should be plenty of time for block reset. */
|
||||
#define RESET_MAX_TIMEOUT 1000000
|
||||
|
||||
#define MXS_BLOCK_SFTRST (1 << 31)
|
||||
#define MXS_BLOCK_CLKGATE (1 << 30)
|
||||
|
||||
int mxs_wait_mask_set(struct mxs_register_32 *reg, uint32_t mask, unsigned
|
||||
int timeout)
|
||||
{
|
||||
while (--timeout) {
|
||||
if ((readl(®->reg) & mask) == mask)
|
||||
break;
|
||||
udelay(1);
|
||||
}
|
||||
|
||||
return !timeout;
|
||||
}
|
||||
|
||||
int mxs_wait_mask_clr(struct mxs_register_32 *reg, uint32_t mask, unsigned
|
||||
int timeout)
|
||||
{
|
||||
while (--timeout) {
|
||||
if ((readl(®->reg) & mask) == 0)
|
||||
break;
|
||||
udelay(1);
|
||||
}
|
||||
|
||||
return !timeout;
|
||||
}
|
||||
|
||||
int mxs_reset_block(struct mxs_register_32 *reg)
|
||||
{
|
||||
/* Clear SFTRST */
|
||||
writel(MXS_BLOCK_SFTRST, ®->reg_clr);
|
||||
|
||||
if (mxs_wait_mask_clr(reg, MXS_BLOCK_SFTRST, RESET_MAX_TIMEOUT))
|
||||
return 1;
|
||||
|
||||
/* Clear CLKGATE */
|
||||
writel(MXS_BLOCK_CLKGATE, ®->reg_clr);
|
||||
|
||||
/* Set SFTRST */
|
||||
writel(MXS_BLOCK_SFTRST, ®->reg_set);
|
||||
|
||||
/* Wait for CLKGATE being set */
|
||||
if (mxs_wait_mask_set(reg, MXS_BLOCK_CLKGATE, RESET_MAX_TIMEOUT))
|
||||
return 1;
|
||||
|
||||
/* Clear SFTRST */
|
||||
writel(MXS_BLOCK_SFTRST, ®->reg_clr);
|
||||
|
||||
if (mxs_wait_mask_clr(reg, MXS_BLOCK_SFTRST, RESET_MAX_TIMEOUT))
|
||||
return 1;
|
||||
|
||||
/* Clear CLKGATE */
|
||||
writel(MXS_BLOCK_CLKGATE, ®->reg_clr);
|
||||
|
||||
if (mxs_wait_mask_clr(reg, MXS_BLOCK_CLKGATE, RESET_MAX_TIMEOUT))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
@ -113,8 +113,12 @@ struct iim_regs {
|
||||
u32 iim_sdat;
|
||||
u32 iim_prev;
|
||||
u32 iim_srev;
|
||||
u32 iim_prog_p;
|
||||
u32 res1[0x1f5];
|
||||
u32 iim_prg_p;
|
||||
u32 iim_scs0;
|
||||
u32 iim_scs1;
|
||||
u32 iim_scs2;
|
||||
u32 iim_scs3;
|
||||
u32 res1[0x1f1];
|
||||
struct fuse_bank {
|
||||
u32 fuse_regs[0x20];
|
||||
u32 fuse_rsvd[0xe0];
|
||||
@ -122,10 +126,19 @@ struct iim_regs {
|
||||
};
|
||||
|
||||
struct fuse_bank0_regs {
|
||||
u32 fuse0_25[0x1a];
|
||||
u32 fuse0_7[8];
|
||||
u32 uid[8];
|
||||
u32 fuse16_25[0xa];
|
||||
u32 mac_addr[6];
|
||||
};
|
||||
|
||||
struct fuse_bank1_regs {
|
||||
u32 fuse0_21[0x16];
|
||||
u32 usr5;
|
||||
u32 fuse23_29[7];
|
||||
u32 usr6[2];
|
||||
};
|
||||
|
||||
/* Multi-Layer AHB Crossbar Switch (MAX) registers */
|
||||
struct max_regs {
|
||||
u32 mpr0;
|
||||
@ -187,6 +200,7 @@ struct aips_regs {
|
||||
#define IMX_CSPI1_BASE (0x43FA4000)
|
||||
#define IMX_KPP_BASE (0x43FA8000)
|
||||
#define IMX_IOPADMUX_BASE (0x43FAC000)
|
||||
#define IOMUXC_BASE_ADDR IMX_IOPADMUX_BASE
|
||||
#define IMX_IOPADCTL_BASE (0x43FAC22C)
|
||||
#define IMX_IOPADGRPCTL_BASE (0x43FAC418)
|
||||
#define IMX_IOPADINPUTSEL_BASE (0x43FAC460)
|
||||
@ -240,6 +254,7 @@ struct aips_regs {
|
||||
#define IMX_PWM1_BASE (0x53FE0000)
|
||||
#define IMX_RTIC_BASE (0x53FEC000)
|
||||
#define IMX_IIM_BASE (0x53FF0000)
|
||||
#define IIM_BASE_ADDR IMX_IIM_BASE
|
||||
#define IMX_USB_BASE (0x53FF4000)
|
||||
#define IMX_USB_PORT_OFFSET 0x200
|
||||
#define IMX_CSI_BASE (0x53FF8000)
|
||||
|
@ -1,421 +0,0 @@
|
||||
/*
|
||||
* iopin settings are controlled by four different sets of registers
|
||||
* iopad mux control
|
||||
* individual iopad setup (voltage select, pull/keep, drive strength ...)
|
||||
* group iopad setup (same as above but for groups of signals)
|
||||
* input select when multiple inputs are possible
|
||||
*/
|
||||
|
||||
/*
|
||||
* software pad mux control
|
||||
*/
|
||||
/* SW Input On (Loopback) */
|
||||
#define MX25_PIN_MUX_SION (1 << 4)
|
||||
/* MUX Mode (0-7) */
|
||||
#define MX25_PIN_MUX_MODE(mode) ((mode & 0x7) << 0)
|
||||
struct iomuxc_mux_ctl {
|
||||
u32 gpr1;
|
||||
u32 observe_int_mux;
|
||||
u32 pad_a10;
|
||||
u32 pad_a13;
|
||||
u32 pad_a14;
|
||||
u32 pad_a15;
|
||||
u32 pad_a16;
|
||||
u32 pad_a17;
|
||||
u32 pad_a18;
|
||||
u32 pad_a19;
|
||||
u32 pad_a20;
|
||||
u32 pad_a21;
|
||||
u32 pad_a22;
|
||||
u32 pad_a23;
|
||||
u32 pad_a24;
|
||||
u32 pad_a25;
|
||||
u32 pad_eb0;
|
||||
u32 pad_eb1;
|
||||
u32 pad_oe;
|
||||
u32 pad_cs0;
|
||||
u32 pad_cs1;
|
||||
u32 pad_cs4;
|
||||
u32 pad_cs5;
|
||||
u32 pad_nf_ce0;
|
||||
u32 pad_ecb;
|
||||
u32 pad_lba;
|
||||
u32 pad_bclk;
|
||||
u32 pad_rw;
|
||||
u32 pad_nfwe_b;
|
||||
u32 pad_nfre_b;
|
||||
u32 pad_nfale;
|
||||
u32 pad_nfcle;
|
||||
u32 pad_nfwp_b;
|
||||
u32 pad_nfrb;
|
||||
u32 pad_d15;
|
||||
u32 pad_d14;
|
||||
u32 pad_d13;
|
||||
u32 pad_d12;
|
||||
u32 pad_d11;
|
||||
u32 pad_d10;
|
||||
u32 pad_d9;
|
||||
u32 pad_d8;
|
||||
u32 pad_d7;
|
||||
u32 pad_d6;
|
||||
u32 pad_d5;
|
||||
u32 pad_d4;
|
||||
u32 pad_d3;
|
||||
u32 pad_d2;
|
||||
u32 pad_d1;
|
||||
u32 pad_d0;
|
||||
u32 pad_ld0;
|
||||
u32 pad_ld1;
|
||||
u32 pad_ld2;
|
||||
u32 pad_ld3;
|
||||
u32 pad_ld4;
|
||||
u32 pad_ld5;
|
||||
u32 pad_ld6;
|
||||
u32 pad_ld7;
|
||||
u32 pad_ld8;
|
||||
u32 pad_ld9;
|
||||
u32 pad_ld10;
|
||||
u32 pad_ld11;
|
||||
u32 pad_ld12;
|
||||
u32 pad_ld13;
|
||||
u32 pad_ld14;
|
||||
u32 pad_ld15;
|
||||
u32 pad_hsync;
|
||||
u32 pad_vsync;
|
||||
u32 pad_lsclk;
|
||||
u32 pad_oe_acd;
|
||||
u32 pad_contrast;
|
||||
u32 pad_pwm;
|
||||
u32 pad_csi_d2;
|
||||
u32 pad_csi_d3;
|
||||
u32 pad_csi_d4;
|
||||
u32 pad_csi_d5;
|
||||
u32 pad_csi_d6;
|
||||
u32 pad_csi_d7;
|
||||
u32 pad_csi_d8;
|
||||
u32 pad_csi_d9;
|
||||
u32 pad_csi_mclk;
|
||||
u32 pad_csi_vsync;
|
||||
u32 pad_csi_hsync;
|
||||
u32 pad_csi_pixclk;
|
||||
u32 pad_i2c1_clk;
|
||||
u32 pad_i2c1_dat;
|
||||
u32 pad_cspi1_mosi;
|
||||
u32 pad_cspi1_miso;
|
||||
u32 pad_cspi1_ss0;
|
||||
u32 pad_cspi1_ss1;
|
||||
u32 pad_cspi1_sclk;
|
||||
u32 pad_cspi1_rdy;
|
||||
u32 pad_uart1_rxd;
|
||||
u32 pad_uart1_txd;
|
||||
u32 pad_uart1_rts;
|
||||
u32 pad_uart1_cts;
|
||||
u32 pad_uart2_rxd;
|
||||
u32 pad_uart2_txd;
|
||||
u32 pad_uart2_rts;
|
||||
u32 pad_uart2_cts;
|
||||
u32 pad_sd1_cmd;
|
||||
u32 pad_sd1_clk;
|
||||
u32 pad_sd1_data0;
|
||||
u32 pad_sd1_data1;
|
||||
u32 pad_sd1_data2;
|
||||
u32 pad_sd1_data3;
|
||||
u32 pad_kpp_row0;
|
||||
u32 pad_kpp_row1;
|
||||
u32 pad_kpp_row2;
|
||||
u32 pad_kpp_row3;
|
||||
u32 pad_kpp_col0;
|
||||
u32 pad_kpp_col1;
|
||||
u32 pad_kpp_col2;
|
||||
u32 pad_kpp_col3;
|
||||
u32 pad_fec_mdc;
|
||||
u32 pad_fec_mdio;
|
||||
u32 pad_fec_tdata0;
|
||||
u32 pad_fec_tdata1;
|
||||
u32 pad_fec_tx_en;
|
||||
u32 pad_fec_rdata0;
|
||||
u32 pad_fec_rdata1;
|
||||
u32 pad_fec_rx_dv;
|
||||
u32 pad_fec_tx_clk;
|
||||
u32 pad_rtck;
|
||||
u32 pad_de_b;
|
||||
u32 pad_gpio_a;
|
||||
u32 pad_gpio_b;
|
||||
u32 pad_gpio_c;
|
||||
u32 pad_gpio_d;
|
||||
u32 pad_gpio_e;
|
||||
u32 pad_gpio_f;
|
||||
u32 pad_ext_armclk;
|
||||
u32 pad_upll_bypclk;
|
||||
u32 pad_vstby_req;
|
||||
u32 pad_vstby_ack;
|
||||
u32 pad_power_fail;
|
||||
u32 pad_clko;
|
||||
u32 pad_boot_mode0;
|
||||
u32 pad_boot_mode1;
|
||||
};
|
||||
|
||||
/*
|
||||
* software pad control
|
||||
*/
|
||||
/* Select 3.3 or 1.8 volts */
|
||||
#define MX25_PIN_PAD_CTL_DVS_33 (0 << 13)
|
||||
#define MX25_PIN_PAD_CTL_DVS_18 (1 << 13)
|
||||
/* Enable hysteresis */
|
||||
#define MX25_PIN_PAD_CTL_HYS (1 << 8)
|
||||
/* Enable pull/keeper */
|
||||
#define MX25_PIN_PAD_CTL_PKE (1 << 7)
|
||||
/* 0 - keeper / 1 - pull */
|
||||
#define MX25_PIN_PAD_CTL_PUE (1 << 6)
|
||||
/* pull up/down strength */
|
||||
#define MX25_PIN_PAD_CTL_100K_PD (0 << 4)
|
||||
#define MX25_PIN_PAD_CTL_47K_PU (1 << 4)
|
||||
#define MX25_PIN_PAD_CTL_100K_PU (2 << 4)
|
||||
#define MX25_PIN_PAD_CTL_22K_PU (3 << 4)
|
||||
/* open drain control */
|
||||
#define MX25_PIN_PAD_CTL_OD (1 << 3)
|
||||
/* drive strength */
|
||||
#define MX25_PIN_PAD_CTL_DS_NOM (0 << 1)
|
||||
#define MX25_PIN_PAD_CTL_DS_HIGH (1 << 1)
|
||||
#define MX25_PIN_PAD_CTL_DS_MAX (2 << 1)
|
||||
#define MX25_PIN_PAD_CTL_DS_MAX11 (3 << 1)
|
||||
/* slew rate */
|
||||
#define MX25_PIN_PAD_CTL_SRE_SLOW (0 << 0)
|
||||
#define MX25_PIN_PAD_CTL_SRE_FAST (1 << 0)
|
||||
struct iomuxc_pad_ctl {
|
||||
u32 pad_a13;
|
||||
u32 pad_a14;
|
||||
u32 pad_a15;
|
||||
u32 pad_a17;
|
||||
u32 pad_a18;
|
||||
u32 pad_a19;
|
||||
u32 pad_a20;
|
||||
u32 pad_a21;
|
||||
u32 pad_a23;
|
||||
u32 pad_a24;
|
||||
u32 pad_a25;
|
||||
u32 pad_eb0;
|
||||
u32 pad_eb1;
|
||||
u32 pad_oe;
|
||||
u32 pad_cs4;
|
||||
u32 pad_cs5;
|
||||
u32 pad_nf_ce0;
|
||||
u32 pad_ecb;
|
||||
u32 pad_lba;
|
||||
u32 pad_rw;
|
||||
u32 pad_nfrb;
|
||||
u32 pad_d15;
|
||||
u32 pad_d14;
|
||||
u32 pad_d13;
|
||||
u32 pad_d12;
|
||||
u32 pad_d11;
|
||||
u32 pad_d10;
|
||||
u32 pad_d9;
|
||||
u32 pad_d8;
|
||||
u32 pad_d7;
|
||||
u32 pad_d6;
|
||||
u32 pad_d5;
|
||||
u32 pad_d4;
|
||||
u32 pad_d3;
|
||||
u32 pad_d2;
|
||||
u32 pad_d1;
|
||||
u32 pad_d0;
|
||||
u32 pad_ld0;
|
||||
u32 pad_ld1;
|
||||
u32 pad_ld2;
|
||||
u32 pad_ld3;
|
||||
u32 pad_ld4;
|
||||
u32 pad_ld5;
|
||||
u32 pad_ld6;
|
||||
u32 pad_ld7;
|
||||
u32 pad_ld8;
|
||||
u32 pad_ld9;
|
||||
u32 pad_ld10;
|
||||
u32 pad_ld11;
|
||||
u32 pad_ld12;
|
||||
u32 pad_ld13;
|
||||
u32 pad_ld14;
|
||||
u32 pad_ld15;
|
||||
u32 pad_hsync;
|
||||
u32 pad_vsync;
|
||||
u32 pad_lsclk;
|
||||
u32 pad_oe_acd;
|
||||
u32 pad_contrast;
|
||||
u32 pad_pwm;
|
||||
u32 pad_csi_d2;
|
||||
u32 pad_csi_d3;
|
||||
u32 pad_csi_d4;
|
||||
u32 pad_csi_d5;
|
||||
u32 pad_csi_d6;
|
||||
u32 pad_csi_d7;
|
||||
u32 pad_csi_d8;
|
||||
u32 pad_csi_d9;
|
||||
u32 pad_csi_mclk;
|
||||
u32 pad_csi_vsync;
|
||||
u32 pad_csi_hsync;
|
||||
u32 pad_csi_pixclk;
|
||||
u32 pad_i2c1_clk;
|
||||
u32 pad_i2c1_dat;
|
||||
u32 pad_cspi1_mosi;
|
||||
u32 pad_cspi1_miso;
|
||||
u32 pad_cspi1_ss0;
|
||||
u32 pad_cspi1_ss1;
|
||||
u32 pad_cspi1_sclk;
|
||||
u32 pad_cspi1_rdy;
|
||||
u32 pad_uart1_rxd;
|
||||
u32 pad_uart1_txd;
|
||||
u32 pad_uart1_rts;
|
||||
u32 pad_uart1_cts;
|
||||
u32 pad_uart2_rxd;
|
||||
u32 pad_uart2_txd;
|
||||
u32 pad_uart2_rts;
|
||||
u32 pad_uart2_cts;
|
||||
u32 pad_sd1_cmd;
|
||||
u32 pad_sd1_clk;
|
||||
u32 pad_sd1_data0;
|
||||
u32 pad_sd1_data1;
|
||||
u32 pad_sd1_data2;
|
||||
u32 pad_sd1_data3;
|
||||
u32 pad_kpp_row0;
|
||||
u32 pad_kpp_row1;
|
||||
u32 pad_kpp_row2;
|
||||
u32 pad_kpp_row3;
|
||||
u32 pad_kpp_col0;
|
||||
u32 pad_kpp_col1;
|
||||
u32 pad_kpp_col2;
|
||||
u32 pad_kpp_col3;
|
||||
u32 pad_fec_mdc;
|
||||
u32 pad_fec_mdio;
|
||||
u32 pad_fec_tdata0;
|
||||
u32 pad_fec_tdata1;
|
||||
u32 pad_fec_tx_en;
|
||||
u32 pad_fec_rdata0;
|
||||
u32 pad_fec_rdata1;
|
||||
u32 pad_fec_rx_dv;
|
||||
u32 pad_fec_tx_clk;
|
||||
u32 pad_rtck;
|
||||
u32 pad_tdo;
|
||||
u32 pad_de_b;
|
||||
u32 pad_gpio_a;
|
||||
u32 pad_gpio_b;
|
||||
u32 pad_gpio_c;
|
||||
u32 pad_gpio_d;
|
||||
u32 pad_gpio_e;
|
||||
u32 pad_gpio_f;
|
||||
u32 pad_vstby_req;
|
||||
u32 pad_vstby_ack;
|
||||
u32 pad_power_fail;
|
||||
u32 pad_clko;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Pad group drive strength and voltage select
|
||||
* Same fields as iomuxc_pad_ctl plus ddr type
|
||||
*/
|
||||
/* Select DDR type */
|
||||
#define MX25_PIN_PAD_CTL_DDR_18 (0 << 11)
|
||||
#define MX25_PIN_PAD_CTL_DDR_33 (1 << 11)
|
||||
#define MX25_PIN_PAD_CTL_DDR_MAX (2 << 11)
|
||||
struct iomuxc_pad_grp_ctl {
|
||||
u32 grp_dvs_misc;
|
||||
u32 grp_dse_fec;
|
||||
u32 grp_dvs_jtag;
|
||||
u32 grp_dse_nfc;
|
||||
u32 grp_dse_csi;
|
||||
u32 grp_dse_weim;
|
||||
u32 grp_dse_ddr;
|
||||
u32 grp_dvs_crm;
|
||||
u32 grp_dse_kpp;
|
||||
u32 grp_dse_sdhc1;
|
||||
u32 grp_dse_lcd;
|
||||
u32 grp_dse_uart;
|
||||
u32 grp_dvs_nfc;
|
||||
u32 grp_dvs_csi;
|
||||
u32 grp_dse_cspi1;
|
||||
u32 grp_ddrtype;
|
||||
u32 grp_dvs_sdhc1;
|
||||
u32 grp_dvs_lcd;
|
||||
};
|
||||
|
||||
/*
|
||||
* Pad input select control
|
||||
* Select which pad to connect to an input port
|
||||
* where multiple pads can function as given input
|
||||
*/
|
||||
#define MX25_PAD_INPUT_SELECT_DAISY(in) ((in & 0x7) << 0)
|
||||
struct iomuxc_pad_input_select {
|
||||
u32 audmux_p4_input_da_amx;
|
||||
u32 audmux_p4_input_db_amx;
|
||||
u32 audmux_p4_input_rxclk_amx;
|
||||
u32 audmux_p4_input_rxfs_amx;
|
||||
u32 audmux_p4_input_txclk_amx;
|
||||
u32 audmux_p4_input_txfs_amx;
|
||||
u32 audmux_p7_input_da_amx;
|
||||
u32 audmux_p7_input_txfs_amx;
|
||||
u32 can1_ipp_ind_canrx;
|
||||
u32 can2_ipp_ind_canrx;
|
||||
u32 csi_ipp_csi_d_0;
|
||||
u32 csi_ipp_csi_d_1;
|
||||
u32 cspi1_ipp_ind_ss3_b;
|
||||
u32 cspi2_ipp_cspi_clk_in;
|
||||
u32 cspi2_ipp_ind_dataready_b;
|
||||
u32 cspi2_ipp_ind_miso;
|
||||
u32 cspi2_ipp_ind_mosi;
|
||||
u32 cspi2_ipp_ind_ss0_b;
|
||||
u32 cspi2_ipp_ind_ss1_b;
|
||||
u32 cspi3_ipp_cspi_clk_in;
|
||||
u32 cspi3_ipp_ind_dataready_b;
|
||||
u32 cspi3_ipp_ind_miso;
|
||||
u32 cspi3_ipp_ind_mosi;
|
||||
u32 cspi3_ipp_ind_ss0_b;
|
||||
u32 cspi3_ipp_ind_ss1_b;
|
||||
u32 cspi3_ipp_ind_ss2_b;
|
||||
u32 cspi3_ipp_ind_ss3_b;
|
||||
u32 esdhc1_ipp_dat4_in;
|
||||
u32 esdhc1_ipp_dat5_in;
|
||||
u32 esdhc1_ipp_dat6_in;
|
||||
u32 esdhc1_ipp_dat7_in;
|
||||
u32 esdhc2_ipp_card_clk_in;
|
||||
u32 esdhc2_ipp_cmd_in;
|
||||
u32 esdhc2_ipp_dat0_in;
|
||||
u32 esdhc2_ipp_dat1_in;
|
||||
u32 esdhc2_ipp_dat2_in;
|
||||
u32 esdhc2_ipp_dat3_in;
|
||||
u32 esdhc2_ipp_dat4_in;
|
||||
u32 esdhc2_ipp_dat5_in;
|
||||
u32 esdhc2_ipp_dat6_in;
|
||||
u32 esdhc2_ipp_dat7_in;
|
||||
u32 fec_fec_col;
|
||||
u32 fec_fec_crs;
|
||||
u32 fec_fec_rdata_2;
|
||||
u32 fec_fec_rdata_3;
|
||||
u32 fec_fec_rx_clk;
|
||||
u32 fec_fec_rx_er;
|
||||
u32 i2c2_ipp_scl_in;
|
||||
u32 i2c2_ipp_sda_in;
|
||||
u32 i2c3_ipp_scl_in;
|
||||
u32 i2c3_ipp_sda_in;
|
||||
u32 kpp_ipp_ind_col_4;
|
||||
u32 kpp_ipp_ind_col_5;
|
||||
u32 kpp_ipp_ind_col_6;
|
||||
u32 kpp_ipp_ind_col_7;
|
||||
u32 kpp_ipp_ind_row_4;
|
||||
u32 kpp_ipp_ind_row_5;
|
||||
u32 kpp_ipp_ind_row_6;
|
||||
u32 kpp_ipp_ind_row_7;
|
||||
u32 sim1_pin_sim_rcvd1_in;
|
||||
u32 sim1_pin_sim_simpd1;
|
||||
u32 sim1_sim_rcvd1_io;
|
||||
u32 sim2_pin_sim_rcvd1_in;
|
||||
u32 sim2_pin_sim_simpd1;
|
||||
u32 sim2_sim_rcvd1_io;
|
||||
u32 uart3_ipp_uart_rts_b;
|
||||
u32 uart3_ipp_uart_rxd_mux;
|
||||
u32 uart4_ipp_uart_rts_b;
|
||||
u32 uart4_ipp_uart_rxd_mux;
|
||||
u32 uart5_ipp_uart_rts_b;
|
||||
u32 uart5_ipp_uart_rxd_mux;
|
||||
u32 usb_top_ipp_ind_otg_usb_oc;
|
||||
u32 usb_top_ipp_ind_uh2_usb_oc;
|
||||
};
|
545
arch/arm/include/asm/arch-mx25/iomux-mx25.h
Normal file
545
arch/arm/include/asm/arch-mx25/iomux-mx25.h
Normal file
@ -0,0 +1,545 @@
|
||||
/*
|
||||
* (C) Copyright 2013 ADVANSEE
|
||||
* Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
|
||||
*
|
||||
* Based on mainline Linux i.MX iomux-mx25.h file:
|
||||
* Copyright (C) 2009 by Lothar Wassmann <LW@KARO-electronics.de>
|
||||
*
|
||||
* Based on Linux arch/arm/mach-mx25/mx25_pins.h:
|
||||
* Copyright 2008 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
* and Linux arch/arm/plat-mxc/include/mach/iomux-mx35.h:
|
||||
* Copyright (C) 2009 by Jan Weitzel Phytec Messtechnik GmbH <armlinux@phytec.de>
|
||||
*
|
||||
* 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 __IOMUX_MX25_H__
|
||||
#define __IOMUX_MX25_H__
|
||||
|
||||
#include <asm/imx-common/iomux-v3.h>
|
||||
|
||||
/* Pad control groupings */
|
||||
#define MX25_KPP_ROW_PAD_CTRL PAD_CTL_PUS_100K_UP
|
||||
#define MX25_KPP_COL_PAD_CTRL (PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
|
||||
|
||||
/*
|
||||
* The naming convention for the pad modes is MX25_PAD_<padname>__<padmode>
|
||||
* If <padname> or <padmode> refers to a GPIO, it is named GPIO_<unit>_<num>
|
||||
* See also iomux-v3.h
|
||||
*/
|
||||
|
||||
/* PAD MUX ALT INPSE PATH PADCTRL */
|
||||
enum {
|
||||
MX25_PAD_A10__A10 = IOMUX_PAD(0x000, 0x008, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A10__GPIO_4_0 = IOMUX_PAD(0x000, 0x008, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A13__A13 = IOMUX_PAD(0x22C, 0x00c, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A13__GPIO_4_1 = IOMUX_PAD(0x22C, 0x00c, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A14__A14 = IOMUX_PAD(0x230, 0x010, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A14__GPIO_2_0 = IOMUX_PAD(0x230, 0x010, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A15__A15 = IOMUX_PAD(0x234, 0x014, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A15__GPIO_2_1 = IOMUX_PAD(0x234, 0x014, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A16__A16 = IOMUX_PAD(0x000, 0x018, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A16__GPIO_2_2 = IOMUX_PAD(0x000, 0x018, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A17__A17 = IOMUX_PAD(0x238, 0x01c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A17__GPIO_2_3 = IOMUX_PAD(0x238, 0x01c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A18__A18 = IOMUX_PAD(0x23c, 0x020, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A18__GPIO_2_4 = IOMUX_PAD(0x23c, 0x020, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A18__FEC_COL = IOMUX_PAD(0x23c, 0x020, 0x17, 0x504, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A19__A19 = IOMUX_PAD(0x240, 0x024, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A19__FEC_RX_ER = IOMUX_PAD(0x240, 0x024, 0x17, 0x518, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A19__GPIO_2_5 = IOMUX_PAD(0x240, 0x024, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A20__A20 = IOMUX_PAD(0x244, 0x028, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A20__GPIO_2_6 = IOMUX_PAD(0x244, 0x028, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A20__FEC_RDATA2 = IOMUX_PAD(0x244, 0x028, 0x17, 0x50c, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A21__A21 = IOMUX_PAD(0x248, 0x02c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A21__GPIO_2_7 = IOMUX_PAD(0x248, 0x02c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A21__FEC_RDATA3 = IOMUX_PAD(0x248, 0x02c, 0x17, 0x510, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A22__A22 = IOMUX_PAD(0x000, 0x030, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A22__GPIO_2_8 = IOMUX_PAD(0x000, 0x030, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A23__A23 = IOMUX_PAD(0x24c, 0x034, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A23__GPIO_2_9 = IOMUX_PAD(0x24c, 0x034, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A24__A24 = IOMUX_PAD(0x250, 0x038, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A24__GPIO_2_10 = IOMUX_PAD(0x250, 0x038, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A24__FEC_RX_CLK = IOMUX_PAD(0x250, 0x038, 0x17, 0x514, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_A25__A25 = IOMUX_PAD(0x254, 0x03c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A25__GPIO_2_11 = IOMUX_PAD(0x254, 0x03c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_A25__FEC_CRS = IOMUX_PAD(0x254, 0x03c, 0x17, 0x508, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_EB0__EB0 = IOMUX_PAD(0x258, 0x040, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_EB0__AUD4_TXD = IOMUX_PAD(0x258, 0x040, 0x14, 0x464, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_EB0__GPIO_2_12 = IOMUX_PAD(0x258, 0x040, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_EB1__EB1 = IOMUX_PAD(0x25c, 0x044, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_EB1__AUD4_RXD = IOMUX_PAD(0x25c, 0x044, 0x14, 0x460, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_EB1__GPIO_2_13 = IOMUX_PAD(0x25c, 0x044, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_OE__OE = IOMUX_PAD(0x260, 0x048, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_OE__AUD4_TXC = IOMUX_PAD(0x260, 0x048, 0x14, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_OE__GPIO_2_14 = IOMUX_PAD(0x260, 0x048, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CS0__CS0 = IOMUX_PAD(0x000, 0x04c, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CS0__GPIO_4_2 = IOMUX_PAD(0x000, 0x04c, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CS1__CS1 = IOMUX_PAD(0x000, 0x050, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CS1__NF_CE3 = IOMUX_PAD(0x000, 0x050, 0x01, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CS1__GPIO_4_3 = IOMUX_PAD(0x000, 0x050, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CS4__CS4 = IOMUX_PAD(0x264, 0x054, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CS4__NF_CE1 = IOMUX_PAD(0x264, 0x054, 0x01, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CS4__UART5_CTS = IOMUX_PAD(0x264, 0x054, 0x13, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CS4__GPIO_3_20 = IOMUX_PAD(0x264, 0x054, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CS5__CS5 = IOMUX_PAD(0x268, 0x058, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CS5__NF_CE2 = IOMUX_PAD(0x268, 0x058, 0x01, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CS5__UART5_RTS = IOMUX_PAD(0x268, 0x058, 0x13, 0x574, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CS5__GPIO_3_21 = IOMUX_PAD(0x268, 0x058, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_NF_CE0__NF_CE0 = IOMUX_PAD(0x26c, 0x05c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_NF_CE0__GPIO_3_22 = IOMUX_PAD(0x26c, 0x05c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_ECB__ECB = IOMUX_PAD(0x270, 0x060, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_ECB__UART5_TXD_MUX = IOMUX_PAD(0x270, 0x060, 0x13, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_ECB__GPIO_3_23 = IOMUX_PAD(0x270, 0x060, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LBA__LBA = IOMUX_PAD(0x274, 0x064, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_LBA__UART5_RXD_MUX = IOMUX_PAD(0x274, 0x064, 0x13, 0x578, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_LBA__GPIO_3_24 = IOMUX_PAD(0x274, 0x064, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_BCLK__BCLK = IOMUX_PAD(0x000, 0x068, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_BCLK__GPIO_4_4 = IOMUX_PAD(0x000, 0x068, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_RW__RW = IOMUX_PAD(0x278, 0x06c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_RW__AUD4_TXFS = IOMUX_PAD(0x278, 0x06c, 0x14, 0x474, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_RW__GPIO_3_25 = IOMUX_PAD(0x278, 0x06c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_NFWE_B__NFWE_B = IOMUX_PAD(0x000, 0x070, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_NFWE_B__GPIO_3_26 = IOMUX_PAD(0x000, 0x070, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_NFRE_B__NFRE_B = IOMUX_PAD(0x000, 0x074, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_NFRE_B__GPIO_3_27 = IOMUX_PAD(0x000, 0x074, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_NFALE__NFALE = IOMUX_PAD(0x000, 0x078, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_NFALE__GPIO_3_28 = IOMUX_PAD(0x000, 0x078, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_NFCLE__NFCLE = IOMUX_PAD(0x000, 0x07c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_NFCLE__GPIO_3_29 = IOMUX_PAD(0x000, 0x07c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_NFWP_B__NFWP_B = IOMUX_PAD(0x000, 0x080, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_NFWP_B__GPIO_3_30 = IOMUX_PAD(0x000, 0x080, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_NFRB__NFRB = IOMUX_PAD(0x27c, 0x084, 0x10, 0, 0, PAD_CTL_PKE),
|
||||
MX25_PAD_NFRB__GPIO_3_31 = IOMUX_PAD(0x27c, 0x084, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D15__D15 = IOMUX_PAD(0x280, 0x088, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D15__LD16 = IOMUX_PAD(0x280, 0x088, 0x01, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_D15__GPIO_4_5 = IOMUX_PAD(0x280, 0x088, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D14__D14 = IOMUX_PAD(0x284, 0x08c, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D14__LD17 = IOMUX_PAD(0x284, 0x08c, 0x01, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_D14__GPIO_4_6 = IOMUX_PAD(0x284, 0x08c, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D13__D13 = IOMUX_PAD(0x288, 0x090, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D13__LD18 = IOMUX_PAD(0x288, 0x090, 0x01, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_D13__GPIO_4_7 = IOMUX_PAD(0x288, 0x090, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D12__D12 = IOMUX_PAD(0x28c, 0x094, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D12__GPIO_4_8 = IOMUX_PAD(0x28c, 0x094, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D11__D11 = IOMUX_PAD(0x290, 0x098, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D11__GPIO_4_9 = IOMUX_PAD(0x290, 0x098, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D10__D10 = IOMUX_PAD(0x294, 0x09c, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D10__GPIO_4_10 = IOMUX_PAD(0x294, 0x09c, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D10__USBOTG_OC = IOMUX_PAD(0x294, 0x09c, 0x06, 0x57c, 0, PAD_CTL_PUS_100K_UP),
|
||||
|
||||
MX25_PAD_D9__D9 = IOMUX_PAD(0x298, 0x0a0, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D9__GPIO_4_11 = IOMUX_PAD(0x298, 0x0a0, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D9__USBH2_PWR = IOMUX_PAD(0x298, 0x0a0, 0x06, 0, 0, PAD_CTL_PKE),
|
||||
|
||||
MX25_PAD_D8__D8 = IOMUX_PAD(0x29c, 0x0a4, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D8__GPIO_4_12 = IOMUX_PAD(0x29c, 0x0a4, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D8__USBH2_OC = IOMUX_PAD(0x29c, 0x0a4, 0x06, 0x580, 0, PAD_CTL_PUS_100K_UP),
|
||||
|
||||
MX25_PAD_D7__D7 = IOMUX_PAD(0x2a0, 0x0a8, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D7__GPIO_4_13 = IOMUX_PAD(0x2a0, 0x0a8, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D6__D6 = IOMUX_PAD(0x2a4, 0x0ac, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D6__GPIO_4_14 = IOMUX_PAD(0x2a4, 0x0ac, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D5__D5 = IOMUX_PAD(0x2a8, 0x0b0, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D5__GPIO_4_15 = IOMUX_PAD(0x2a8, 0x0b0, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D4__D4 = IOMUX_PAD(0x2ac, 0x0b4, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D4__GPIO_4_16 = IOMUX_PAD(0x2ac, 0x0b4, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D3__D3 = IOMUX_PAD(0x2b0, 0x0b8, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D3__GPIO_4_17 = IOMUX_PAD(0x2b0, 0x0b8, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D2__D2 = IOMUX_PAD(0x2b4, 0x0bc, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D2__GPIO_4_18 = IOMUX_PAD(0x2b4, 0x0bc, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D1__D1 = IOMUX_PAD(0x2b8, 0x0c0, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D1__GPIO_4_19 = IOMUX_PAD(0x2b8, 0x0c0, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_D0__D0 = IOMUX_PAD(0x2bc, 0x0c4, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_D0__GPIO_4_20 = IOMUX_PAD(0x2bc, 0x0c4, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD0__LD0 = IOMUX_PAD(0x2c0, 0x0c8, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD0__CSI_D0 = IOMUX_PAD(0x2c0, 0x0c8, 0x12, 0x488, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_LD0__GPIO_2_15 = IOMUX_PAD(0x2c0, 0x0c8, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD1__LD1 = IOMUX_PAD(0x2c4, 0x0cc, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD1__CSI_D1 = IOMUX_PAD(0x2c4, 0x0cc, 0x12, 0x48c, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_LD1__GPIO_2_16 = IOMUX_PAD(0x2c4, 0x0cc, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD2__LD2 = IOMUX_PAD(0x2c8, 0x0d0, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD2__GPIO_2_17 = IOMUX_PAD(0x2c8, 0x0d0, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD3__LD3 = IOMUX_PAD(0x2cc, 0x0d4, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD3__GPIO_2_18 = IOMUX_PAD(0x2cc, 0x0d4, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD4__LD4 = IOMUX_PAD(0x2d0, 0x0d8, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD4__GPIO_2_19 = IOMUX_PAD(0x2d0, 0x0d8, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD5__LD5 = IOMUX_PAD(0x2d4, 0x0dc, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD5__GPIO_1_19 = IOMUX_PAD(0x2d4, 0x0dc, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD6__LD6 = IOMUX_PAD(0x2d8, 0x0e0, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD6__GPIO_1_20 = IOMUX_PAD(0x2d8, 0x0e0, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD7__LD7 = IOMUX_PAD(0x2dc, 0x0e4, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD7__GPIO_1_21 = IOMUX_PAD(0x2dc, 0x0e4, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD8__LD8 = IOMUX_PAD(0x2e0, 0x0e8, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD8__FEC_TX_ERR = IOMUX_PAD(0x2e0, 0x0e8, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD9__LD9 = IOMUX_PAD(0x2e4, 0x0ec, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD9__FEC_COL = IOMUX_PAD(0x2e4, 0x0ec, 0x15, 0x504, 1, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD10__LD10 = IOMUX_PAD(0x2e8, 0x0f0, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD10__FEC_RX_ER = IOMUX_PAD(0x2e8, 0x0f0, 0x15, 0x518, 1, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD11__LD11 = IOMUX_PAD(0x2ec, 0x0f4, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD11__FEC_RDATA2 = IOMUX_PAD(0x2ec, 0x0f4, 0x15, 0x50c, 1, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD12__LD12 = IOMUX_PAD(0x2f0, 0x0f8, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD12__FEC_RDATA3 = IOMUX_PAD(0x2f0, 0x0f8, 0x15, 0x510, 1, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD13__LD13 = IOMUX_PAD(0x2f4, 0x0fc, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD13__FEC_TDATA2 = IOMUX_PAD(0x2f4, 0x0fc, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD14__LD14 = IOMUX_PAD(0x2f8, 0x100, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD14__FEC_TDATA3 = IOMUX_PAD(0x2f8, 0x100, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LD15__LD15 = IOMUX_PAD(0x2fc, 0x104, 0x10, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_LD15__FEC_RX_CLK = IOMUX_PAD(0x2fc, 0x104, 0x15, 0x514, 1, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_HSYNC__HSYNC = IOMUX_PAD(0x300, 0x108, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_HSYNC__GPIO_1_22 = IOMUX_PAD(0x300, 0x108, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_VSYNC__VSYNC = IOMUX_PAD(0x304, 0x10c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_VSYNC__GPIO_1_23 = IOMUX_PAD(0x304, 0x10c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_LSCLK__LSCLK = IOMUX_PAD(0x308, 0x110, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_LSCLK__GPIO_1_24 = IOMUX_PAD(0x308, 0x110, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_OE_ACD__OE_ACD = IOMUX_PAD(0x30c, 0x114, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_OE_ACD__GPIO_1_25 = IOMUX_PAD(0x30c, 0x114, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CONTRAST__CONTRAST = IOMUX_PAD(0x310, 0x118, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CONTRAST__PWM4_PWMO = IOMUX_PAD(0x310, 0x118, 0x14, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CONTRAST__FEC_CRS = IOMUX_PAD(0x310, 0x118, 0x15, 0x508, 1, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_PWM__PWM = IOMUX_PAD(0x314, 0x11c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_PWM__GPIO_1_26 = IOMUX_PAD(0x314, 0x11c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_PWM__USBH2_OC = IOMUX_PAD(0x314, 0x11c, 0x16, 0x580, 1, PAD_CTL_PUS_100K_UP),
|
||||
|
||||
MX25_PAD_CSI_D2__CSI_D2 = IOMUX_PAD(0x318, 0x120, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D2__UART5_RXD_MUX = IOMUX_PAD(0x318, 0x120, 0x11, 0x578, 1, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D2__GPIO_1_27 = IOMUX_PAD(0x318, 0x120, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D2__CSPI3_MOSI = IOMUX_PAD(0x318, 0x120, 0x17, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_D3__CSI_D3 = IOMUX_PAD(0x31c, 0x124, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D3__GPIO_1_28 = IOMUX_PAD(0x31c, 0x124, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D3__CSPI3_MISO = IOMUX_PAD(0x31c, 0x124, 0x17, 0x4b4, 1, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_D4__CSI_D4 = IOMUX_PAD(0x320, 0x128, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D4__UART5_RTS = IOMUX_PAD(0x320, 0x128, 0x11, 0x574, 1, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D4__GPIO_1_29 = IOMUX_PAD(0x320, 0x128, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D4__CSPI3_SCLK = IOMUX_PAD(0x320, 0x128, 0x17, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_D5__CSI_D5 = IOMUX_PAD(0x324, 0x12c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D5__GPIO_1_30 = IOMUX_PAD(0x324, 0x12c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D5__CSPI3_RDY = IOMUX_PAD(0x324, 0x12c, 0x17, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_D6__CSI_D6 = IOMUX_PAD(0x328, 0x130, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D6__GPIO_1_31 = IOMUX_PAD(0x328, 0x130, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_D7__CSI_D7 = IOMUX_PAD(0x32c, 0x134, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D7__GPIO_1_6 = IOMUX_PAD(0x32c, 0x134, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_D8__CSI_D8 = IOMUX_PAD(0x330, 0x138, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D8__GPIO_1_7 = IOMUX_PAD(0x330, 0x138, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_D9__CSI_D9 = IOMUX_PAD(0x334, 0x13c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_D9__GPIO_4_21 = IOMUX_PAD(0x334, 0x13c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_MCLK__CSI_MCLK = IOMUX_PAD(0x338, 0x140, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_MCLK__GPIO_1_8 = IOMUX_PAD(0x338, 0x140, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_VSYNC__CSI_VSYNC = IOMUX_PAD(0x33c, 0x144, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_VSYNC__GPIO_1_9 = IOMUX_PAD(0x33c, 0x144, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_HSYNC__CSI_HSYNC = IOMUX_PAD(0x340, 0x148, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_HSYNC__GPIO_1_10 = IOMUX_PAD(0x340, 0x148, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSI_PIXCLK__CSI_PIXCLK = IOMUX_PAD(0x344, 0x14c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSI_PIXCLK__GPIO_1_11 = IOMUX_PAD(0x344, 0x14c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_I2C1_CLK__I2C1_CLK = IOMUX_PAD(0x348, 0x150, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_I2C1_CLK__GPIO_1_12 = IOMUX_PAD(0x348, 0x150, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_I2C1_DAT__I2C1_DAT = IOMUX_PAD(0x34c, 0x154, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_I2C1_DAT__GPIO_1_13 = IOMUX_PAD(0x34c, 0x154, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSPI1_MOSI__CSPI1_MOSI = IOMUX_PAD(0x350, 0x158, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSPI1_MOSI__GPIO_1_14 = IOMUX_PAD(0x350, 0x158, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSPI1_MISO__CSPI1_MISO = IOMUX_PAD(0x354, 0x15c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSPI1_MISO__GPIO_1_15 = IOMUX_PAD(0x354, 0x15c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSPI1_SS0__CSPI1_SS0 = IOMUX_PAD(0x358, 0x160, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSPI1_SS0__GPIO_1_16 = IOMUX_PAD(0x358, 0x160, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSPI1_SS1__CSPI1_SS1 = IOMUX_PAD(0x35c, 0x164, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSPI1_SS1__I2C3_DAT = IOMUX_PAD(0x35c, 0x164, 0x11, 0x528, 1, NO_PAD_CTRL),
|
||||
MX25_PAD_CSPI1_SS1__GPIO_1_17 = IOMUX_PAD(0x35c, 0x164, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSPI1_SCLK__CSPI1_SCLK = IOMUX_PAD(0x360, 0x168, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CSPI1_SCLK__GPIO_1_18 = IOMUX_PAD(0x360, 0x168, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CSPI1_RDY__CSPI1_RDY = IOMUX_PAD(0x364, 0x16c, 0x10, 0, 0, PAD_CTL_PKE),
|
||||
MX25_PAD_CSPI1_RDY__GPIO_2_22 = IOMUX_PAD(0x364, 0x16c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_UART1_RXD__UART1_RXD = IOMUX_PAD(0x368, 0x170, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN),
|
||||
MX25_PAD_UART1_RXD__GPIO_4_22 = IOMUX_PAD(0x368, 0x170, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_UART1_TXD__UART1_TXD = IOMUX_PAD(0x36c, 0x174, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_UART1_TXD__GPIO_4_23 = IOMUX_PAD(0x36c, 0x174, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_UART1_RTS__UART1_RTS = IOMUX_PAD(0x370, 0x178, 0x10, 0, 0, PAD_CTL_PUS_100K_UP),
|
||||
MX25_PAD_UART1_RTS__CSI_D0 = IOMUX_PAD(0x370, 0x178, 0x11, 0x488, 1, NO_PAD_CTRL),
|
||||
MX25_PAD_UART1_RTS__GPIO_4_24 = IOMUX_PAD(0x370, 0x178, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_UART1_CTS__UART1_CTS = IOMUX_PAD(0x374, 0x17c, 0x10, 0, 0, PAD_CTL_PUS_100K_UP),
|
||||
MX25_PAD_UART1_CTS__CSI_D1 = IOMUX_PAD(0x374, 0x17c, 0x11, 0x48c, 1, NO_PAD_CTRL),
|
||||
MX25_PAD_UART1_CTS__GPIO_4_25 = IOMUX_PAD(0x374, 0x17c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_UART2_RXD__UART2_RXD = IOMUX_PAD(0x378, 0x180, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_UART2_RXD__GPIO_4_26 = IOMUX_PAD(0x378, 0x180, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_UART2_TXD__UART2_TXD = IOMUX_PAD(0x37c, 0x184, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_UART2_TXD__GPIO_4_27 = IOMUX_PAD(0x37c, 0x184, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_UART2_RTS__UART2_RTS = IOMUX_PAD(0x380, 0x188, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_UART2_RTS__FEC_COL = IOMUX_PAD(0x380, 0x188, 0x12, 0x504, 2, NO_PAD_CTRL),
|
||||
MX25_PAD_UART2_RTS__GPIO_4_28 = IOMUX_PAD(0x380, 0x188, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_UART2_CTS__FEC_RX_ER = IOMUX_PAD(0x384, 0x18c, 0x12, 0x518, 2, NO_PAD_CTRL),
|
||||
MX25_PAD_UART2_CTS__UART2_CTS = IOMUX_PAD(0x384, 0x18c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_UART2_CTS__GPIO_4_29 = IOMUX_PAD(0x384, 0x18c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_SD1_CMD__SD1_CMD = IOMUX_PAD(0x388, 0x190, 0x10, 0, 0, PAD_CTL_PUS_47K_UP),
|
||||
MX25_PAD_SD1_CMD__FEC_RDATA2 = IOMUX_PAD(0x388, 0x190, 0x12, 0x50c, 2, NO_PAD_CTRL),
|
||||
MX25_PAD_SD1_CMD__GPIO_2_23 = IOMUX_PAD(0x388, 0x190, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_SD1_CLK__SD1_CLK = IOMUX_PAD(0x38c, 0x194, 0x10, 0, 0, PAD_CTL_PUS_47K_UP),
|
||||
MX25_PAD_SD1_CLK__FEC_RDATA3 = IOMUX_PAD(0x38c, 0x194, 0x12, 0x510, 2, NO_PAD_CTRL),
|
||||
MX25_PAD_SD1_CLK__GPIO_2_24 = IOMUX_PAD(0x38c, 0x194, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_SD1_DATA0__SD1_DATA0 = IOMUX_PAD(0x390, 0x198, 0x10, 0, 0, PAD_CTL_PUS_47K_UP),
|
||||
MX25_PAD_SD1_DATA0__GPIO_2_25 = IOMUX_PAD(0x390, 0x198, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_SD1_DATA1__SD1_DATA1 = IOMUX_PAD(0x394, 0x19c, 0x10, 0, 0, PAD_CTL_PUS_47K_UP),
|
||||
MX25_PAD_SD1_DATA1__AUD7_RXD = IOMUX_PAD(0x394, 0x19c, 0x13, 0x478, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_SD1_DATA1__GPIO_2_26 = IOMUX_PAD(0x394, 0x19c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_SD1_DATA2__SD1_DATA2 = IOMUX_PAD(0x398, 0x1a0, 0x10, 0, 0, PAD_CTL_PUS_47K_UP),
|
||||
MX25_PAD_SD1_DATA2__FEC_RX_CLK = IOMUX_PAD(0x398, 0x1a0, 0x15, 0x514, 2, NO_PAD_CTRL),
|
||||
MX25_PAD_SD1_DATA2__GPIO_2_27 = IOMUX_PAD(0x398, 0x1a0, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_SD1_DATA3__SD1_DATA3 = IOMUX_PAD(0x39c, 0x1a4, 0x10, 0, 0, PAD_CTL_PUS_47K_UP),
|
||||
MX25_PAD_SD1_DATA3__FEC_CRS = IOMUX_PAD(0x39c, 0x1a4, 0x10, 0x508, 2, NO_PAD_CTRL),
|
||||
MX25_PAD_SD1_DATA3__GPIO_2_28 = IOMUX_PAD(0x39c, 0x1a4, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_KPP_ROW0__KPP_ROW0 = IOMUX_PAD(0x3a0, 0x1a8, 0x10, 0, 0, MX25_KPP_ROW_PAD_CTRL),
|
||||
MX25_PAD_KPP_ROW0__GPIO_2_29 = IOMUX_PAD(0x3a0, 0x1a8, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_KPP_ROW1__KPP_ROW1 = IOMUX_PAD(0x3a4, 0x1ac, 0x10, 0, 0, MX25_KPP_ROW_PAD_CTRL),
|
||||
MX25_PAD_KPP_ROW1__GPIO_2_30 = IOMUX_PAD(0x3a4, 0x1ac, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_KPP_ROW2__KPP_ROW2 = IOMUX_PAD(0x3a8, 0x1b0, 0x10, 0, 0, MX25_KPP_ROW_PAD_CTRL),
|
||||
MX25_PAD_KPP_ROW2__CSI_D0 = IOMUX_PAD(0x3a8, 0x1b0, 0x13, 0x488, 2, NO_PAD_CTRL),
|
||||
MX25_PAD_KPP_ROW2__GPIO_2_31 = IOMUX_PAD(0x3a8, 0x1b0, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_KPP_ROW3__KPP_ROW3 = IOMUX_PAD(0x3ac, 0x1b4, 0x10, 0, 0, MX25_KPP_ROW_PAD_CTRL),
|
||||
MX25_PAD_KPP_ROW3__CSI_LD1 = IOMUX_PAD(0x3ac, 0x1b4, 0x13, 0x48c, 2, NO_PAD_CTRL),
|
||||
MX25_PAD_KPP_ROW3__GPIO_3_0 = IOMUX_PAD(0x3ac, 0x1b4, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_KPP_COL0__KPP_COL0 = IOMUX_PAD(0x3b0, 0x1b8, 0x10, 0, 0, MX25_KPP_COL_PAD_CTRL),
|
||||
MX25_PAD_KPP_COL0__UART4_RXD_MUX = IOMUX_PAD(0x3b0, 0x1b8, 0x11, 0x570, 1, NO_PAD_CTRL),
|
||||
MX25_PAD_KPP_COL0__AUD5_TXD = IOMUX_PAD(0x3b0, 0x1b8, 0x12, 0, 0, PAD_CTL_PUS_100K_UP),
|
||||
MX25_PAD_KPP_COL0__GPIO_3_1 = IOMUX_PAD(0x3b0, 0x1b8, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_KPP_COL1__KPP_COL1 = IOMUX_PAD(0x3b4, 0x1bc, 0x10, 0, 0, MX25_KPP_COL_PAD_CTRL),
|
||||
MX25_PAD_KPP_COL1__UART4_TXD_MUX = IOMUX_PAD(0x3b4, 0x1bc, 0x11, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_KPP_COL1__AUD5_RXD = IOMUX_PAD(0x3b4, 0x1bc, 0x12, 0, 0, PAD_CTL_PUS_100K_UP),
|
||||
MX25_PAD_KPP_COL1__GPIO_3_2 = IOMUX_PAD(0x3b4, 0x1bc, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_KPP_COL2__KPP_COL2 = IOMUX_PAD(0x3b8, 0x1c0, 0x10, 0, 0, MX25_KPP_COL_PAD_CTRL),
|
||||
MX25_PAD_KPP_COL2__UART4_RTS = IOMUX_PAD(0x3b8, 0x1c0, 0x11, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_KPP_COL2__AUD5_TXC = IOMUX_PAD(0x3b8, 0x1c0, 0x12, 0, 0, PAD_CTL_PUS_100K_UP),
|
||||
MX25_PAD_KPP_COL2__GPIO_3_3 = IOMUX_PAD(0x3b8, 0x1c0, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_KPP_COL3__KPP_COL3 = IOMUX_PAD(0x3bc, 0x1c4, 0x10, 0, 0, MX25_KPP_COL_PAD_CTRL),
|
||||
MX25_PAD_KPP_COL3__UART4_CTS = IOMUX_PAD(0x3bc, 0x1c4, 0x11, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_KPP_COL3__AUD5_TXFS = IOMUX_PAD(0x3bc, 0x1c4, 0x12, 0, 0, PAD_CTL_PUS_100K_UP),
|
||||
MX25_PAD_KPP_COL3__GPIO_3_4 = IOMUX_PAD(0x3bc, 0x1c4, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_FEC_MDC__FEC_MDC = IOMUX_PAD(0x3c0, 0x1c8, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_FEC_MDC__AUD4_TXD = IOMUX_PAD(0x3c0, 0x1c8, 0x12, 0x464, 1, NO_PAD_CTRL),
|
||||
MX25_PAD_FEC_MDC__GPIO_3_5 = IOMUX_PAD(0x3c0, 0x1c8, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_FEC_MDIO__FEC_MDIO = IOMUX_PAD(0x3c4, 0x1cc, 0x10, 0, 0, PAD_CTL_HYS | PAD_CTL_PUS_22K_UP),
|
||||
MX25_PAD_FEC_MDIO__AUD4_RXD = IOMUX_PAD(0x3c4, 0x1cc, 0x12, 0x460, 1, NO_PAD_CTRL),
|
||||
MX25_PAD_FEC_MDIO__GPIO_3_6 = IOMUX_PAD(0x3c4, 0x1cc, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_FEC_TDATA0__FEC_TDATA0 = IOMUX_PAD(0x3c8, 0x1d0, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_FEC_TDATA0__GPIO_3_7 = IOMUX_PAD(0x3c8, 0x1d0, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_FEC_TDATA1__FEC_TDATA1 = IOMUX_PAD(0x3cc, 0x1d4, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_FEC_TDATA1__AUD4_TXFS = IOMUX_PAD(0x3cc, 0x1d4, 0x12, 0x474, 1, NO_PAD_CTRL),
|
||||
MX25_PAD_FEC_TDATA1__GPIO_3_8 = IOMUX_PAD(0x3cc, 0x1d4, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_FEC_TX_EN__FEC_TX_EN = IOMUX_PAD(0x3d0, 0x1d8, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_FEC_TX_EN__GPIO_3_9 = IOMUX_PAD(0x3d0, 0x1d8, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_FEC_RDATA0__FEC_RDATA0 = IOMUX_PAD(0x3d4, 0x1dc, 0x10, 0, 0, PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
MX25_PAD_FEC_RDATA0__GPIO_3_10 = IOMUX_PAD(0x3d4, 0x1dc, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_FEC_RDATA1__FEC_RDATA1 = IOMUX_PAD(0x3d8, 0x1e0, 0x10, 0, 0, PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
MX25_PAD_FEC_RDATA1__GPIO_3_11 = IOMUX_PAD(0x3d8, 0x1e0, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_FEC_RX_DV__FEC_RX_DV = IOMUX_PAD(0x3dc, 0x1e4, 0x10, 0, 0, PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
MX25_PAD_FEC_RX_DV__CAN2_RX = IOMUX_PAD(0x3dc, 0x1e4, 0x14, 0x484, 0, PAD_CTL_PUS_22K_UP),
|
||||
MX25_PAD_FEC_RX_DV__GPIO_3_12 = IOMUX_PAD(0x3dc, 0x1e4, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_FEC_TX_CLK__FEC_TX_CLK = IOMUX_PAD(0x3e0, 0x1e8, 0x10, 0, 0, PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
MX25_PAD_FEC_TX_CLK__GPIO_3_13 = IOMUX_PAD(0x3e0, 0x1e8, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_RTCK__RTCK = IOMUX_PAD(0x3e4, 0x1ec, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_RTCK__OWIRE = IOMUX_PAD(0x3e4, 0x1ec, 0x11, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_RTCK__GPIO_3_14 = IOMUX_PAD(0x3e4, 0x1ec, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_DE_B__DE_B = IOMUX_PAD(0x3ec, 0x1f0, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_DE_B__GPIO_2_20 = IOMUX_PAD(0x3ec, 0x1f0, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_TDO__TDO = IOMUX_PAD(0x3e8, 0x000, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_GPIO_A__GPIO_A = IOMUX_PAD(0x3f0, 0x1f4, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_GPIO_A__CAN1_TX = IOMUX_PAD(0x3f0, 0x1f4, 0x16, 0, 0, PAD_CTL_PUS_22K_UP),
|
||||
MX25_PAD_GPIO_A__USBOTG_PWR = IOMUX_PAD(0x3f0, 0x1f4, 0x12, 0, 0, PAD_CTL_PKE),
|
||||
|
||||
MX25_PAD_GPIO_B__GPIO_B = IOMUX_PAD(0x3f4, 0x1f8, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_GPIO_B__CAN1_RX = IOMUX_PAD(0x3f4, 0x1f8, 0x16, 0x480, 1, PAD_CTL_PUS_22K_UP),
|
||||
MX25_PAD_GPIO_B__USBOTG_OC = IOMUX_PAD(0x3f4, 0x1f8, 0x12, 0x57c, 1, PAD_CTL_PUS_100K_UP),
|
||||
|
||||
MX25_PAD_GPIO_C__GPIO_C = IOMUX_PAD(0x3f8, 0x1fc, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_GPIO_C__CAN2_TX = IOMUX_PAD(0x3f8, 0x1fc, 0x16, 0, 0, PAD_CTL_PUS_22K_UP),
|
||||
|
||||
MX25_PAD_GPIO_D__GPIO_D = IOMUX_PAD(0x3fc, 0x200, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_GPIO_E__LD16 = IOMUX_PAD(0x400, 0x204, 0x02, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_GPIO_D__CAN2_RX = IOMUX_PAD(0x3fc, 0x200, 0x16, 0x484, 1, PAD_CTL_PUS_22K_UP),
|
||||
|
||||
MX25_PAD_GPIO_E__GPIO_E = IOMUX_PAD(0x400, 0x204, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_GPIO_F__LD17 = IOMUX_PAD(0x404, 0x208, 0x02, 0, 0, PAD_CTL_SRE_FAST),
|
||||
MX25_PAD_GPIO_E__I2C3_CLK = IOMUX_PAD(0x400, 0x204, 0x11, 0x524, 2, NO_PAD_CTRL),
|
||||
MX25_PAD_GPIO_E__AUD7_TXD = IOMUX_PAD(0x400, 0x204, 0x14, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_GPIO_F__GPIO_F = IOMUX_PAD(0x404, 0x208, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_GPIO_F__AUD7_TXC = IOMUX_PAD(0x404, 0x208, 0x14, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_EXT_ARMCLK__EXT_ARMCLK = IOMUX_PAD(0x000, 0x20c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_EXT_ARMCLK__GPIO_3_15 = IOMUX_PAD(0x000, 0x20c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_UPLL_BYPCLK__UPLL_BYPCLK = IOMUX_PAD(0x000, 0x210, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_UPLL_BYPCLK__GPIO_3_16 = IOMUX_PAD(0x000, 0x210, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_VSTBY_REQ__VSTBY_REQ = IOMUX_PAD(0x408, 0x214, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_VSTBY_REQ__AUD7_TXFS = IOMUX_PAD(0x408, 0x214, 0x14, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_VSTBY_REQ__GPIO_3_17 = IOMUX_PAD(0x408, 0x214, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_VSTBY_ACK__VSTBY_ACK = IOMUX_PAD(0x40c, 0x218, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_VSTBY_ACK__GPIO_3_18 = IOMUX_PAD(0x40c, 0x218, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_POWER_FAIL__POWER_FAIL = IOMUX_PAD(0x410, 0x21c, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_POWER_FAIL__AUD7_RXD = IOMUX_PAD(0x410, 0x21c, 0x14, 0x478, 1, NO_PAD_CTRL),
|
||||
MX25_PAD_POWER_FAIL__GPIO_3_19 = IOMUX_PAD(0x410, 0x21c, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CLKO__CLKO = IOMUX_PAD(0x414, 0x220, 0x10, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CLKO__GPIO_2_21 = IOMUX_PAD(0x414, 0x220, 0x15, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_BOOT_MODE0__BOOT_MODE0 = IOMUX_PAD(0x000, 0x224, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_BOOT_MODE0__GPIO_4_30 = IOMUX_PAD(0x000, 0x224, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_BOOT_MODE1__BOOT_MODE1 = IOMUX_PAD(0x000, 0x228, 0x00, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_BOOT_MODE1__GPIO_4_31 = IOMUX_PAD(0x000, 0x228, 0x05, 0, 0, NO_PAD_CTRL),
|
||||
|
||||
MX25_PAD_CTL_GRP_DVS_MISC = IOMUX_PAD(0x418, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DSE_FEC = IOMUX_PAD(0x41c, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DVS_JTAG = IOMUX_PAD(0x420, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DSE_NFC = IOMUX_PAD(0x424, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DSE_CSI = IOMUX_PAD(0x428, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DSE_WEIM = IOMUX_PAD(0x42c, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DSE_DDR = IOMUX_PAD(0x430, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DVS_CRM = IOMUX_PAD(0x434, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DSE_KPP = IOMUX_PAD(0x438, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DSE_SDHC1 = IOMUX_PAD(0x43c, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DSE_LCD = IOMUX_PAD(0x440, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DSE_UART = IOMUX_PAD(0x444, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DVS_NFC = IOMUX_PAD(0x448, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DVS_CSI = IOMUX_PAD(0x44c, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DSE_CSPI1 = IOMUX_PAD(0x450, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DDRTYPE = IOMUX_PAD(0x454, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DVS_SDHC1 = IOMUX_PAD(0x458, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
MX25_PAD_CTL_GRP_DVS_LCD = IOMUX_PAD(0x45c, 0x000, 0, 0, 0, NO_PAD_CTRL),
|
||||
};
|
||||
|
||||
#endif /* __IOMUX_MX25_H__ */
|
@ -176,7 +176,7 @@ struct iim_regs {
|
||||
u32 iim_sdat;
|
||||
u32 iim_prev;
|
||||
u32 iim_srev;
|
||||
u32 iim_prog_p;
|
||||
u32 iim_prg_p;
|
||||
u32 iim_scs0;
|
||||
u32 iim_scs1;
|
||||
u32 iim_scs2;
|
||||
@ -222,6 +222,7 @@ struct fuse_bank0_regs {
|
||||
#define IMX_PLL_BASE (0x27000 + IMX_IO_BASE)
|
||||
#define IMX_SYSTEM_CTL_BASE (0x27800 + IMX_IO_BASE)
|
||||
#define IMX_IIM_BASE (0x28000 + IMX_IO_BASE)
|
||||
#define IIM_BASE_ADDR IMX_IIM_BASE
|
||||
#define IMX_FEC_BASE (0x2b000 + IMX_IO_BASE)
|
||||
|
||||
#define IMX_ESD_BASE (0xD8001000)
|
||||
|
@ -68,7 +68,7 @@ struct cspi_regs {
|
||||
u32 test;
|
||||
};
|
||||
|
||||
/* IIM Control Registers */
|
||||
/* IIM control registers */
|
||||
struct iim_regs {
|
||||
u32 iim_stat;
|
||||
u32 iim_statm;
|
||||
@ -80,11 +80,28 @@ struct iim_regs {
|
||||
u32 iim_sdat;
|
||||
u32 iim_prev;
|
||||
u32 iim_srev;
|
||||
u32 iim_prog_p;
|
||||
u32 iim_prg_p;
|
||||
u32 iim_scs0;
|
||||
u32 iim_scs1;
|
||||
u32 iim_scs2;
|
||||
u32 iim_scs3;
|
||||
u32 res[0x1f1];
|
||||
struct fuse_bank {
|
||||
u32 fuse_regs[0x20];
|
||||
u32 fuse_rsvd[0xe0];
|
||||
} bank[3];
|
||||
};
|
||||
|
||||
struct fuse_bank0_regs {
|
||||
u32 fuse0_5[6];
|
||||
u32 usr;
|
||||
u32 fuse7_15[9];
|
||||
};
|
||||
|
||||
struct fuse_bank2_regs {
|
||||
u32 fuse0;
|
||||
u32 uid[8];
|
||||
u32 fuse9_15[7];
|
||||
};
|
||||
|
||||
struct iomuxc_regs {
|
||||
@ -557,6 +574,7 @@ struct esdc_regs {
|
||||
#define CCMR_CKIH (2 << 1)
|
||||
|
||||
#define MX31_IIM_BASE_ADDR 0x5001C000
|
||||
#define IIM_BASE_ADDR MX31_IIM_BASE_ADDR
|
||||
|
||||
#define PDR0_CSI_PODF(x) (((x) & 0x3f) << 26)
|
||||
#define PDR0_CSI_PRDF(x) (((x) & 0x7) << 23)
|
||||
|
@ -262,11 +262,28 @@ struct iim_regs {
|
||||
u32 iim_sdat;
|
||||
u32 iim_prev;
|
||||
u32 iim_srev;
|
||||
u32 iim_prog_p;
|
||||
u32 iim_prg_p;
|
||||
u32 iim_scs0;
|
||||
u32 iim_scs1;
|
||||
u32 iim_scs2;
|
||||
u32 iim_scs3;
|
||||
u32 res1[0x1f1];
|
||||
struct fuse_bank {
|
||||
u32 fuse_regs[0x20];
|
||||
u32 fuse_rsvd[0xe0];
|
||||
} bank[3];
|
||||
};
|
||||
|
||||
struct fuse_bank0_regs {
|
||||
u32 fuse0_7[8];
|
||||
u32 uid[8];
|
||||
u32 fuse16_31[0x10];
|
||||
};
|
||||
|
||||
struct fuse_bank1_regs {
|
||||
u32 fuse0_21[0x16];
|
||||
u32 usr;
|
||||
u32 fuse23_31[9];
|
||||
};
|
||||
|
||||
/* General Purpose Timer (GPT) registers */
|
||||
|
1276
arch/arm/include/asm/arch-mx35/iomux-mx35.h
Normal file
1276
arch/arm/include/asm/arch-mx35/iomux-mx35.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,295 +0,0 @@
|
||||
/*
|
||||
* (C) Copyright 2011
|
||||
* Stefano Babic, DENX Software Engineering, sbabic@denx.de.
|
||||
*
|
||||
* Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
*
|
||||
* 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 __MACH_MX35_IOMUX_H__
|
||||
#define __MACH_MX35_IOMUX_H__
|
||||
|
||||
#include <asm/arch/imx-regs.h>
|
||||
|
||||
/*
|
||||
* various IOMUX functions
|
||||
*/
|
||||
typedef enum iomux_pin_config {
|
||||
MUX_CONFIG_FUNC = 0, /* used as function */
|
||||
MUX_CONFIG_ALT1, /* used as alternate function 1 */
|
||||
MUX_CONFIG_ALT2, /* used as alternate function 2 */
|
||||
MUX_CONFIG_ALT3, /* used as alternate function 3 */
|
||||
MUX_CONFIG_ALT4, /* used as alternate function 4 */
|
||||
MUX_CONFIG_ALT5, /* used as alternate function 5 */
|
||||
MUX_CONFIG_ALT6, /* used as alternate function 6 */
|
||||
MUX_CONFIG_ALT7, /* used as alternate function 7 */
|
||||
MUX_CONFIG_SION = 0x1 << 4, /* used as LOOPBACK:MUX SION bit */
|
||||
MUX_CONFIG_GPIO = MUX_CONFIG_ALT5, /* used as GPIO */
|
||||
} iomux_pin_cfg_t;
|
||||
|
||||
/*
|
||||
* various IOMUX pad functions
|
||||
*/
|
||||
typedef enum iomux_pad_config {
|
||||
PAD_CTL_DRV_3_3V = 0x0 << 13,
|
||||
PAD_CTL_DRV_1_8V = 0x1 << 13,
|
||||
PAD_CTL_HYS_CMOS = 0x0 << 8,
|
||||
PAD_CTL_HYS_SCHMITZ = 0x1 << 8,
|
||||
PAD_CTL_PKE_NONE = 0x0 << 7,
|
||||
PAD_CTL_PKE_ENABLE = 0x1 << 7,
|
||||
PAD_CTL_PUE_KEEPER = 0x0 << 6,
|
||||
PAD_CTL_PUE_PUD = 0x1 << 6,
|
||||
PAD_CTL_100K_PD = 0x0 << 4,
|
||||
PAD_CTL_47K_PU = 0x1 << 4,
|
||||
PAD_CTL_100K_PU = 0x2 << 4,
|
||||
PAD_CTL_22K_PU = 0x3 << 4,
|
||||
PAD_CTL_ODE_CMOS = 0x0 << 3,
|
||||
PAD_CTL_ODE_OpenDrain = 0x1 << 3,
|
||||
PAD_CTL_DRV_NORMAL = 0x0 << 1,
|
||||
PAD_CTL_DRV_HIGH = 0x1 << 1,
|
||||
PAD_CTL_DRV_MAX = 0x2 << 1,
|
||||
PAD_CTL_SRE_SLOW = 0x0 << 0,
|
||||
PAD_CTL_SRE_FAST = 0x1 << 0
|
||||
} iomux_pad_config_t;
|
||||
|
||||
/*
|
||||
* various IOMUX general purpose functions
|
||||
*/
|
||||
typedef enum iomux_gp_func {
|
||||
MUX_SDCTL_CSD0_SEL = 0x1 << 0,
|
||||
MUX_SDCTL_CSD1_SEL = 0x1 << 1,
|
||||
MUX_TAMPER_DETECT_EN = 0x1 << 2,
|
||||
} iomux_gp_func_t;
|
||||
|
||||
/*
|
||||
* various IOMUX input select register index
|
||||
*/
|
||||
typedef enum iomux_input_select {
|
||||
MUX_IN_AMX_P5_RXCLK = 0,
|
||||
MUX_IN_AMX_P5_RXFS,
|
||||
MUX_IN_AMX_P6_DA,
|
||||
MUX_IN_AMX_P6_DB,
|
||||
MUX_IN_AMX_P6_RXCLK,
|
||||
MUX_IN_AMX_P6_RXFS,
|
||||
MUX_IN_AMX_P6_TXCLK,
|
||||
MUX_IN_AMX_P6_TXFS,
|
||||
MUX_IN_CAN1_CANRX,
|
||||
MUX_IN_CAN2_CANRX,
|
||||
MUX_IN_CCM_32K_MUXED,
|
||||
MUX_IN_CCM_PMIC_RDY,
|
||||
MUX_IN_CSPI1_SS2_B,
|
||||
MUX_IN_CSPI1_SS3_B,
|
||||
MUX_IN_CSPI2_CLK_IN,
|
||||
MUX_IN_CSPI2_DATAREADY_B,
|
||||
MUX_IN_CSPI2_MISO,
|
||||
MUX_IN_CSPI2_MOSI,
|
||||
MUX_IN_CSPI2_SS0_B,
|
||||
MUX_IN_CSPI2_SS1_B,
|
||||
MUX_IN_CSPI2_SS2_B,
|
||||
MUX_IN_CSPI2_SS3_B,
|
||||
MUX_IN_EMI_WEIM_DTACK_B,
|
||||
MUX_IN_ESDHC1_DAT4_IN,
|
||||
MUX_IN_ESDHC1_DAT5_IN,
|
||||
MUX_IN_ESDHC1_DAT6_IN,
|
||||
MUX_IN_ESDHC1_DAT7_IN,
|
||||
MUX_IN_ESDHC3_CARD_CLK_IN,
|
||||
MUX_IN_ESDHC3_CMD_IN,
|
||||
MUX_IN_ESDHC3_DAT0,
|
||||
MUX_IN_ESDHC3_DAT1,
|
||||
MUX_IN_ESDHC3_DAT2,
|
||||
MUX_IN_ESDHC3_DAT3,
|
||||
MUX_IN_GPIO1_IN_0,
|
||||
MUX_IN_GPIO1_IN_10,
|
||||
MUX_IN_GPIO1_IN_11,
|
||||
MUX_IN_GPIO1_IN_1,
|
||||
MUX_IN_GPIO1_IN_20,
|
||||
MUX_IN_GPIO1_IN_21,
|
||||
MUX_IN_GPIO1_IN_22,
|
||||
MUX_IN_GPIO1_IN_2,
|
||||
MUX_IN_GPIO1_IN_3,
|
||||
MUX_IN_GPIO1_IN_4,
|
||||
MUX_IN_GPIO1_IN_5,
|
||||
MUX_IN_GPIO1_IN_6,
|
||||
MUX_IN_GPIO1_IN_7,
|
||||
MUX_IN_GPIO1_IN_8,
|
||||
MUX_IN_GPIO1_IN_9,
|
||||
MUX_IN_GPIO2_IN_0,
|
||||
MUX_IN_GPIO2_IN_10,
|
||||
MUX_IN_GPIO2_IN_11,
|
||||
MUX_IN_GPIO2_IN_12,
|
||||
MUX_IN_GPIO2_IN_13,
|
||||
MUX_IN_GPIO2_IN_14,
|
||||
MUX_IN_GPIO2_IN_15,
|
||||
MUX_IN_GPIO2_IN_16,
|
||||
MUX_IN_GPIO2_IN_17,
|
||||
MUX_IN_GPIO2_IN_18,
|
||||
MUX_IN_GPIO2_IN_19,
|
||||
MUX_IN_GPIO2_IN_20,
|
||||
MUX_IN_GPIO2_IN_21,
|
||||
MUX_IN_GPIO2_IN_22,
|
||||
MUX_IN_GPIO2_IN_23,
|
||||
MUX_IN_GPIO2_IN_24,
|
||||
MUX_IN_GPIO2_IN_25,
|
||||
MUX_IN_GPIO2_IN_26,
|
||||
MUX_IN_GPIO2_IN_27,
|
||||
MUX_IN_GPIO2_IN_28,
|
||||
MUX_IN_GPIO2_IN_29,
|
||||
MUX_IN_GPIO2_IN_2,
|
||||
MUX_IN_GPIO2_IN_30,
|
||||
MUX_IN_GPIO2_IN_31,
|
||||
MUX_IN_GPIO2_IN_3,
|
||||
MUX_IN_GPIO2_IN_4,
|
||||
MUX_IN_GPIO2_IN_5,
|
||||
MUX_IN_GPIO2_IN_6,
|
||||
MUX_IN_GPIO2_IN_7,
|
||||
MUX_IN_GPIO2_IN_8,
|
||||
MUX_IN_GPIO2_IN_9,
|
||||
MUX_IN_GPIO3_IN_0,
|
||||
MUX_IN_GPIO3_IN_10,
|
||||
MUX_IN_GPIO3_IN_11,
|
||||
MUX_IN_GPIO3_IN_12,
|
||||
MUX_IN_GPIO3_IN_13,
|
||||
MUX_IN_GPIO3_IN_14,
|
||||
MUX_IN_GPIO3_IN_15,
|
||||
MUX_IN_GPIO3_IN_4,
|
||||
MUX_IN_GPIO3_IN_5,
|
||||
MUX_IN_GPIO3_IN_6,
|
||||
MUX_IN_GPIO3_IN_7,
|
||||
MUX_IN_GPIO3_IN_8,
|
||||
MUX_IN_GPIO3_IN_9,
|
||||
MUX_IN_I2C3_SCL_IN,
|
||||
MUX_IN_I2C3_SDA_IN,
|
||||
MUX_IN_IPU_DISPB_D0_VSYNC,
|
||||
MUX_IN_IPU_DISPB_D12_VSYNC,
|
||||
MUX_IN_IPU_DISPB_SD_D,
|
||||
MUX_IN_IPU_SENSB_DATA_0,
|
||||
MUX_IN_IPU_SENSB_DATA_1,
|
||||
MUX_IN_IPU_SENSB_DATA_2,
|
||||
MUX_IN_IPU_SENSB_DATA_3,
|
||||
MUX_IN_IPU_SENSB_DATA_4,
|
||||
MUX_IN_IPU_SENSB_DATA_5,
|
||||
MUX_IN_IPU_SENSB_DATA_6,
|
||||
MUX_IN_IPU_SENSB_DATA_7,
|
||||
MUX_IN_KPP_COL_0,
|
||||
MUX_IN_KPP_COL_1,
|
||||
MUX_IN_KPP_COL_2,
|
||||
MUX_IN_KPP_COL_3,
|
||||
MUX_IN_KPP_COL_4,
|
||||
MUX_IN_KPP_COL_5,
|
||||
MUX_IN_KPP_COL_6,
|
||||
MUX_IN_KPP_COL_7,
|
||||
MUX_IN_KPP_ROW_0,
|
||||
MUX_IN_KPP_ROW_1,
|
||||
MUX_IN_KPP_ROW_2,
|
||||
MUX_IN_KPP_ROW_3,
|
||||
MUX_IN_KPP_ROW_4,
|
||||
MUX_IN_KPP_ROW_5,
|
||||
MUX_IN_KPP_ROW_6,
|
||||
MUX_IN_KPP_ROW_7,
|
||||
MUX_IN_OWIRE_BATTERY_LINE,
|
||||
MUX_IN_SPDIF_HCKT_CLK2,
|
||||
MUX_IN_SPDIF_SPDIF_IN1,
|
||||
MUX_IN_UART3_UART_RTS_B,
|
||||
MUX_IN_UART3_UART_RXD_MUX,
|
||||
MUX_IN_USB_OTG_DATA_0,
|
||||
MUX_IN_USB_OTG_DATA_1,
|
||||
MUX_IN_USB_OTG_DATA_2,
|
||||
MUX_IN_USB_OTG_DATA_3,
|
||||
MUX_IN_USB_OTG_DATA_4,
|
||||
MUX_IN_USB_OTG_DATA_5,
|
||||
MUX_IN_USB_OTG_DATA_6,
|
||||
MUX_IN_USB_OTG_DATA_7,
|
||||
MUX_IN_USB_OTG_DIR,
|
||||
MUX_IN_USB_OTG_NXT,
|
||||
MUX_IN_USB_UH2_DATA_0,
|
||||
MUX_IN_USB_UH2_DATA_1,
|
||||
MUX_IN_USB_UH2_DATA_2,
|
||||
MUX_IN_USB_UH2_DATA_3,
|
||||
MUX_IN_USB_UH2_DATA_4,
|
||||
MUX_IN_USB_UH2_DATA_5,
|
||||
MUX_IN_USB_UH2_DATA_6,
|
||||
MUX_IN_USB_UH2_DATA_7,
|
||||
MUX_IN_USB_UH2_DIR,
|
||||
MUX_IN_USB_UH2_NXT,
|
||||
MUX_IN_USB_UH2_USB_OC,
|
||||
} iomux_input_select_t;
|
||||
|
||||
/*
|
||||
* various IOMUX input functions
|
||||
*/
|
||||
typedef enum iomux_input_config {
|
||||
INPUT_CTL_PATH0 = 0x0,
|
||||
INPUT_CTL_PATH1,
|
||||
INPUT_CTL_PATH2,
|
||||
INPUT_CTL_PATH3,
|
||||
INPUT_CTL_PATH4,
|
||||
INPUT_CTL_PATH5,
|
||||
INPUT_CTL_PATH6,
|
||||
INPUT_CTL_PATH7,
|
||||
} iomux_input_cfg_t;
|
||||
|
||||
/*
|
||||
* Request ownership for an IO pin. This function has to be the first one
|
||||
* being called before that pin is used. The caller has to check the
|
||||
* return value to make sure it returns 0.
|
||||
*
|
||||
* @param pin a name defined by iomux_pin_name_t
|
||||
* @param cfg an input function as defined in iomux_pin_cfg_t
|
||||
*
|
||||
* @return 0 if successful; Non-zero otherwise
|
||||
*/
|
||||
void mxc_request_iomux(iomux_pin_name_t pin, iomux_pin_cfg_t cfg);
|
||||
|
||||
/*
|
||||
* Release ownership for an IO pin
|
||||
*
|
||||
* @param pin a name defined by iomux_pin_name_t
|
||||
* @param cfg an input function as defined in iomux_pin_cfg_t
|
||||
*/
|
||||
void mxc_free_iomux(iomux_pin_name_t pin, iomux_pin_cfg_t cfg);
|
||||
|
||||
/*
|
||||
* This function enables/disables the general purpose function for a particular
|
||||
* signal.
|
||||
*
|
||||
* @param gp one signal as defined in iomux_gp_func_t
|
||||
* @param en 1 to enable; 0 to disable
|
||||
*/
|
||||
void mxc_iomux_set_gpr(iomux_gp_func_t gp, int en);
|
||||
|
||||
/*
|
||||
* This function configures the pad value for a IOMUX pin.
|
||||
*
|
||||
* @param pin a pin number as defined in iomux_pin_name_t
|
||||
* @param config the ORed value of elements defined in
|
||||
* iomux_pad_config_t
|
||||
*/
|
||||
void mxc_iomux_set_pad(iomux_pin_name_t pin, u32 config);
|
||||
|
||||
/*
|
||||
* This function configures input path.
|
||||
*
|
||||
* @param input index of input select register as defined in
|
||||
* iomux_input_select_t
|
||||
* @param config the binary value of elements defined in
|
||||
* iomux_input_cfg_t
|
||||
*/
|
||||
void mxc_iomux_set_input(iomux_input_select_t input, u32 config);
|
||||
#endif
|
@ -1,353 +0,0 @@
|
||||
/*
|
||||
* (C) Copyright 2011
|
||||
* Stefano Babic, DENX Software Engineering, sbabic@denx.de.
|
||||
*
|
||||
* Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
*
|
||||
* 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 __ASM_ARCH_MXC_MX35_PINS_H__
|
||||
#define __ASM_ARCH_MXC_MX35_PINS_H__
|
||||
|
||||
/*!
|
||||
* @file arch-mxc/mx35_pins.h
|
||||
*
|
||||
* @brief MX35 I/O Pin List
|
||||
*
|
||||
* @ingroup GPIO_MX35
|
||||
*/
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/*!
|
||||
* @name IOMUX/PAD Bit field definitions
|
||||
*/
|
||||
|
||||
/*! @{ */
|
||||
|
||||
/*!
|
||||
* In order to identify pins more effectively, each mux-controlled pin's
|
||||
* enumerated value is constructed in the following way:
|
||||
*
|
||||
* -------------------------------------------------------------------
|
||||
* 31-29 | 28 - 24 |23 - 21| 20 - 10| 9 - 0
|
||||
* -------------------------------------------------------------------
|
||||
* IO_P | IO_I | RSVD | PAD_I | MUX_I
|
||||
* -------------------------------------------------------------------
|
||||
*
|
||||
* Bit 0 to 7 contains MUX_I used to identify the register
|
||||
* offset (base is IOMUX_module_base ) defined in the Section
|
||||
* "sw_pad_ctl & sw_mux_ctl details" of the IC Spec. The similar field
|
||||
* definitions are used for the pad control register.the MX35_PIN_A0 is
|
||||
* defined in the enumeration: ( 0x28 << MUX_I) |( 0x368 << PAD_I)
|
||||
* So the absolute address is: IOMUX_module_base + 0x28.
|
||||
* The pad control register offset is: 0x368.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Starting bit position within each entry of \b iomux_pins to represent the
|
||||
* MUX control register offset
|
||||
*/
|
||||
#define MUX_I 0
|
||||
/*!
|
||||
* Starting bit position within each entry of \b iomux_pins to represent the
|
||||
* PAD control register offset
|
||||
*/
|
||||
#define PAD_I 10
|
||||
|
||||
/*!
|
||||
* Starting bit position within each entry of \b iomux_pins to represent the
|
||||
* reserved filed
|
||||
*/
|
||||
#define RSVD_I 21
|
||||
|
||||
#define MUX_IO_P 29
|
||||
#define MUX_IO_I 24
|
||||
#define IOMUX_TO_GPIO(pin) ((((unsigned int)pin >> MUX_IO_P) * \
|
||||
GPIO_NUM_PIN) + ((pin >> MUX_IO_I) &\
|
||||
((1 << (MUX_IO_P - MUX_IO_I)) - 1)))
|
||||
#define IOMUX_TO_IRQ(pin) (MXC_GPIO_INT_BASE + IOMUX_TO_GPIO(pin))
|
||||
|
||||
#define NON_GPIO_I 0x7
|
||||
#define PIN_TO_MUX_MASK ((1<<(PAD_I - MUX_I)) - 1)
|
||||
#define PIN_TO_PAD_MASK ((1<<(RSVD_I - PAD_I)) - 1)
|
||||
#define NON_MUX_I PIN_TO_MUX_MASK
|
||||
|
||||
#define _MXC_BUILD_PIN(gp, gi, mi, pi) \
|
||||
(((gp) << MUX_IO_P) | ((gi) << MUX_IO_I) | \
|
||||
((mi) << MUX_I) | ((pi) << PAD_I))
|
||||
|
||||
#define _MXC_BUILD_GPIO_PIN(gp, gi, mi, pi) \
|
||||
_MXC_BUILD_PIN(gp, gi, mi, pi)
|
||||
|
||||
#define _MXC_BUILD_NON_GPIO_PIN(mi, pi) \
|
||||
_MXC_BUILD_PIN(NON_GPIO_I, 0, mi, pi)
|
||||
|
||||
#define PIN_TO_IOMUX_MUX(pin) ((pin >> MUX_I) & PIN_TO_MUX_MASK)
|
||||
#define PIN_TO_IOMUX_PAD(pin) ((pin >> PAD_I) & PIN_TO_PAD_MASK)
|
||||
|
||||
/*! @} End IOMUX/PAD Bit field definitions */
|
||||
|
||||
/*!
|
||||
* This enumeration is constructed based on the Section
|
||||
* "sw_pad_ctl & sw_mux_ctl details" of the MX35 IC Spec. Each enumerated
|
||||
* value is constructed based on the rules described above.
|
||||
*/
|
||||
typedef enum iomux_pins {
|
||||
MX35_PIN_CAPTURE = _MXC_BUILD_GPIO_PIN(0, 4, 0x4, 0x328),
|
||||
MX35_PIN_COMPARE = _MXC_BUILD_GPIO_PIN(0, 5, 0x8, 0x32C),
|
||||
MX35_PIN_WATCHDOG_RST = _MXC_BUILD_GPIO_PIN(0, 6, 0xC, 0x330),
|
||||
MX35_PIN_GPIO1_0 = _MXC_BUILD_GPIO_PIN(0, 0, 0x10, 0x334),
|
||||
MX35_PIN_GPIO1_1 = _MXC_BUILD_GPIO_PIN(0, 1, 0x14, 0x338),
|
||||
MX35_PIN_GPIO2_0 = _MXC_BUILD_GPIO_PIN(1, 0, 0x18, 0x33C),
|
||||
MX35_PIN_GPIO3_0 = _MXC_BUILD_GPIO_PIN(2, 1, 0x1C, 0x340),
|
||||
MX35_PIN_CLKO = _MXC_BUILD_GPIO_PIN(0, 8, 0x20, 0x34C),
|
||||
|
||||
MX35_PIN_POWER_FAIL = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x360),
|
||||
MX35_PIN_VSTBY = _MXC_BUILD_GPIO_PIN(0, 7, 0x24, 0x364),
|
||||
MX35_PIN_A0 = _MXC_BUILD_NON_GPIO_PIN(0x28, 0x368),
|
||||
MX35_PIN_A1 = _MXC_BUILD_NON_GPIO_PIN(0x2C, 0x36C),
|
||||
MX35_PIN_A2 = _MXC_BUILD_NON_GPIO_PIN(0x30, 0x370),
|
||||
MX35_PIN_A3 = _MXC_BUILD_NON_GPIO_PIN(0x34, 0x374),
|
||||
MX35_PIN_A4 = _MXC_BUILD_NON_GPIO_PIN(0x38, 0x378),
|
||||
MX35_PIN_A5 = _MXC_BUILD_NON_GPIO_PIN(0x3C, 0x37C),
|
||||
MX35_PIN_A6 = _MXC_BUILD_NON_GPIO_PIN(0x40, 0x380),
|
||||
MX35_PIN_A7 = _MXC_BUILD_NON_GPIO_PIN(0x44, 0x384),
|
||||
MX35_PIN_A8 = _MXC_BUILD_NON_GPIO_PIN(0x48, 0x388),
|
||||
MX35_PIN_A9 = _MXC_BUILD_NON_GPIO_PIN(0x4C, 0x38C),
|
||||
MX35_PIN_A10 = _MXC_BUILD_NON_GPIO_PIN(0x50, 0x390),
|
||||
MX35_PIN_MA10 = _MXC_BUILD_NON_GPIO_PIN(0x54, 0x394),
|
||||
MX35_PIN_A11 = _MXC_BUILD_NON_GPIO_PIN(0x58, 0x398),
|
||||
MX35_PIN_A12 = _MXC_BUILD_NON_GPIO_PIN(0x5C, 0x39C),
|
||||
MX35_PIN_A13 = _MXC_BUILD_NON_GPIO_PIN(0x60, 0x3A0),
|
||||
MX35_PIN_A14 = _MXC_BUILD_NON_GPIO_PIN(0x64, 0x3A4),
|
||||
MX35_PIN_A15 = _MXC_BUILD_NON_GPIO_PIN(0x68, 0x3A8),
|
||||
MX35_PIN_A16 = _MXC_BUILD_NON_GPIO_PIN(0x6C, 0x3AC),
|
||||
MX35_PIN_A17 = _MXC_BUILD_NON_GPIO_PIN(0x70, 0x3B0),
|
||||
MX35_PIN_A18 = _MXC_BUILD_NON_GPIO_PIN(0x74, 0x3B4),
|
||||
MX35_PIN_A19 = _MXC_BUILD_NON_GPIO_PIN(0x78, 0x3B8),
|
||||
MX35_PIN_A20 = _MXC_BUILD_NON_GPIO_PIN(0x7C, 0x3BC),
|
||||
MX35_PIN_A21 = _MXC_BUILD_NON_GPIO_PIN(0x80, 0x3C0),
|
||||
MX35_PIN_A22 = _MXC_BUILD_NON_GPIO_PIN(0x84, 0x3C4),
|
||||
MX35_PIN_A23 = _MXC_BUILD_NON_GPIO_PIN(0x88, 0x3C8),
|
||||
MX35_PIN_A24 = _MXC_BUILD_NON_GPIO_PIN(0x8C, 0x3CC),
|
||||
MX35_PIN_A25 = _MXC_BUILD_NON_GPIO_PIN(0x90, 0x3D0),
|
||||
|
||||
MX35_PIN_EB0 = _MXC_BUILD_NON_GPIO_PIN(0x94, 0x46C),
|
||||
MX35_PIN_EB1 = _MXC_BUILD_NON_GPIO_PIN(0x98, 0x470),
|
||||
MX35_PIN_OE = _MXC_BUILD_NON_GPIO_PIN(0x9C, 0x474),
|
||||
MX35_PIN_CS0 = _MXC_BUILD_NON_GPIO_PIN(0xA0, 0x478),
|
||||
MX35_PIN_CS1 = _MXC_BUILD_NON_GPIO_PIN(0xA4, 0x47C),
|
||||
MX35_PIN_CS2 = _MXC_BUILD_NON_GPIO_PIN(0xA8, 0x480),
|
||||
MX35_PIN_CS3 = _MXC_BUILD_NON_GPIO_PIN(0xAC, 0x484),
|
||||
MX35_PIN_CS4 = _MXC_BUILD_GPIO_PIN(0, 20, 0xB0, 0x488),
|
||||
MX35_PIN_CS5 = _MXC_BUILD_GPIO_PIN(0, 21, 0xB4, 0x48C),
|
||||
MX35_PIN_NFCE_B = _MXC_BUILD_GPIO_PIN(0, 22, 0xB8, 0x490),
|
||||
|
||||
MX35_PIN_LBA = _MXC_BUILD_NON_GPIO_PIN(0xBC, 0x498),
|
||||
MX35_PIN_BCLK = _MXC_BUILD_NON_GPIO_PIN(0xC0, 0x49C),
|
||||
MX35_PIN_RW = _MXC_BUILD_NON_GPIO_PIN(0xC4, 0x4A0),
|
||||
|
||||
MX35_PIN_NFWE_B = _MXC_BUILD_GPIO_PIN(0, 18, 0xC8, 0x4CC),
|
||||
MX35_PIN_NFRE_B = _MXC_BUILD_GPIO_PIN(0, 19, 0xCC, 0x4D0),
|
||||
MX35_PIN_NFALE = _MXC_BUILD_GPIO_PIN(0, 20, 0xD0, 0x4D4),
|
||||
MX35_PIN_NFCLE = _MXC_BUILD_GPIO_PIN(0, 21, 0xD4, 0x4D8),
|
||||
MX35_PIN_NFWP_B = _MXC_BUILD_GPIO_PIN(0, 22, 0xD8, 0x4DC),
|
||||
MX35_PIN_NFRB = _MXC_BUILD_GPIO_PIN(0, 23, 0xDC, 0x4E0),
|
||||
|
||||
MX35_PIN_D15 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x4E4),
|
||||
MX35_PIN_D14 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x4E8),
|
||||
MX35_PIN_D13 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x4EC),
|
||||
MX35_PIN_D12 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x4F0),
|
||||
MX35_PIN_D11 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x4F4),
|
||||
MX35_PIN_D10 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x4F8),
|
||||
MX35_PIN_D9 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x4FC),
|
||||
MX35_PIN_D8 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x500),
|
||||
MX35_PIN_D7 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x504),
|
||||
MX35_PIN_D6 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x508),
|
||||
MX35_PIN_D5 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x50C),
|
||||
MX35_PIN_D4 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x510),
|
||||
MX35_PIN_D3 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x514),
|
||||
MX35_PIN_D2 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x518),
|
||||
MX35_PIN_D1 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x51C),
|
||||
MX35_PIN_D0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x520),
|
||||
|
||||
MX35_PIN_CSI_D8 = _MXC_BUILD_GPIO_PIN(0, 20, 0xE0, 0x524),
|
||||
MX35_PIN_CSI_D9 = _MXC_BUILD_GPIO_PIN(0, 21, 0xE4, 0x528),
|
||||
MX35_PIN_CSI_D10 = _MXC_BUILD_GPIO_PIN(0, 22, 0xE8, 0x52C),
|
||||
MX35_PIN_CSI_D11 = _MXC_BUILD_GPIO_PIN(0, 23, 0xEC, 0x530),
|
||||
MX35_PIN_CSI_D12 = _MXC_BUILD_GPIO_PIN(0, 24, 0xF0, 0x534),
|
||||
MX35_PIN_CSI_D13 = _MXC_BUILD_GPIO_PIN(0, 25, 0xF4, 0x538),
|
||||
MX35_PIN_CSI_D14 = _MXC_BUILD_GPIO_PIN(0, 26, 0xF8, 0x53C),
|
||||
MX35_PIN_CSI_D15 = _MXC_BUILD_GPIO_PIN(0, 27, 0xFC, 0x540),
|
||||
MX35_PIN_CSI_MCLK = _MXC_BUILD_GPIO_PIN(0, 28, 0x100, 0x544),
|
||||
MX35_PIN_CSI_VSYNC = _MXC_BUILD_GPIO_PIN(0, 29, 0x104, 0x548),
|
||||
MX35_PIN_CSI_HSYNC = _MXC_BUILD_GPIO_PIN(0, 30, 0x108, 0x54C),
|
||||
MX35_PIN_CSI_PIXCLK = _MXC_BUILD_GPIO_PIN(0, 31, 0x10C, 0x550),
|
||||
|
||||
MX35_PIN_I2C1_CLK = _MXC_BUILD_GPIO_PIN(1, 24, 0x110, 0x554),
|
||||
MX35_PIN_I2C1_DAT = _MXC_BUILD_GPIO_PIN(1, 25, 0x114, 0x558),
|
||||
MX35_PIN_I2C2_CLK = _MXC_BUILD_GPIO_PIN(1, 26, 0x118, 0x55C),
|
||||
MX35_PIN_I2C2_DAT = _MXC_BUILD_GPIO_PIN(1, 27, 0x11C, 0x560),
|
||||
|
||||
MX35_PIN_STXD4 = _MXC_BUILD_GPIO_PIN(1, 28, 0x120, 0x564),
|
||||
MX35_PIN_SRXD4 = _MXC_BUILD_GPIO_PIN(1, 29, 0x124, 0x568),
|
||||
MX35_PIN_SCK4 = _MXC_BUILD_GPIO_PIN(1, 30, 0x128, 0x56C),
|
||||
MX35_PIN_STXFS4 = _MXC_BUILD_GPIO_PIN(1, 31, 0x12C, 0x570),
|
||||
MX35_PIN_STXD5 = _MXC_BUILD_GPIO_PIN(0, 0, 0x130, 0x574),
|
||||
MX35_PIN_SRXD5 = _MXC_BUILD_GPIO_PIN(0, 1, 0x134, 0x578),
|
||||
MX35_PIN_SCK5 = _MXC_BUILD_GPIO_PIN(0, 2, 0x138, 0x57C),
|
||||
MX35_PIN_STXFS5 = _MXC_BUILD_GPIO_PIN(0, 3, 0x13C, 0x580),
|
||||
|
||||
MX35_PIN_SCKR = _MXC_BUILD_GPIO_PIN(0, 4, 0x140, 0x584),
|
||||
MX35_PIN_FSR = _MXC_BUILD_GPIO_PIN(0, 5, 0x144, 0x588),
|
||||
MX35_PIN_HCKR = _MXC_BUILD_GPIO_PIN(0, 6, 0x148, 0x58C),
|
||||
MX35_PIN_SCKT = _MXC_BUILD_GPIO_PIN(0, 7, 0x14C, 0x590),
|
||||
MX35_PIN_FST = _MXC_BUILD_GPIO_PIN(0, 8, 0x150, 0x594),
|
||||
MX35_PIN_HCKT = _MXC_BUILD_GPIO_PIN(0, 9, 0x154, 0x598),
|
||||
MX35_PIN_TX5_RX0 = _MXC_BUILD_GPIO_PIN(0, 10, 0x158, 0x59C),
|
||||
MX35_PIN_TX4_RX1 = _MXC_BUILD_GPIO_PIN(0, 11, 0x15C, 0x5A0),
|
||||
MX35_PIN_TX3_RX2 = _MXC_BUILD_GPIO_PIN(0, 12, 0x160, 0x5A4),
|
||||
MX35_PIN_TX2_RX3 = _MXC_BUILD_GPIO_PIN(0, 13, 0x164, 0x5A8),
|
||||
MX35_PIN_TX1 = _MXC_BUILD_GPIO_PIN(0, 14, 0x168, 0x5AC),
|
||||
MX35_PIN_TX0 = _MXC_BUILD_GPIO_PIN(0, 15, 0x16C, 0x5B0),
|
||||
|
||||
MX35_PIN_CSPI1_MOSI = _MXC_BUILD_GPIO_PIN(0, 16, 0x170, 0x5B4),
|
||||
MX35_PIN_CSPI1_MISO = _MXC_BUILD_GPIO_PIN(0, 17, 0x174, 0x5B8),
|
||||
MX35_PIN_CSPI1_SS0 = _MXC_BUILD_GPIO_PIN(0, 18, 0x178, 0x5BC),
|
||||
MX35_PIN_CSPI1_SS1 = _MXC_BUILD_GPIO_PIN(0, 19, 0x17C, 0x5C0),
|
||||
MX35_PIN_CSPI1_SCLK = _MXC_BUILD_GPIO_PIN(2, 4, 0x180, 0x5C4),
|
||||
MX35_PIN_CSPI1_SPI_RDY = _MXC_BUILD_GPIO_PIN(2, 5, 0x184, 0x5C8),
|
||||
|
||||
MX35_PIN_RXD1 = _MXC_BUILD_GPIO_PIN(2, 6, 0x188, 0x5CC),
|
||||
MX35_PIN_TXD1 = _MXC_BUILD_GPIO_PIN(2, 7, 0x18C, 0x5D0),
|
||||
MX35_PIN_RTS1 = _MXC_BUILD_GPIO_PIN(2, 8, 0x190, 0x5D4),
|
||||
MX35_PIN_CTS1 = _MXC_BUILD_GPIO_PIN(2, 9, 0x194, 0x5D8),
|
||||
MX35_PIN_RXD2 = _MXC_BUILD_GPIO_PIN(2, 10, 0x198, 0x5DC),
|
||||
MX35_PIN_TXD2 = _MXC_BUILD_GPIO_PIN(1, 11, 0x19C, 0x5E0),
|
||||
MX35_PIN_RTS2 = _MXC_BUILD_GPIO_PIN(1, 12, 0x1A0, 0x5E4),
|
||||
MX35_PIN_CTS2 = _MXC_BUILD_GPIO_PIN(1, 13, 0x1A4, 0x5E8),
|
||||
|
||||
MX35_PIN_USBOTG_PWR = _MXC_BUILD_GPIO_PIN(2, 14, 0x1A8, 0x60C),
|
||||
MX35_PIN_USBOTG_OC = _MXC_BUILD_GPIO_PIN(2, 15, 0x1AC, 0x610),
|
||||
|
||||
MX35_PIN_LD0 = _MXC_BUILD_GPIO_PIN(1, 0, 0x1B0, 0x614),
|
||||
MX35_PIN_LD1 = _MXC_BUILD_GPIO_PIN(1, 1, 0x1B4, 0x618),
|
||||
MX35_PIN_LD2 = _MXC_BUILD_GPIO_PIN(1, 2, 0x1B8, 0x61C),
|
||||
MX35_PIN_LD3 = _MXC_BUILD_GPIO_PIN(1, 3, 0x1BC, 0x620),
|
||||
MX35_PIN_LD4 = _MXC_BUILD_GPIO_PIN(1, 4, 0x1C0, 0x624),
|
||||
MX35_PIN_LD5 = _MXC_BUILD_GPIO_PIN(1, 5, 0x1C4, 0x628),
|
||||
MX35_PIN_LD6 = _MXC_BUILD_GPIO_PIN(1, 6, 0x1C8, 0x62C),
|
||||
MX35_PIN_LD7 = _MXC_BUILD_GPIO_PIN(1, 7, 0x1CC, 0x630),
|
||||
MX35_PIN_LD8 = _MXC_BUILD_GPIO_PIN(1, 8, 0x1D0, 0x634),
|
||||
MX35_PIN_LD9 = _MXC_BUILD_GPIO_PIN(1, 9, 0x1D4, 0x638),
|
||||
MX35_PIN_LD10 = _MXC_BUILD_GPIO_PIN(1, 10, 0x1D8, 0x63C),
|
||||
MX35_PIN_LD11 = _MXC_BUILD_GPIO_PIN(1, 11, 0x1DC, 0x640),
|
||||
MX35_PIN_LD12 = _MXC_BUILD_GPIO_PIN(1, 12, 0x1E0, 0x644),
|
||||
MX35_PIN_LD13 = _MXC_BUILD_GPIO_PIN(1, 13, 0x1E4, 0x648),
|
||||
MX35_PIN_LD14 = _MXC_BUILD_GPIO_PIN(1, 14, 0x1E8, 0x64C),
|
||||
MX35_PIN_LD15 = _MXC_BUILD_GPIO_PIN(1, 15, 0x1EC, 0x650),
|
||||
MX35_PIN_LD16 = _MXC_BUILD_GPIO_PIN(1, 16, 0x1F0, 0x654),
|
||||
MX35_PIN_LD17 = _MXC_BUILD_GPIO_PIN(1, 17, 0x1F4, 0x658),
|
||||
MX35_PIN_LD18 = _MXC_BUILD_GPIO_PIN(2, 24, 0x1F8, 0x65C),
|
||||
MX35_PIN_LD19 = _MXC_BUILD_GPIO_PIN(2, 25, 0x1FC, 0x660),
|
||||
MX35_PIN_LD20 = _MXC_BUILD_GPIO_PIN(2, 26, 0x200, 0x664),
|
||||
MX35_PIN_LD21 = _MXC_BUILD_GPIO_PIN(2, 27, 0x204, 0x668),
|
||||
MX35_PIN_LD22 = _MXC_BUILD_GPIO_PIN(2, 28, 0x208, 0x66C),
|
||||
MX35_PIN_LD23 = _MXC_BUILD_GPIO_PIN(2, 29, 0x20C, 0x670),
|
||||
|
||||
MX35_PIN_D3_HSYNC = _MXC_BUILD_GPIO_PIN(2, 30, 0x210, 0x674),
|
||||
MX35_PIN_D3_FPSHIFT = _MXC_BUILD_GPIO_PIN(2, 31, 0x214, 0x678),
|
||||
MX35_PIN_D3_DRDY = _MXC_BUILD_GPIO_PIN(0, 0, 0x218, 0x67C),
|
||||
MX35_PIN_CONTRAST = _MXC_BUILD_GPIO_PIN(0, 1, 0x21C, 0x680),
|
||||
MX35_PIN_D3_VSYNC = _MXC_BUILD_GPIO_PIN(0, 2, 0x220, 0x684),
|
||||
MX35_PIN_D3_REV = _MXC_BUILD_GPIO_PIN(0, 3, 0x224, 0x688),
|
||||
MX35_PIN_D3_CLS = _MXC_BUILD_GPIO_PIN(0, 4, 0x228, 0x68C),
|
||||
MX35_PIN_D3_SPL = _MXC_BUILD_GPIO_PIN(0, 5, 0x22C, 0x690),
|
||||
|
||||
MX35_PIN_SD1_CMD = _MXC_BUILD_GPIO_PIN(0, 6, 0x230, 0x694),
|
||||
MX35_PIN_SD1_CLK = _MXC_BUILD_GPIO_PIN(0, 7, 0x234, 0x698),
|
||||
MX35_PIN_SD1_DATA0 = _MXC_BUILD_GPIO_PIN(0, 8, 0x238, 0x69C),
|
||||
MX35_PIN_SD1_DATA1 = _MXC_BUILD_GPIO_PIN(0, 9, 0x23C, 0x6A0),
|
||||
MX35_PIN_SD1_DATA2 = _MXC_BUILD_GPIO_PIN(0, 10, 0x240, 0x6A4),
|
||||
MX35_PIN_SD1_DATA3 = _MXC_BUILD_GPIO_PIN(0, 11, 0x244, 0x6A8),
|
||||
MX35_PIN_SD2_CMD = _MXC_BUILD_GPIO_PIN(1, 0, 0x248, 0x6AC),
|
||||
MX35_PIN_SD2_CLK = _MXC_BUILD_GPIO_PIN(1, 1, 0x24C, 0x6B0),
|
||||
MX35_PIN_SD2_DATA0 = _MXC_BUILD_GPIO_PIN(1, 2, 0x250, 0x6B4),
|
||||
MX35_PIN_SD2_DATA1 = _MXC_BUILD_GPIO_PIN(1, 3, 0x254, 0x6B8),
|
||||
MX35_PIN_SD2_DATA2 = _MXC_BUILD_GPIO_PIN(1, 4, 0x258, 0x6BC),
|
||||
MX35_PIN_SD2_DATA3 = _MXC_BUILD_GPIO_PIN(1, 5, 0x25C, 0x6C0),
|
||||
|
||||
MX35_PIN_ATA_CS0 = _MXC_BUILD_GPIO_PIN(1, 6, 0x260, 0x6C4),
|
||||
MX35_PIN_ATA_CS1 = _MXC_BUILD_GPIO_PIN(1, 7, 0x264, 0x6C8),
|
||||
MX35_PIN_ATA_DIOR = _MXC_BUILD_GPIO_PIN(1, 8, 0x268, 0x6CC),
|
||||
MX35_PIN_ATA_DIOW = _MXC_BUILD_GPIO_PIN(1, 9, 0x26C, 0x6D0),
|
||||
MX35_PIN_ATA_DMACK = _MXC_BUILD_GPIO_PIN(1, 10, 0x270, 0x6D4),
|
||||
MX35_PIN_ATA_RESET_B = _MXC_BUILD_GPIO_PIN(1, 11, 0x274, 0x6D8),
|
||||
MX35_PIN_ATA_IORDY = _MXC_BUILD_GPIO_PIN(1, 12, 0x278, 0x6DC),
|
||||
MX35_PIN_ATA_DATA0 = _MXC_BUILD_GPIO_PIN(1, 13, 0x27C, 0x6E0),
|
||||
MX35_PIN_ATA_DATA1 = _MXC_BUILD_GPIO_PIN(1, 14, 0x280, 0x6E4),
|
||||
MX35_PIN_ATA_DATA2 = _MXC_BUILD_GPIO_PIN(1, 15, 0x284, 0x6E8),
|
||||
MX35_PIN_ATA_DATA3 = _MXC_BUILD_GPIO_PIN(1, 16, 0x288, 0x6EC),
|
||||
MX35_PIN_ATA_DATA4 = _MXC_BUILD_GPIO_PIN(1, 17, 0x28C, 0x6F0),
|
||||
MX35_PIN_ATA_DATA5 = _MXC_BUILD_GPIO_PIN(1, 18, 0x290, 0x6F4),
|
||||
MX35_PIN_ATA_DATA6 = _MXC_BUILD_GPIO_PIN(1, 19, 0x294, 0x6F8),
|
||||
MX35_PIN_ATA_DATA7 = _MXC_BUILD_GPIO_PIN(1, 20, 0x298, 0x6FC),
|
||||
MX35_PIN_ATA_DATA8 = _MXC_BUILD_GPIO_PIN(1, 21, 0x29C, 0x700),
|
||||
MX35_PIN_ATA_DATA9 = _MXC_BUILD_GPIO_PIN(1, 22, 0x2A0, 0x704),
|
||||
MX35_PIN_ATA_DATA10 = _MXC_BUILD_GPIO_PIN(1, 23, 0x2A4, 0x708),
|
||||
MX35_PIN_ATA_DATA11 = _MXC_BUILD_GPIO_PIN(1, 24, 0x2A8, 0x70C),
|
||||
MX35_PIN_ATA_DATA12 = _MXC_BUILD_GPIO_PIN(1, 25, 0x2AC, 0x710),
|
||||
MX35_PIN_ATA_DATA13 = _MXC_BUILD_GPIO_PIN(1, 26, 0x2B0, 0x714),
|
||||
MX35_PIN_ATA_DATA14 = _MXC_BUILD_GPIO_PIN(1, 27, 0x2B4, 0x718),
|
||||
MX35_PIN_ATA_DATA15 = _MXC_BUILD_GPIO_PIN(1, 28, 0x2B8, 0x71C),
|
||||
MX35_PIN_ATA_INTRQ = _MXC_BUILD_GPIO_PIN(1, 29, 0x2BC, 0x720),
|
||||
MX35_PIN_ATA_BUFF_EN = _MXC_BUILD_GPIO_PIN(1, 30, 0x2C0, 0x724),
|
||||
MX35_PIN_ATA_DMARQ = _MXC_BUILD_GPIO_PIN(1, 31, 0x2C4, 0x728),
|
||||
MX35_PIN_ATA_DA0 = _MXC_BUILD_GPIO_PIN(2, 0, 0x2C8, 0x72C),
|
||||
MX35_PIN_ATA_DA1 = _MXC_BUILD_GPIO_PIN(2, 1, 0x2CC, 0x730),
|
||||
MX35_PIN_ATA_DA2 = _MXC_BUILD_GPIO_PIN(2, 2, 0x2D0, 0x734),
|
||||
|
||||
MX35_PIN_MLB_CLK = _MXC_BUILD_GPIO_PIN(2, 3, 0x2D4, 0x738),
|
||||
MX35_PIN_MLB_DAT = _MXC_BUILD_GPIO_PIN(2, 4, 0x2D8, 0x73C),
|
||||
MX35_PIN_MLB_SIG = _MXC_BUILD_GPIO_PIN(2, 5, 0x2DC, 0x740),
|
||||
|
||||
MX35_PIN_FEC_TX_CLK = _MXC_BUILD_GPIO_PIN(2, 6, 0x2E0, 0x744),
|
||||
MX35_PIN_FEC_RX_CLK = _MXC_BUILD_GPIO_PIN(2, 7, 0x2E4, 0x748),
|
||||
MX35_PIN_FEC_RX_DV = _MXC_BUILD_GPIO_PIN(2, 8, 0x2E8, 0x74C),
|
||||
MX35_PIN_FEC_COL = _MXC_BUILD_GPIO_PIN(2, 9, 0x2EC, 0x750),
|
||||
MX35_PIN_FEC_RDATA0 = _MXC_BUILD_GPIO_PIN(2, 10, 0x2F0, 0x754),
|
||||
MX35_PIN_FEC_TDATA0 = _MXC_BUILD_GPIO_PIN(2, 11, 0x2F4, 0x758),
|
||||
MX35_PIN_FEC_TX_EN = _MXC_BUILD_GPIO_PIN(2, 12, 0x2F8, 0x75C),
|
||||
MX35_PIN_FEC_MDC = _MXC_BUILD_GPIO_PIN(2, 13, 0x2FC, 0x760),
|
||||
MX35_PIN_FEC_MDIO = _MXC_BUILD_GPIO_PIN(2, 14, 0x300, 0x764),
|
||||
MX35_PIN_FEC_TX_ERR = _MXC_BUILD_GPIO_PIN(2, 15, 0x304, 0x768),
|
||||
MX35_PIN_FEC_RX_ERR = _MXC_BUILD_GPIO_PIN(2, 16, 0x308, 0x76C),
|
||||
MX35_PIN_FEC_CRS = _MXC_BUILD_GPIO_PIN(2, 17, 0x30C, 0x770),
|
||||
MX35_PIN_FEC_RDATA1 = _MXC_BUILD_GPIO_PIN(2, 18, 0x310, 0x774),
|
||||
MX35_PIN_FEC_TDATA1 = _MXC_BUILD_GPIO_PIN(2, 19, 0x314, 0x778),
|
||||
MX35_PIN_FEC_RDATA2 = _MXC_BUILD_GPIO_PIN(2, 20, 0x318, 0x77C),
|
||||
MX35_PIN_FEC_TDATA2 = _MXC_BUILD_GPIO_PIN(2, 21, 0x31C, 0x780),
|
||||
MX35_PIN_FEC_RDATA3 = _MXC_BUILD_GPIO_PIN(2, 22, 0x320, 0x784),
|
||||
MX35_PIN_FEC_TDATA3 = _MXC_BUILD_GPIO_PIN(2, 23, 0x324, 0x788),
|
||||
} iomux_pin_name_t;
|
||||
|
||||
#endif
|
||||
#endif
|
@ -68,5 +68,6 @@ void set_usboh3_clk(void);
|
||||
void enable_usboh3_clk(unsigned char enable);
|
||||
void mxc_set_sata_internal_clock(void);
|
||||
int enable_i2c_clk(unsigned char enable, unsigned i2c_num);
|
||||
void enable_nfc_clk(unsigned char enable);
|
||||
|
||||
#endif /* __ASM_ARCH_CLOCK_H */
|
||||
|
@ -267,6 +267,8 @@
|
||||
/* M4IF */
|
||||
#define M4IF_FBPM0 0x40
|
||||
#define M4IF_FIDBP 0x48
|
||||
#define M4IF_GENP_WEIM_MM_MASK 0x00000001
|
||||
#define WEIM_GCR2_MUX16_BYP_GRANT_MASK 0x00001000
|
||||
|
||||
/* Assuming 24MHz input clock with doubler ON */
|
||||
/* MFI PDF */
|
||||
@ -499,7 +501,7 @@ struct iim_regs {
|
||||
u32 sdat;
|
||||
u32 prev;
|
||||
u32 srev;
|
||||
u32 preg_p;
|
||||
u32 prg_p;
|
||||
u32 scs0;
|
||||
u32 scs1;
|
||||
u32 scs2;
|
||||
@ -508,12 +510,22 @@ struct iim_regs {
|
||||
struct fuse_bank {
|
||||
u32 fuse_regs[0x20];
|
||||
u32 fuse_rsvd[0xe0];
|
||||
#if defined(CONFIG_MX51)
|
||||
} bank[4];
|
||||
#elif defined(CONFIG_MX53)
|
||||
} bank[5];
|
||||
#endif
|
||||
};
|
||||
|
||||
struct fuse_bank0_regs {
|
||||
u32 fuse0_23[24];
|
||||
u32 fuse0_7[8];
|
||||
u32 uid[8];
|
||||
u32 fuse16_23[8];
|
||||
#if defined(CONFIG_MX51)
|
||||
u32 imei[8];
|
||||
#elif defined(CONFIG_MX53)
|
||||
u32 gp[8];
|
||||
#endif
|
||||
};
|
||||
|
||||
struct fuse_bank1_regs {
|
||||
@ -522,6 +534,14 @@ struct fuse_bank1_regs {
|
||||
u32 fuse15_31[0x11];
|
||||
};
|
||||
|
||||
#if defined(CONFIG_MX53)
|
||||
struct fuse_bank4_regs {
|
||||
u32 fuse0_4[5];
|
||||
u32 gp[3];
|
||||
u32 fuse8_31[0x18];
|
||||
};
|
||||
#endif
|
||||
|
||||
#endif /* __ASSEMBLER__*/
|
||||
|
||||
#endif /* __ASM_ARCH_MX5_IMX_REGS_H__ */
|
||||
|
@ -21,29 +21,8 @@
|
||||
|
||||
#include <asm/imx-common/iomux-v3.h>
|
||||
|
||||
#define PAD_CTL_DVS (1 << 13)
|
||||
#define PAD_CTL_INPUT_DDR (1 << 9)
|
||||
#define PAD_CTL_HYS (1 << 8)
|
||||
|
||||
#define PAD_CTL_PKE (1 << 7)
|
||||
#define PAD_CTL_PUE (1 << 6 | PAD_CTL_PKE)
|
||||
#define PAD_CTL_PUS_100K_DOWN (0 << 4 | PAD_CTL_PUE)
|
||||
#define PAD_CTL_PUS_47K_UP (1 << 4 | PAD_CTL_PUE)
|
||||
#define PAD_CTL_PUS_100K_UP (2 << 4 | PAD_CTL_PUE)
|
||||
#define PAD_CTL_PUS_22K_UP (3 << 4 | PAD_CTL_PUE)
|
||||
|
||||
#define PAD_CTL_ODE (1 << 3)
|
||||
|
||||
#define PAD_CTL_DSE_LOW (0 << 1)
|
||||
#define PAD_CTL_DSE_MED (1 << 1)
|
||||
#define PAD_CTL_DSE_HIGH (2 << 1)
|
||||
#define PAD_CTL_DSE_MAX (3 << 1)
|
||||
|
||||
#define PAD_CTL_SRE_FAST (1 << 0)
|
||||
#define PAD_CTL_SRE_SLOW (0 << 0)
|
||||
|
||||
/* Pad control groupings */
|
||||
#define MX51_UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_DSE_HIGH | \
|
||||
#define MX51_UART_PAD_CTRL (PAD_CTL_PUS_100K_DOWN | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_HYS | PAD_CTL_SRE_FAST)
|
||||
#define MX51_I2C_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_ODE | \
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP | \
|
||||
@ -51,17 +30,17 @@
|
||||
#define MX51_ESDHC_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_ODE | \
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_HYS)
|
||||
#define MX51_USBH1_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_SRE_FAST | \
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_HYS | PAD_CTL_PUE)
|
||||
#define MX51_USBH_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_HYS)
|
||||
#define MX51_ECSPI_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_HYS | \
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST)
|
||||
#define MX51_SDHCI_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_47K_UP | PAD_CTL_PUE | \
|
||||
#define MX51_SDHCI_PAD_CTRL (PAD_CTL_DSE_HIGH | PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_DVS)
|
||||
#define MX51_GPIO_PAD_CTRL (PAD_CTL_DSE_HIGH | PAD_CTL_PKE | PAD_CTL_SRE_FAST)
|
||||
|
||||
#define __NA_ 0x000
|
||||
#define MX51_PAD_CTRL_2 (PAD_CTL_PKE | PAD_CTL_HYS)
|
||||
#define MX51_PAD_CTRL_4 (PAD_CTL_PKE | PAD_CTL_DVS | PAD_CTL_HYS)
|
||||
#define MX51_PAD_CTRL_5 (PAD_CTL_DVS | PAD_CTL_DSE_HIGH)
|
||||
|
||||
/*
|
||||
* The naming convention for the pad modes is MX51_PAD_<padname>__<padmode>
|
||||
@ -69,26 +48,57 @@
|
||||
* See also iomux-v3.h
|
||||
*/
|
||||
|
||||
/* PAD MUX ALT INPSE PATH PADCTRL */
|
||||
/* PAD MUX ALT INPSE PATH PADCTRL */
|
||||
enum {
|
||||
MX51_PAD_EIM_D16__USBH2_DATA0 = IOMUX_PAD(0x3f0, 0x05c, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_D17__USBH2_DATA1 = IOMUX_PAD(0x3f4, 0x060, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_D18__USBH2_DATA2 = IOMUX_PAD(0x3f8, 0x064, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_D19__USBH2_DATA3 = IOMUX_PAD(0x3fc, 0x068, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_D20__USBH2_DATA4 = IOMUX_PAD(0x400, 0x06c, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_D21__USBH2_DATA5 = IOMUX_PAD(0x404, 0x070, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_D22__USBH2_DATA6 = IOMUX_PAD(0x408, 0x074, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_D23__USBH2_DATA7 = IOMUX_PAD(0x40c, 0x078, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_D16__USBH2_DATA0 = IOMUX_PAD(0x3f0, 0x05c, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_D17__GPIO2_1 = IOMUX_PAD(0x3f4, 0x060, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_D17__USBH2_DATA1 = IOMUX_PAD(0x3f4, 0x060, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_D18__USBH2_DATA2 = IOMUX_PAD(0x3f8, 0x064, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_D19__USBH2_DATA3 = IOMUX_PAD(0x3fc, 0x068, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_D20__USBH2_DATA4 = IOMUX_PAD(0x400, 0x06c, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_D21__GPIO2_5 = IOMUX_PAD(0x404, 0x070, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_D21__USBH2_DATA5 = IOMUX_PAD(0x404, 0x070, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_D22__USBH2_DATA6 = IOMUX_PAD(0x408, 0x074, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_D23__USBH2_DATA7 = IOMUX_PAD(0x40c, 0x078, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_D25__UART3_RXD = IOMUX_PAD(0x414, 0x080, 3, 0x9f4, 0, MX51_UART_PAD_CTRL),
|
||||
MX51_PAD_EIM_D26__UART3_TXD = IOMUX_PAD(0x418, 0x084, 3, __NA_, 0, MX51_UART_PAD_CTRL),
|
||||
MX51_PAD_EIM_D27__GPIO2_9 = IOMUX_PAD(0x41c, 0x088, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_A24__USBH2_CLK = IOMUX_PAD(0x450, 0x0bc, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_A25__USBH2_DIR = IOMUX_PAD(0x454, 0x0c0, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_A16__GPIO2_10 = IOMUX_PAD(0x430, 0x09c, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_A17__GPIO2_11 = IOMUX_PAD(0x434, 0x0a0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_A20__GPIO2_14 = IOMUX_PAD(0x440, 0x0ac, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_A22__GPIO2_16 = IOMUX_PAD(0x448, 0x0b4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_A24__USBH2_CLK = IOMUX_PAD(0x450, 0x0bc, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_A25__USBH2_DIR = IOMUX_PAD(0x454, 0x0c0, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_A26__GPIO2_20 = IOMUX_PAD(0x458, 0x0c4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_A26__USBH2_STP = IOMUX_PAD(0x458, 0x0c4, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_A27__USBH2_NXT = IOMUX_PAD(0x45c, 0x0c8, 2, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_A26__USBH2_STP = IOMUX_PAD(0x458, 0x0c4, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_A27__USBH2_NXT = IOMUX_PAD(0x45c, 0x0c8, 2, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_EIM_EB2__FEC_MDIO = IOMUX_PAD(0x468, 0x0d4, 3, 0x954, 0, PAD_CTL_PUS_22K_UP | PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | PAD_CTL_HYS),
|
||||
MX51_PAD_EIM_EB3__FEC_RDATA1 = IOMUX_PAD(0x46c, 0x0d8, 3, 0x95c, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_EB3__GPIO2_23 = IOMUX_PAD(0x46c, 0x0d8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_CS0__GPIO2_25 = IOMUX_PAD(0x474, 0x0e0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_CS2__SD1_CD = IOMUX_PAD(0x47c, 0x0e8, 1, __NA_, 0, MX51_ESDHC_PAD_CTRL),
|
||||
MX51_PAD_EIM_CS2__FEC_RDATA2 = IOMUX_PAD(0x47c, 0x0e8, 3, 0x960, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_CS2__GPIO2_27 = IOMUX_PAD(0x47c, 0x0e8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_CS3__FEC_RDATA3 = IOMUX_PAD(0x480, 0x0ec, 3, 0x964, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_EIM_CS3__GPIO2_28 = IOMUX_PAD(0x480, 0x0ec, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_CS4__FEC_RX_ER = IOMUX_PAD(0x484, 0x0f0, 3, 0x970, 0, MX51_PAD_CTRL_2),
|
||||
MX51_PAD_EIM_CS4__GPIO2_29 = IOMUX_PAD(0x484, 0x0f0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_EIM_CS5__FEC_CRS = IOMUX_PAD(0x488, 0x0f4, 3, 0x950, 0, MX51_PAD_CTRL_2),
|
||||
MX51_PAD_DRAM_RAS__DRAM_RAS = IOMUX_PAD(0x4a4, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_CAS__DRAM_CAS = IOMUX_PAD(0x4a8, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_SDWE__DRAM_SDWE = IOMUX_PAD(0x4ac, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_SDCKE0__DRAM_SDCKE0 = IOMUX_PAD(0x4b0, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_SDCKE1__DRAM_SDCKE1 = IOMUX_PAD(0x4b4, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_SDCLK__DRAM_SDCLK = IOMUX_PAD(0x4b8, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_SDQS0__DRAM_SDQS0 = IOMUX_PAD(0x4bc, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_SDQS1__DRAM_SDQS1 = IOMUX_PAD(0x4c0, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_SDQS2__DRAM_SDQS2 = IOMUX_PAD(0x4c4, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_SDQS3__DRAM_SDQS3 = IOMUX_PAD(0x4c8, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_CS0__DRAM_CS0 = IOMUX_PAD(0x4cc, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_CS1__DRAM_CS1 = IOMUX_PAD(0x4d0, 0x104, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_DQM0__DRAM_DQM0 = IOMUX_PAD(0x4d4, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_DQM1__DRAM_DQM1 = IOMUX_PAD(0x4d8, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_DQM2__DRAM_DQM2 = IOMUX_PAD(0x4dc, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DRAM_DQM3__DRAM_DQM3 = IOMUX_PAD(0x4e0, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_WE_B__PATA_DIOW = IOMUX_PAD(0x4e4, 0x108, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_RE_B__PATA_DIOR = IOMUX_PAD(0x4e8, 0x10c, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_ALE__PATA_BUFFER_EN = IOMUX_PAD(0x4ec, 0x110, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
@ -96,19 +106,38 @@ enum {
|
||||
MX51_PAD_NANDF_WP_B__PATA_DMACK = IOMUX_PAD(0x4f4, 0x118, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_RB0__PATA_DMARQ = IOMUX_PAD(0x4f8, 0x11c, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_RB1__PATA_IORDY = IOMUX_PAD(0x4fc, 0x120, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_RB2__FEC_COL = IOMUX_PAD(0x500, 0x124, 1, 0x94c, 0, MX51_PAD_CTRL_2),
|
||||
MX51_PAD_NANDF_RB2__GPIO3_10 = IOMUX_PAD(0x500, 0x124, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_RB3__FEC_RX_CLK = IOMUX_PAD(0x504, 0x128, 1, 0x968, 0, MX51_PAD_CTRL_2),
|
||||
MX51_PAD_NANDF_RB3__GPIO3_11 = IOMUX_PAD(0x504, 0x128, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_GPIO_NAND__PATA_INTRQ = IOMUX_PAD(0x514, 0x12c, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_CS2__FEC_TX_ER = IOMUX_PAD(0x520, 0x138, 2, __NA_, 0, MX51_PAD_CTRL_5),
|
||||
MX51_PAD_NANDF_CS2__PATA_CS_0 = IOMUX_PAD(0x520, 0x138, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_CS3__FEC_MDC = IOMUX_PAD(0x524, 0x13c, 2, __NA_, 0, MX51_PAD_CTRL_5),
|
||||
MX51_PAD_NANDF_CS3__PATA_CS_1 = IOMUX_PAD(0x524, 0x13c, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_CS4__FEC_TDATA1 = IOMUX_PAD(0x528, 0x140, 2, __NA_, 0, MX51_PAD_CTRL_5),
|
||||
MX51_PAD_NANDF_CS4__PATA_DA_0 = IOMUX_PAD(0x528, 0x140, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_CS5__FEC_TDATA2 = IOMUX_PAD(0x52c, 0x144, 2, __NA_, 0, MX51_PAD_CTRL_5),
|
||||
MX51_PAD_NANDF_CS5__PATA_DA_1 = IOMUX_PAD(0x52c, 0x144, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_CS6__FEC_TDATA3 = IOMUX_PAD(0x530, 0x148, 2, __NA_, 0, MX51_PAD_CTRL_5),
|
||||
MX51_PAD_NANDF_CS6__PATA_DA_2 = IOMUX_PAD(0x530, 0x148, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_CS7__FEC_TX_EN = IOMUX_PAD(0x534, 0x14c, 1, __NA_, 0, MX51_PAD_CTRL_5),
|
||||
MX51_PAD_NANDF_RDY_INT__FEC_TX_CLK = IOMUX_PAD(0x538, 0x150, 1, 0x974, 0, MX51_PAD_CTRL_4),
|
||||
MX51_PAD_NANDF_D15__GPIO3_25 = IOMUX_PAD(0x53c, 0x154, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D15__PATA_DATA15 = IOMUX_PAD(0x53c, 0x154, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D14__GPIO3_26 = IOMUX_PAD(0x540, 0x158, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D14__PATA_DATA14 = IOMUX_PAD(0x540, 0x158, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D13__GPIO3_27 = IOMUX_PAD(0x544, 0x15c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D13__PATA_DATA13 = IOMUX_PAD(0x544, 0x15c, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D12__PATA_DATA12 = IOMUX_PAD(0x548, 0x160, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D11__FEC_RX_DV = IOMUX_PAD(0x54c, 0x164, 2, 0x96c, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D11__PATA_DATA11 = IOMUX_PAD(0x54c, 0x164, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D10__GPIO3_30 = IOMUX_PAD(0x550, 0x168, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D10__PATA_DATA10 = IOMUX_PAD(0x550, 0x168, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D9__FEC_RDATA0 = IOMUX_PAD(0x554, 0x16c, 0x12, 0x958, 0, MX51_PAD_CTRL_4),
|
||||
MX51_PAD_NANDF_D9__GPIO3_31 = IOMUX_PAD(0x554, 0x16c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D9__PATA_DATA9 = IOMUX_PAD(0x554, 0x16c, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D8__FEC_TDATA0 = IOMUX_PAD(0x558, 0x170, 2, __NA_, 0, MX51_PAD_CTRL_5),
|
||||
MX51_PAD_NANDF_D8__PATA_DATA8 = IOMUX_PAD(0x558, 0x170, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D7__PATA_DATA7 = IOMUX_PAD(0x55c, 0x174, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D6__PATA_DATA6 = IOMUX_PAD(0x560, 0x178, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
@ -118,34 +147,52 @@ enum {
|
||||
MX51_PAD_NANDF_D2__PATA_DATA2 = IOMUX_PAD(0x570, 0x188, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D1__PATA_DATA1 = IOMUX_PAD(0x574, 0x18c, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_NANDF_D0__PATA_DATA0 = IOMUX_PAD(0x578, 0x190, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_CSI2_D12__GPIO4_9 = IOMUX_PAD(0x5bc, 0x1cc, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_CSI2_D13__GPIO4_10 = IOMUX_PAD(0x5c0, 0x1d0, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI = IOMUX_PAD(0x600, 0x210, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL),
|
||||
MX51_PAD_CSPI1_MISO__ECSPI1_MISO = IOMUX_PAD(0x604, 0x214, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL),
|
||||
MX51_PAD_CSPI1_SS0__ECSPI1_SS0 = IOMUX_PAD(0x608, 0x218, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL),
|
||||
MX51_PAD_CSPI1_SS0__GPIO4_24 = IOMUX_PAD(0x608, 0x218, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_CSPI1_SS1__ECSPI1_SS1 = IOMUX_PAD(0x60c, 0x21c, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL),
|
||||
MX51_PAD_CSPI1_SS1__GPIO4_25 = IOMUX_PAD(0x60c, 0x21c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_CSPI1_RDY__ECSPI1_RDY = IOMUX_PAD(0x610, 0x220, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL),
|
||||
MX51_PAD_CSPI1_RDY__GPIO4_26 = IOMUX_PAD(0x610, 0x220, 3, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK = IOMUX_PAD(0x614, 0x224, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL),
|
||||
MX51_PAD_UART1_RXD__UART1_RXD = IOMUX_PAD(0x618, 0x228, 0, 0x9e4, 0, MX51_UART_PAD_CTRL),
|
||||
MX51_PAD_UART1_TXD__UART1_TXD = IOMUX_PAD(0x61c, 0x22c, 0, __NA_, 0, MX51_UART_PAD_CTRL),
|
||||
MX51_PAD_UART1_RTS__UART1_RTS = IOMUX_PAD(0x620, 0x230, 0, 0x9e0, 0, MX51_UART_PAD_CTRL),
|
||||
MX51_PAD_UART1_CTS__UART1_CTS = IOMUX_PAD(0x624, 0x234, 0, __NA_, 0, MX51_UART_PAD_CTRL),
|
||||
MX51_PAD_USBH1_CLK__USBH1_CLK = IOMUX_PAD(0x678, 0x278, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DIR__USBH1_DIR = IOMUX_PAD(0x67c, 0x27c, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_STP__USBH1_STP = IOMUX_PAD(0x680, 0x280, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_CLK__USBH1_CLK = IOMUX_PAD(0x678, 0x278, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DIR__USBH1_DIR = IOMUX_PAD(0x67c, 0x27c, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_STP__GPIO1_27 = IOMUX_PAD(0x680, 0x280, 2, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_USBH1_NXT__USBH1_NXT = IOMUX_PAD(0x684, 0x284, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA0__USBH1_DATA0 = IOMUX_PAD(0x688, 0x288, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA1__USBH1_DATA1 = IOMUX_PAD(0x68c, 0x28c, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA2__USBH1_DATA2 = IOMUX_PAD(0x690, 0x290, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA3__USBH1_DATA3 = IOMUX_PAD(0x694, 0x294, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA4__USBH1_DATA4 = IOMUX_PAD(0x698, 0x298, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA5__USBH1_DATA5 = IOMUX_PAD(0x69c, 0x29c, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA6__USBH1_DATA6 = IOMUX_PAD(0x6a0, 0x2a0, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA7__USBH1_DATA7 = IOMUX_PAD(0x6a4, 0x2a4, 0, __NA_, 0, MX51_USBH1_PAD_CTRL),
|
||||
MX51_PAD_USBH1_STP__USBH1_STP = IOMUX_PAD(0x680, 0x280, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_NXT__USBH1_NXT = IOMUX_PAD(0x684, 0x284, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA0__USBH1_DATA0 = IOMUX_PAD(0x688, 0x288, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA1__USBH1_DATA1 = IOMUX_PAD(0x68c, 0x28c, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA2__USBH1_DATA2 = IOMUX_PAD(0x690, 0x290, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA3__USBH1_DATA3 = IOMUX_PAD(0x694, 0x294, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA4__USBH1_DATA4 = IOMUX_PAD(0x698, 0x298, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA5__USBH1_DATA5 = IOMUX_PAD(0x69c, 0x29c, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA6__USBH1_DATA6 = IOMUX_PAD(0x6a0, 0x2a0, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_USBH1_DATA7__USBH1_DATA7 = IOMUX_PAD(0x6a4, 0x2a4, 0, __NA_, 0, MX51_USBH_PAD_CTRL),
|
||||
MX51_PAD_DI1_PIN11__ECSPI1_SS2 = IOMUX_PAD(0x6a8, 0x2a8, 7, __NA_, 0, MX51_ECSPI_PAD_CTRL),
|
||||
MX51_PAD_DI1_PIN12__GPIO3_1 = IOMUX_PAD(0x6ac, 0x2ac, 4, 0x978, 1, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_DI1_PIN13__GPIO3_2 = IOMUX_PAD(0x6b0, 0x2b0, 4, 0x97c, 1, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_DI1_D0_CS__GPIO3_3 = IOMUX_PAD(0x6b4, 0x2b4, 4, 0x980, 1, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_DI1_D1_CS__GPIO3_4 = IOMUX_PAD(0x6b8, 0x2b8, 4, 0x984, 1, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_DISPB2_SER_DIN__GPIO3_5 = IOMUX_PAD(0x6bc, 0x2bc, 4, 0x988, 1, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_DISPB2_SER_DIO__GPIO3_6 = IOMUX_PAD(0x6c0, 0x2c0, 4, 0x98c, 1, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_DI1_PIN3__DI1_PIN3 = IOMUX_PAD(0x72c, 0x32c, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DI1_PIN2__DI1_PIN2 = IOMUX_PAD(0x734, 0x330, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK = IOMUX_PAD(0x754, 0x34c, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_DI_GP4__DI2_PIN15 = IOMUX_PAD(0x758, 0x350, 4, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_SD1_CMD__SD1_CMD = IOMUX_PAD(0x79c, 0x394, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL),
|
||||
MX51_PAD_SD1_CLK__SD1_CLK = IOMUX_PAD(0x7a0, 0x398, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS),
|
||||
MX51_PAD_SD1_DATA0__SD1_DATA0 = IOMUX_PAD(0x7a4, 0x39c, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL),
|
||||
MX51_PAD_SD1_DATA1__SD1_DATA1 = IOMUX_PAD(0x7a8, 0x3a0, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL),
|
||||
MX51_PAD_SD1_DATA2__SD1_DATA2 = IOMUX_PAD(0x7ac, 0x3a4, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL),
|
||||
MX51_PAD_SD1_DATA3__SD1_DATA3 = IOMUX_PAD(0x7b0, 0x3a8, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_0__GPIO1_0 = IOMUX_PAD(0x7b4, 0x3ac, 1, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_0__SD1_CD = IOMUX_PAD(0x7b4, 0x3ac, 0, __NA_, 0, MX51_ESDHC_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_1__SD1_WP = IOMUX_PAD(0x7b8, 0x3b0, 0, __NA_, 0, MX51_ESDHC_PAD_CTRL),
|
||||
MX51_PAD_SD2_CMD__SD2_CMD = IOMUX_PAD(0x7bc, 0x3b4, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL),
|
||||
@ -154,11 +201,36 @@ enum {
|
||||
MX51_PAD_SD2_DATA1__SD2_DATA1 = IOMUX_PAD(0x7c8, 0x3c0, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL),
|
||||
MX51_PAD_SD2_DATA2__SD2_DATA2 = IOMUX_PAD(0x7cc, 0x3c4, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL),
|
||||
MX51_PAD_SD2_DATA3__SD2_DATA3 = IOMUX_PAD(0x7d0, 0x3c8, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_2__GPIO1_2 = IOMUX_PAD(0x7d4, 0x3cc, 0, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_2__PWM1_PWMO = IOMUX_PAD(0x7d4, 0x3cc, 1, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_3__GPIO1_3 = IOMUX_PAD(0x7d8, 0x3d0, 0, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_5__GPIO1_5 = IOMUX_PAD(0x808, 0x3dc, 0, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_6__GPIO1_6 = IOMUX_PAD(0x80c, 0x3e0, 0, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_7__GPIO1_7 = IOMUX_PAD(0x810, 0x3e4, 0, __NA_, 0, MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_7__SD2_WP = IOMUX_PAD(0x810, 0x3e4, 6, __NA_, 0, MX51_ESDHC_PAD_CTRL),
|
||||
MX51_PAD_GPIO1_8__SD2_CD = IOMUX_PAD(0x814, 0x3e8, 6, __NA_, 0, MX51_ESDHC_PAD_CTRL),
|
||||
MX51_GRP_DDRPKS = IOMUX_PAD(0x820, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DRAM_B4 = IOMUX_PAD(0x82c, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_PKEDDR = IOMUX_PAD(0x838, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DDR_A0 = IOMUX_PAD(0x83c, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DDR_A1 = IOMUX_PAD(0x848, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DDRAPUS = IOMUX_PAD(0x84c, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_HYSDDR0 = IOMUX_PAD(0x85c, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_HYSDDR1 = IOMUX_PAD(0x864, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_HYSDDR2 = IOMUX_PAD(0x86c, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_HYSDDR3 = IOMUX_PAD(0x874, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DRAM_SR_B0 = IOMUX_PAD(0x878, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DDRAPKS = IOMUX_PAD(0x87c, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DRAM_SR_B1 = IOMUX_PAD(0x880, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DDRPUS = IOMUX_PAD(0x884, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DRAM_SR_B2 = IOMUX_PAD(0x88c, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_PKEADDR = IOMUX_PAD(0x890, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DRAM_SR_B4 = IOMUX_PAD(0x89c, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_INMODE1 = IOMUX_PAD(0x8a0, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DRAM_B0 = IOMUX_PAD(0x8a4, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DRAM_B1 = IOMUX_PAD(0x8ac, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DRAM_B2 = IOMUX_PAD(0x8b8, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
MX51_GRP_DDR_SR_A1 = IOMUX_PAD(0x8bc, __NA_, 0, __NA_, 0, NO_PAD_CTRL),
|
||||
};
|
||||
|
||||
#endif /* __IOMUX_MX51_H__ */
|
||||
|
1232
arch/arm/include/asm/arch-mx5/iomux-mx53.h
Normal file
1232
arch/arm/include/asm/arch-mx5/iomux-mx53.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,91 +0,0 @@
|
||||
/*
|
||||
* (C) Copyright 2008-2009 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* 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 __MACH_MX5_IOMUX_H__
|
||||
#define __MACH_MX5_IOMUX_H__
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/mx5x_pins.h>
|
||||
|
||||
typedef unsigned int iomux_pin_name_t;
|
||||
|
||||
/* various IOMUX output functions */
|
||||
typedef enum iomux_config {
|
||||
IOMUX_CONFIG_ALT0, /*!< used as alternate function 0 */
|
||||
IOMUX_CONFIG_ALT1, /*!< used as alternate function 1 */
|
||||
IOMUX_CONFIG_ALT2, /*!< used as alternate function 2 */
|
||||
IOMUX_CONFIG_ALT3, /*!< used as alternate function 3 */
|
||||
IOMUX_CONFIG_ALT4, /*!< used as alternate function 4 */
|
||||
IOMUX_CONFIG_ALT5, /*!< used as alternate function 5 */
|
||||
IOMUX_CONFIG_ALT6, /*!< used as alternate function 6 */
|
||||
IOMUX_CONFIG_ALT7, /*!< used as alternate function 7 */
|
||||
IOMUX_CONFIG_GPIO, /*!< added to help user use GPIO mode */
|
||||
IOMUX_CONFIG_SION = 0x1 << 4, /*!< used as LOOPBACK:MUX SION bit */
|
||||
} iomux_pin_cfg_t;
|
||||
|
||||
/* various IOMUX pad functions */
|
||||
typedef enum iomux_pad_config {
|
||||
PAD_CTL_SRE_SLOW = 0x0 << 0, /* Slow slew rate */
|
||||
PAD_CTL_SRE_FAST = 0x1 << 0, /* Fast slew rate */
|
||||
PAD_CTL_DRV_LOW = 0x0 << 1, /* Low drive strength */
|
||||
PAD_CTL_DRV_MEDIUM = 0x1 << 1, /* Medium drive strength */
|
||||
PAD_CTL_DRV_HIGH = 0x2 << 1, /* High drive strength */
|
||||
PAD_CTL_DRV_MAX = 0x3 << 1, /* Max drive strength */
|
||||
PAD_CTL_ODE_OPENDRAIN_NONE = 0x0 << 3, /* Opendrain disable */
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE = 0x1 << 3,/* Opendrain enable */
|
||||
PAD_CTL_100K_PD = 0x0 << 4, /* 100Kohm pulldown */
|
||||
PAD_CTL_47K_PU = 0x1 << 4, /* 47Kohm pullup */
|
||||
PAD_CTL_100K_PU = 0x2 << 4, /* 100Kohm pullup */
|
||||
PAD_CTL_22K_PU = 0x3 << 4, /* 22Kohm pullup */
|
||||
PAD_CTL_PUE_KEEPER = 0x0 << 6, /* enable pulldown */
|
||||
PAD_CTL_PUE_PULL = 0x1 << 6, /* enable pullup */
|
||||
PAD_CTL_PKE_NONE = 0x0 << 7, /* Disable pullup/pulldown */
|
||||
PAD_CTL_PKE_ENABLE = 0x1 << 7, /* Enable pullup/pulldown */
|
||||
PAD_CTL_HYS_NONE = 0x0 << 8, /* Hysteresis disabled */
|
||||
PAD_CTL_HYS_ENABLE = 0x1 << 8, /* Hysteresis enabled */
|
||||
PAD_CTL_DDR_INPUT_CMOS = 0x0 << 9,/* DDR input CMOS */
|
||||
PAD_CTL_DDR_INPUT_DDR = 0x1 << 9,/* DDR input DDR */
|
||||
PAD_CTL_DRV_VOT_LOW = 0x1 << 13, /* Low voltage mode */
|
||||
PAD_CTL_DRV_VOT_HIGH = 0x0 << 13,/* High voltage mode */
|
||||
} iomux_pad_config_t;
|
||||
|
||||
/* various IOMUX input functions */
|
||||
typedef enum iomux_input_config {
|
||||
INPUT_CTL_PATH0 = 0x0,
|
||||
INPUT_CTL_PATH1,
|
||||
INPUT_CTL_PATH2,
|
||||
INPUT_CTL_PATH3,
|
||||
INPUT_CTL_PATH4,
|
||||
INPUT_CTL_PATH5,
|
||||
INPUT_CTL_PATH6,
|
||||
INPUT_CTL_PATH7,
|
||||
} iomux_input_config_t;
|
||||
|
||||
void mxc_request_iomux(iomux_pin_name_t pin, iomux_pin_cfg_t config);
|
||||
void mxc_free_iomux(iomux_pin_name_t pin, iomux_pin_cfg_t config);
|
||||
void mxc_iomux_set_pad(iomux_pin_name_t pin, u32 config);
|
||||
unsigned int mxc_iomux_get_pad(iomux_pin_name_t pin);
|
||||
void mxc_iomux_set_input(iomux_input_select_t input, u32 config);
|
||||
|
||||
#endif /* __MACH_MX5_IOMUX_H__ */
|
@ -1,879 +0,0 @@
|
||||
/*
|
||||
* (C) Copyright 2008-2009 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* 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 __ASM_ARCH_MX5_MX5X_PINS_H__
|
||||
#define __ASM_ARCH_MX5_MX5X_PINS_H__
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/*
|
||||
* In order to identify pins more effectively, each mux-controlled pin's
|
||||
* enumerated value is constructed in the following way:
|
||||
*
|
||||
* -------------------------------------------------------------------
|
||||
* 31-29 | 28 - 24 | 23 - 21 | 20 - 10| 9 - 0
|
||||
* -------------------------------------------------------------------
|
||||
* IO_P | IO_I | GPIO_I | PAD_I | MUX_I
|
||||
* -------------------------------------------------------------------
|
||||
*
|
||||
* Bit 0 to 9 contains MUX_I used to identify the register
|
||||
* offset (0-based. base is IOMUX_module_base) defined in the Section
|
||||
* "sw_pad_ctl & sw_mux_ctl details" of the IC Spec. The
|
||||
* similar field definitions are used for the pad control register.
|
||||
* The IOMUX controller can be split in two parts. At the begeinning,
|
||||
* there is the register definitions for the multiplexing each pin.
|
||||
* Then there is a set of registers (PAD_I) to configure each pin
|
||||
* (pullup, pulldown, etc).
|
||||
* PAD_I defines the offset of the pad register for each pin.
|
||||
* GPIO_I defines, if available, the number of gpio that can be
|
||||
* connected to that pad
|
||||
* IO_I defines the multiplexer mode required to set the pad in gpio mode
|
||||
* IO_P defines the gpio structure (gpio1..gpio4) the pad belongs
|
||||
*
|
||||
* For example, the MX51_PIN_ETM_D0 is defined in the enumeration:
|
||||
* ( (0x28 - MUX_I_START) << MUX_I)|( (0x250 - PAD_I_START) << PAD_I)
|
||||
* It means the mux control register is at register offset 0x28. The pad control
|
||||
* register offset is: 0x250 and also occupy the least significant bits
|
||||
* within the register.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Starting bit position within each entry of \b iomux_pins to represent the
|
||||
* MUX control register offset
|
||||
*/
|
||||
#define MUX_I 0
|
||||
/*!
|
||||
* Starting bit position within each entry of \b iomux_pins to represent the
|
||||
* PAD control register offset
|
||||
*/
|
||||
#define PAD_I 10
|
||||
/*!
|
||||
* Starting bit position within each entry of \b iomux_pins to represent which
|
||||
* mux mode is for GPIO (0-based)
|
||||
*/
|
||||
#define GPIO_I 21
|
||||
|
||||
#define MUX_IO_P 29
|
||||
#define MUX_IO_I 24
|
||||
#define IOMUX_TO_GPIO(pin) ((((unsigned int)pin >> MUX_IO_P) * \
|
||||
GPIO_NUM_PIN) + ((pin >> MUX_IO_I) &\
|
||||
((1 << (MUX_IO_P - MUX_IO_I)) - 1)))
|
||||
#define IOMUX_TO_IRQ(pin) (MXC_GPIO_INT_BASE + IOMUX_TO_GPIO(pin))
|
||||
|
||||
#define NON_GPIO_PORT 0x7
|
||||
#define PIN_TO_MUX_MASK ((1 << (PAD_I - MUX_I)) - 1)
|
||||
#define PIN_TO_PAD_MASK ((1 << (GPIO_I - PAD_I)) - 1)
|
||||
#define PIN_TO_ALT_GPIO_MASK ((1 << (MUX_IO_I - GPIO_I)) - 1)
|
||||
|
||||
#define NON_MUX_I PIN_TO_MUX_MASK
|
||||
#define NON_PAD_I PIN_TO_PAD_MASK
|
||||
|
||||
#if defined(CONFIG_MX51)
|
||||
#define MUX_I_START 0x001C
|
||||
#define PAD_I_START 0x3F0
|
||||
#define INPUT_CTL_START 0x8C4
|
||||
#define MUX_I_END (PAD_I_START - 4)
|
||||
#elif defined(CONFIG_MX53)
|
||||
#define MUX_I_START 0x0020
|
||||
#define PAD_I_START 0x348
|
||||
#define INPUT_CTL_START 0x730
|
||||
#define MUX_I_END (PAD_I_START - 4)
|
||||
#else
|
||||
#error "CPU_TYPE not defined"
|
||||
#endif
|
||||
|
||||
#define _MXC_BUILD_PIN(gp, gi, ga, mi, pi) \
|
||||
(((gp) << MUX_IO_P) | ((gi) << MUX_IO_I) | \
|
||||
((mi) << MUX_I) | \
|
||||
((pi - PAD_I_START) << PAD_I) | \
|
||||
((ga) << GPIO_I))
|
||||
|
||||
#define _MXC_BUILD_GPIO_PIN(gp, gi, ga, mi, pi) \
|
||||
_MXC_BUILD_PIN(gp, gi, ga, mi, pi)
|
||||
|
||||
#define _MXC_BUILD_NON_GPIO_PIN(mi, pi) \
|
||||
_MXC_BUILD_PIN(NON_GPIO_PORT, 0, 0, mi, pi)
|
||||
|
||||
#define PIN_TO_IOMUX_MUX(pin) ((pin >> MUX_I) & PIN_TO_MUX_MASK)
|
||||
#define PIN_TO_IOMUX_PAD(pin) ((pin >> PAD_I) & PIN_TO_PAD_MASK)
|
||||
#define PIN_TO_ALT_GPIO(pin) ((pin >> GPIO_I) & PIN_TO_ALT_GPIO_MASK)
|
||||
#define PIN_TO_IOMUX_INDEX(pin) (PIN_TO_IOMUX_MUX(pin) >> 2)
|
||||
|
||||
/*
|
||||
* This enumeration is constructed based on the Section
|
||||
* "sw_pad_ctl & sw_mux_ctl details" of the MX51 IC Spec. Each enumerated
|
||||
* value is constructed based on the rules described above.
|
||||
*/
|
||||
enum {
|
||||
MX51_PIN_EIM_DA0 = _MXC_BUILD_NON_GPIO_PIN(0x1C, 0x7A8),
|
||||
MX51_PIN_EIM_DA1 = _MXC_BUILD_NON_GPIO_PIN(0x20, 0x7A8),
|
||||
MX51_PIN_EIM_DA2 = _MXC_BUILD_NON_GPIO_PIN(0x24, 0x7A8),
|
||||
MX51_PIN_EIM_DA3 = _MXC_BUILD_NON_GPIO_PIN(0x28, 0x7A8),
|
||||
MX51_PIN_EIM_DA4 = _MXC_BUILD_NON_GPIO_PIN(0x2C, 0x7AC),
|
||||
MX51_PIN_EIM_DA5 = _MXC_BUILD_NON_GPIO_PIN(0x30, 0x7AC),
|
||||
MX51_PIN_EIM_DA6 = _MXC_BUILD_NON_GPIO_PIN(0x34, 0x7AC),
|
||||
MX51_PIN_EIM_DA7 = _MXC_BUILD_NON_GPIO_PIN(0x38, 0x7AC),
|
||||
MX51_PIN_EIM_DA8 = _MXC_BUILD_NON_GPIO_PIN(0x3C, 0x7B0),
|
||||
MX51_PIN_EIM_DA9 = _MXC_BUILD_NON_GPIO_PIN(0x40, 0x7B0),
|
||||
MX51_PIN_EIM_DA10 = _MXC_BUILD_NON_GPIO_PIN(0x44, 0x7B0),
|
||||
MX51_PIN_EIM_DA11 = _MXC_BUILD_NON_GPIO_PIN(0x48, 0x7B0),
|
||||
MX51_PIN_EIM_DA12 = _MXC_BUILD_NON_GPIO_PIN(0x4C, 0x7BC),
|
||||
MX51_PIN_EIM_DA13 = _MXC_BUILD_NON_GPIO_PIN(0x50, 0x7BC),
|
||||
MX51_PIN_EIM_DA14 = _MXC_BUILD_NON_GPIO_PIN(0x54, 0x7BC),
|
||||
MX51_PIN_EIM_DA15 = _MXC_BUILD_NON_GPIO_PIN(0x58, 0x7BC),
|
||||
MX51_PIN_EIM_D16 = _MXC_BUILD_GPIO_PIN(1, 0, 1, 0x5C, 0x3F0),
|
||||
MX51_PIN_EIM_D17 = _MXC_BUILD_GPIO_PIN(1, 1, 1, 0x60, 0x3F4),
|
||||
MX51_PIN_EIM_D18 = _MXC_BUILD_GPIO_PIN(1, 2, 1, 0x64, 0x3F8),
|
||||
MX51_PIN_EIM_D19 = _MXC_BUILD_GPIO_PIN(1, 3, 1, 0x68, 0x3FC),
|
||||
MX51_PIN_EIM_D20 = _MXC_BUILD_GPIO_PIN(1, 4, 1, 0x6C, 0x400),
|
||||
MX51_PIN_EIM_D21 = _MXC_BUILD_GPIO_PIN(1, 5, 1, 0x70, 0x404),
|
||||
MX51_PIN_EIM_D22 = _MXC_BUILD_GPIO_PIN(1, 6, 1, 0x74, 0x408),
|
||||
MX51_PIN_EIM_D23 = _MXC_BUILD_GPIO_PIN(1, 7, 1, 0x78, 0x40C),
|
||||
MX51_PIN_EIM_D24 = _MXC_BUILD_GPIO_PIN(1, 8, 1, 0x7C, 0x410),
|
||||
MX51_PIN_EIM_D25 = _MXC_BUILD_NON_GPIO_PIN(0x80, 0x414),
|
||||
MX51_PIN_EIM_D26 = _MXC_BUILD_NON_GPIO_PIN(0x84, 0x418),
|
||||
MX51_PIN_EIM_D27 = _MXC_BUILD_GPIO_PIN(1, 9, 1, 0x88, 0x41C),
|
||||
MX51_PIN_EIM_D28 = _MXC_BUILD_NON_GPIO_PIN(0x8C, 0x420),
|
||||
MX51_PIN_EIM_D29 = _MXC_BUILD_NON_GPIO_PIN(0x90, 0x424),
|
||||
MX51_PIN_EIM_D30 = _MXC_BUILD_NON_GPIO_PIN(0x94, 0x428),
|
||||
MX51_PIN_EIM_D31 = _MXC_BUILD_NON_GPIO_PIN(0x98, 0x42C),
|
||||
MX51_PIN_EIM_A16 = _MXC_BUILD_GPIO_PIN(1, 10, 1, 0x9C, 0x430),
|
||||
MX51_PIN_EIM_A17 = _MXC_BUILD_GPIO_PIN(1, 11, 1, 0xA0, 0x434),
|
||||
MX51_PIN_EIM_A18 = _MXC_BUILD_GPIO_PIN(1, 12, 1, 0xA4, 0x438),
|
||||
MX51_PIN_EIM_A19 = _MXC_BUILD_GPIO_PIN(1, 13, 1, 0xA8, 0x43C),
|
||||
MX51_PIN_EIM_A20 = _MXC_BUILD_GPIO_PIN(1, 14, 1, 0xAC, 0x440),
|
||||
MX51_PIN_EIM_A21 = _MXC_BUILD_GPIO_PIN(1, 15, 1, 0xB0, 0x444),
|
||||
MX51_PIN_EIM_A22 = _MXC_BUILD_GPIO_PIN(1, 16, 1, 0xB4, 0x448),
|
||||
MX51_PIN_EIM_A23 = _MXC_BUILD_GPIO_PIN(1, 17, 1, 0xB8, 0x44C),
|
||||
MX51_PIN_EIM_A24 = _MXC_BUILD_GPIO_PIN(1, 18, 1, 0xBC, 0x450),
|
||||
MX51_PIN_EIM_A25 = _MXC_BUILD_GPIO_PIN(1, 19, 1, 0xC0, 0x454),
|
||||
MX51_PIN_EIM_A26 = _MXC_BUILD_GPIO_PIN(1, 20, 1, 0xC4, 0x458),
|
||||
MX51_PIN_EIM_A27 = _MXC_BUILD_GPIO_PIN(1, 21, 1, 0xC8, 0x45C),
|
||||
MX51_PIN_EIM_EB0 = _MXC_BUILD_NON_GPIO_PIN(0xCC, 0x460),
|
||||
MX51_PIN_EIM_EB1 = _MXC_BUILD_NON_GPIO_PIN(0xD0, 0x464),
|
||||
MX51_PIN_EIM_EB2 = _MXC_BUILD_GPIO_PIN(1, 22, 1, 0xD4, 0x468),
|
||||
MX51_PIN_EIM_EB3 = _MXC_BUILD_GPIO_PIN(1, 23, 1, 0xD8, 0x46C),
|
||||
MX51_PIN_EIM_OE = _MXC_BUILD_GPIO_PIN(1, 24, 1, 0xDC, 0x470),
|
||||
MX51_PIN_EIM_CS0 = _MXC_BUILD_GPIO_PIN(1, 25, 1, 0xE0, 0x474),
|
||||
MX51_PIN_EIM_CS1 = _MXC_BUILD_GPIO_PIN(1, 26, 1, 0xE4, 0x478),
|
||||
MX51_PIN_EIM_CS2 = _MXC_BUILD_GPIO_PIN(1, 27, 1, 0xE8, 0x47C),
|
||||
MX51_PIN_EIM_CS3 = _MXC_BUILD_GPIO_PIN(1, 28, 1, 0xEC, 0x480),
|
||||
MX51_PIN_EIM_CS4 = _MXC_BUILD_GPIO_PIN(1, 29, 1, 0xF0, 0x484),
|
||||
MX51_PIN_EIM_CS5 = _MXC_BUILD_GPIO_PIN(1, 30, 1, 0xF4, 0x488),
|
||||
MX51_PIN_EIM_DTACK = _MXC_BUILD_GPIO_PIN(1, 31, 1, 0xF8, 0x48C),
|
||||
MX51_PIN_EIM_LBA = _MXC_BUILD_GPIO_PIN(2, 1, 1, 0xFC, 0x494),
|
||||
MX51_PIN_EIM_CRE = _MXC_BUILD_GPIO_PIN(2, 2, 1, 0x100, 0x4A0),
|
||||
MX51_PIN_DRAM_CS1 = _MXC_BUILD_NON_GPIO_PIN(0x104, 0x4D0),
|
||||
MX51_PIN_NANDF_WE_B = _MXC_BUILD_GPIO_PIN(2, 3, 3, 0x108, 0x4E4),
|
||||
MX51_PIN_NANDF_RE_B = _MXC_BUILD_GPIO_PIN(2, 4, 3, 0x10C, 0x4E8),
|
||||
MX51_PIN_NANDF_ALE = _MXC_BUILD_GPIO_PIN(2, 5, 3, 0x110, 0x4EC),
|
||||
MX51_PIN_NANDF_CLE = _MXC_BUILD_GPIO_PIN(2, 6, 3, 0x114, 0x4F0),
|
||||
MX51_PIN_NANDF_WP_B = _MXC_BUILD_GPIO_PIN(2, 7, 3, 0x118, 0x4F4),
|
||||
MX51_PIN_NANDF_RB0 = _MXC_BUILD_GPIO_PIN(2, 8, 3, 0x11C, 0x4F8),
|
||||
MX51_PIN_NANDF_RB1 = _MXC_BUILD_GPIO_PIN(2, 9, 3, 0x120, 0x4FC),
|
||||
MX51_PIN_NANDF_RB2 = _MXC_BUILD_GPIO_PIN(2, 10, 3, 0x124, 0x500),
|
||||
MX51_PIN_NANDF_RB3 = _MXC_BUILD_GPIO_PIN(2, 11, 3, 0x128, 0x504),
|
||||
MX51_PIN_GPIO_NAND = _MXC_BUILD_GPIO_PIN(2, 12, 3, 0x12C, 0x514),
|
||||
MX51_PIN_NANDF_RB4 = MX51_PIN_GPIO_NAND,
|
||||
MX51_PIN_NANDF_RB5 = _MXC_BUILD_GPIO_PIN(2, 13, 3, 0x130, 0x5D8),
|
||||
MX51_PIN_NANDF_RB6 = _MXC_BUILD_GPIO_PIN(2, 14, 3, 0x134, 0x5DC),
|
||||
MX51_PIN_NANDF_RB7 = _MXC_BUILD_GPIO_PIN(2, 15, 3, 0x138, 0x5E0),
|
||||
MX51_PIN_NANDF_CS0 = _MXC_BUILD_GPIO_PIN(2, 16, 3, 0x130, 0x518),
|
||||
MX51_PIN_NANDF_CS1 = _MXC_BUILD_GPIO_PIN(2, 17, 3, 0x134, 0x51C),
|
||||
MX51_PIN_NANDF_CS2 = _MXC_BUILD_GPIO_PIN(2, 18, 3, 0x138, 0x520),
|
||||
MX51_PIN_NANDF_CS3 = _MXC_BUILD_GPIO_PIN(2, 19, 3, 0x13C, 0x524),
|
||||
MX51_PIN_NANDF_CS4 = _MXC_BUILD_GPIO_PIN(2, 20, 3, 0x140, 0x528),
|
||||
MX51_PIN_NANDF_CS5 = _MXC_BUILD_GPIO_PIN(2, 21, 3, 0x144, 0x52C),
|
||||
MX51_PIN_NANDF_CS6 = _MXC_BUILD_GPIO_PIN(2, 22, 3, 0x148, 0x530),
|
||||
MX51_PIN_NANDF_CS7 = _MXC_BUILD_GPIO_PIN(2, 23, 3, 0x14C, 0x534),
|
||||
MX51_PIN_NANDF_RDY_INT = _MXC_BUILD_GPIO_PIN(2, 24, 3, 0x150, 0x538),
|
||||
MX51_PIN_NANDF_D15 = _MXC_BUILD_GPIO_PIN(2, 25, 3, 0x154, 0x53C),
|
||||
MX51_PIN_NANDF_D14 = _MXC_BUILD_GPIO_PIN(2, 26, 3, 0x158, 0x540),
|
||||
MX51_PIN_NANDF_D13 = _MXC_BUILD_GPIO_PIN(2, 27, 3, 0x15C, 0x544),
|
||||
MX51_PIN_NANDF_D12 = _MXC_BUILD_GPIO_PIN(2, 28, 3, 0x160, 0x548),
|
||||
MX51_PIN_NANDF_D11 = _MXC_BUILD_GPIO_PIN(2, 29, 3, 0x164, 0x54C),
|
||||
MX51_PIN_NANDF_D10 = _MXC_BUILD_GPIO_PIN(2, 30, 3, 0x168, 0x550),
|
||||
MX51_PIN_NANDF_D9 = _MXC_BUILD_GPIO_PIN(2, 31, 3, 0x16C, 0x554),
|
||||
MX51_PIN_NANDF_D8 = _MXC_BUILD_GPIO_PIN(3, 0, 3, 0x170, 0x558),
|
||||
MX51_PIN_NANDF_D7 = _MXC_BUILD_GPIO_PIN(3, 1, 3, 0x174, 0x55C),
|
||||
MX51_PIN_NANDF_D6 = _MXC_BUILD_GPIO_PIN(3, 2, 3, 0x178, 0x560),
|
||||
MX51_PIN_NANDF_D5 = _MXC_BUILD_GPIO_PIN(3, 3, 3, 0x17C, 0x564),
|
||||
MX51_PIN_NANDF_D4 = _MXC_BUILD_GPIO_PIN(3, 4, 3, 0x180, 0x568),
|
||||
MX51_PIN_NANDF_D3 = _MXC_BUILD_GPIO_PIN(3, 5, 3, 0x184, 0x56C),
|
||||
MX51_PIN_NANDF_D2 = _MXC_BUILD_GPIO_PIN(3, 6, 3, 0x188, 0x570),
|
||||
MX51_PIN_NANDF_D1 = _MXC_BUILD_GPIO_PIN(3, 7, 3, 0x18C, 0x574),
|
||||
MX51_PIN_NANDF_D0 = _MXC_BUILD_GPIO_PIN(3, 8, 3, 0x190, 0x578),
|
||||
MX51_PIN_CSI1_D8 = _MXC_BUILD_GPIO_PIN(2, 12, 3, 0x194, 0x57C),
|
||||
MX51_PIN_CSI1_D9 = _MXC_BUILD_GPIO_PIN(2, 13, 3, 0x198, 0x580),
|
||||
MX51_PIN_CSI1_D10 = _MXC_BUILD_NON_GPIO_PIN(0x19C, 0x584),
|
||||
MX51_PIN_CSI1_D11 = _MXC_BUILD_NON_GPIO_PIN(0x1A0, 0x588),
|
||||
MX51_PIN_CSI1_D12 = _MXC_BUILD_NON_GPIO_PIN(0x1A4, 0x58C),
|
||||
MX51_PIN_CSI1_D13 = _MXC_BUILD_NON_GPIO_PIN(0x1A8, 0x590),
|
||||
MX51_PIN_CSI1_D14 = _MXC_BUILD_NON_GPIO_PIN(0x1AC, 0x594),
|
||||
MX51_PIN_CSI1_D15 = _MXC_BUILD_NON_GPIO_PIN(0x1B0, 0x598),
|
||||
MX51_PIN_CSI1_D16 = _MXC_BUILD_NON_GPIO_PIN(0x1B4, 0x59C),
|
||||
MX51_PIN_CSI1_D17 = _MXC_BUILD_NON_GPIO_PIN(0x1B8, 0x5A0),
|
||||
MX51_PIN_CSI1_D18 = _MXC_BUILD_NON_GPIO_PIN(0x1BC, 0x5A4),
|
||||
MX51_PIN_CSI1_D19 = _MXC_BUILD_NON_GPIO_PIN(0x1C0, 0x5A8),
|
||||
MX51_PIN_CSI1_VSYNC = _MXC_BUILD_NON_GPIO_PIN(0x1C4, 0x5AC),
|
||||
MX51_PIN_CSI1_HSYNC = _MXC_BUILD_NON_GPIO_PIN(0x1C8, 0x5B0),
|
||||
MX51_PIN_CSI1_PIXCLK = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x5B4),
|
||||
MX51_PIN_CSI1_MCLK = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x5B8),
|
||||
MX51_PIN_CSI1_PKE0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x860),
|
||||
MX51_PIN_CSI2_D12 = _MXC_BUILD_GPIO_PIN(3, 9, 3, 0x1CC, 0x5BC),
|
||||
MX51_PIN_CSI2_D13 = _MXC_BUILD_GPIO_PIN(3, 10, 3, 0x1D0, 0x5C0),
|
||||
MX51_PIN_CSI2_D14 = _MXC_BUILD_GPIO_PIN(3, 11, 3, 0x1D4, 0x5C4),
|
||||
MX51_PIN_CSI2_D15 = _MXC_BUILD_GPIO_PIN(3, 12, 3, 0x1D8, 0x5C8),
|
||||
MX51_PIN_CSI2_D16 = _MXC_BUILD_GPIO_PIN(3, 11, 3, 0x1DC, 0x5CC),
|
||||
MX51_PIN_CSI2_D17 = _MXC_BUILD_GPIO_PIN(3, 12, 3, 0x1E0, 0x5D0),
|
||||
MX51_PIN_CSI2_D18 = _MXC_BUILD_GPIO_PIN(3, 11, 3, 0x1E4, 0x5D4),
|
||||
MX51_PIN_CSI2_D19 = _MXC_BUILD_GPIO_PIN(3, 12, 3, 0x1E8, 0x5D8),
|
||||
MX51_PIN_CSI2_VSYNC = _MXC_BUILD_GPIO_PIN(3, 13, 3, 0x1EC, 0x5DC),
|
||||
MX51_PIN_CSI2_HSYNC = _MXC_BUILD_GPIO_PIN(3, 14, 3, 0x1F0, 0x5E0),
|
||||
MX51_PIN_CSI2_PIXCLK = _MXC_BUILD_GPIO_PIN(3, 15, 3, 0x1F4, 0x5E4),
|
||||
MX51_PIN_CSI2_PKE0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x81C),
|
||||
MX51_PIN_I2C1_CLK = _MXC_BUILD_GPIO_PIN(3, 16, 3, 0x1F8, 0x5E8),
|
||||
MX51_PIN_I2C1_DAT = _MXC_BUILD_GPIO_PIN(3, 17, 3, 0x1FC, 0x5EC),
|
||||
MX51_PIN_AUD3_BB_TXD = _MXC_BUILD_GPIO_PIN(3, 18, 3, 0x200, 0x5F0),
|
||||
MX51_PIN_AUD3_BB_RXD = _MXC_BUILD_GPIO_PIN(3, 19, 3, 0x204, 0x5F4),
|
||||
MX51_PIN_AUD3_BB_CK = _MXC_BUILD_GPIO_PIN(3, 20, 3, 0x208, 0x5F8),
|
||||
MX51_PIN_AUD3_BB_FS = _MXC_BUILD_GPIO_PIN(3, 21, 3, 0x20C, 0x5FC),
|
||||
MX51_PIN_CSPI1_MOSI = _MXC_BUILD_GPIO_PIN(3, 22, 3, 0x210, 0x600),
|
||||
MX51_PIN_CSPI1_MISO = _MXC_BUILD_GPIO_PIN(3, 23, 3, 0x214, 0x604),
|
||||
MX51_PIN_CSPI1_SS0 = _MXC_BUILD_GPIO_PIN(3, 24, 3, 0x218, 0x608),
|
||||
MX51_PIN_CSPI1_SS1 = _MXC_BUILD_GPIO_PIN(3, 25, 3, 0x21C, 0x60C),
|
||||
MX51_PIN_CSPI1_RDY = _MXC_BUILD_GPIO_PIN(3, 26, 3, 0x220, 0x610),
|
||||
MX51_PIN_CSPI1_SCLK = _MXC_BUILD_GPIO_PIN(3, 27, 3, 0x224, 0x614),
|
||||
MX51_PIN_UART1_RXD = _MXC_BUILD_GPIO_PIN(3, 28, 3, 0x228, 0x618),
|
||||
MX51_PIN_UART1_TXD = _MXC_BUILD_GPIO_PIN(3, 29, 3, 0x22C, 0x61C),
|
||||
MX51_PIN_UART1_RTS = _MXC_BUILD_GPIO_PIN(3, 30, 3, 0x230, 0x620),
|
||||
MX51_PIN_UART1_CTS = _MXC_BUILD_GPIO_PIN(3, 31, 3, 0x234, 0x624),
|
||||
MX51_PIN_UART2_RXD = _MXC_BUILD_GPIO_PIN(0, 20, 3, 0x238, 0x628),
|
||||
MX51_PIN_UART2_TXD = _MXC_BUILD_GPIO_PIN(0, 21, 3, 0x23C, 0x62C),
|
||||
MX51_PIN_UART3_RXD = _MXC_BUILD_GPIO_PIN(0, 22, 3, 0x240, 0x630),
|
||||
MX51_PIN_UART3_TXD = _MXC_BUILD_GPIO_PIN(0, 23, 3, 0x244, 0x634),
|
||||
MX51_PIN_OWIRE_LINE = _MXC_BUILD_GPIO_PIN(0, 24, 3, 0x248, 0x638),
|
||||
MX51_PIN_KEY_ROW0 = _MXC_BUILD_NON_GPIO_PIN(0x24C, 0x63C),
|
||||
MX51_PIN_KEY_ROW1 = _MXC_BUILD_NON_GPIO_PIN(0x250, 0x640),
|
||||
MX51_PIN_KEY_ROW2 = _MXC_BUILD_NON_GPIO_PIN(0x254, 0x644),
|
||||
MX51_PIN_KEY_ROW3 = _MXC_BUILD_NON_GPIO_PIN(0x258, 0x648),
|
||||
MX51_PIN_KEY_COL0 = _MXC_BUILD_NON_GPIO_PIN(0x25C, 0x64C),
|
||||
MX51_PIN_KEY_COL1 = _MXC_BUILD_NON_GPIO_PIN(0x260, 0x650),
|
||||
MX51_PIN_KEY_COL2 = _MXC_BUILD_NON_GPIO_PIN(0x264, 0x654),
|
||||
MX51_PIN_KEY_COL3 = _MXC_BUILD_NON_GPIO_PIN(0x268, 0x658),
|
||||
MX51_PIN_KEY_COL4 = _MXC_BUILD_NON_GPIO_PIN(0x26C, 0x65C),
|
||||
MX51_PIN_KEY_COL5 = _MXC_BUILD_NON_GPIO_PIN(0x270, 0x660),
|
||||
MX51_PIN_USBH1_CLK = _MXC_BUILD_GPIO_PIN(0, 25, 2, 0x278, 0x678),
|
||||
MX51_PIN_USBH1_DIR = _MXC_BUILD_GPIO_PIN(0, 26, 2, 0x27C, 0x67C),
|
||||
MX51_PIN_USBH1_STP = _MXC_BUILD_GPIO_PIN(0, 27, 2, 0x280, 0x680),
|
||||
MX51_PIN_USBH1_NXT = _MXC_BUILD_GPIO_PIN(0, 28, 2, 0x284, 0x684),
|
||||
MX51_PIN_USBH1_DATA0 = _MXC_BUILD_GPIO_PIN(0, 11, 2, 0x288, 0x688),
|
||||
MX51_PIN_USBH1_DATA1 = _MXC_BUILD_GPIO_PIN(0, 12, 2, 0x28C, 0x68C),
|
||||
MX51_PIN_USBH1_DATA2 = _MXC_BUILD_GPIO_PIN(0, 13, 2, 0x290, 0x690),
|
||||
MX51_PIN_USBH1_DATA3 = _MXC_BUILD_GPIO_PIN(0, 14, 2, 0x294, 0x694),
|
||||
MX51_PIN_USBH1_DATA4 = _MXC_BUILD_GPIO_PIN(0, 15, 2, 0x298, 0x698),
|
||||
MX51_PIN_USBH1_DATA5 = _MXC_BUILD_GPIO_PIN(0, 16, 2, 0x29C, 0x69C),
|
||||
MX51_PIN_USBH1_DATA6 = _MXC_BUILD_GPIO_PIN(0, 17, 2, 0x2A0, 0x6A0),
|
||||
MX51_PIN_USBH1_DATA7 = _MXC_BUILD_GPIO_PIN(0, 18, 2, 0x2A4, 0x6A4),
|
||||
MX51_PIN_DI1_PIN11 = _MXC_BUILD_GPIO_PIN(2, 0, 4, 0x2A8, 0x6A8),
|
||||
MX51_PIN_DI1_PIN12 = _MXC_BUILD_GPIO_PIN(2, 1, 4, 0x2AC, 0x6AC),
|
||||
MX51_PIN_DI1_PIN13 = _MXC_BUILD_GPIO_PIN(2, 2, 4, 0x2B0, 0x6B0),
|
||||
MX51_PIN_DI1_D0_CS = _MXC_BUILD_GPIO_PIN(2, 3, 4, 0x2B4, 0x6B4),
|
||||
MX51_PIN_DI1_D1_CS = _MXC_BUILD_GPIO_PIN(2, 4, 4, 0x2B8, 0x6B8),
|
||||
MX51_PIN_DISPB2_SER_DIN = _MXC_BUILD_GPIO_PIN(2, 5, 4, 0x2BC, 0x6BC),
|
||||
MX51_PIN_DISPB2_SER_DIO = _MXC_BUILD_GPIO_PIN(2, 6, 4, 0x2C0, 0x6C0),
|
||||
MX51_PIN_DISPB2_SER_CLK = _MXC_BUILD_GPIO_PIN(2, 7, 4, 0x2C4, 0x6C4),
|
||||
MX51_PIN_DISPB2_SER_RS = _MXC_BUILD_GPIO_PIN(2, 8, 4, 0x2C8, 0x6C8),
|
||||
MX51_PIN_DISP1_DAT0 = _MXC_BUILD_NON_GPIO_PIN(0x2CC, 0x6CC),
|
||||
MX51_PIN_DISP1_DAT1 = _MXC_BUILD_NON_GPIO_PIN(0x2D0, 0x6D0),
|
||||
MX51_PIN_DISP1_DAT2 = _MXC_BUILD_NON_GPIO_PIN(0x2D4, 0x6D4),
|
||||
MX51_PIN_DISP1_DAT3 = _MXC_BUILD_NON_GPIO_PIN(0x2D8, 0x6D8),
|
||||
MX51_PIN_DISP1_DAT4 = _MXC_BUILD_NON_GPIO_PIN(0x2DC, 0x6DC),
|
||||
MX51_PIN_DISP1_DAT5 = _MXC_BUILD_NON_GPIO_PIN(0x2E0, 0x6E0),
|
||||
MX51_PIN_DISP1_DAT6 = _MXC_BUILD_NON_GPIO_PIN(0x2E4, 0x6E4),
|
||||
MX51_PIN_DISP1_DAT7 = _MXC_BUILD_NON_GPIO_PIN(0x2E8, 0x6E8),
|
||||
MX51_PIN_DISP1_DAT8 = _MXC_BUILD_NON_GPIO_PIN(0x2EC, 0x6EC),
|
||||
MX51_PIN_DISP1_DAT9 = _MXC_BUILD_NON_GPIO_PIN(0x2F0, 0x6F0),
|
||||
MX51_PIN_DISP1_DAT10 = _MXC_BUILD_NON_GPIO_PIN(0x2F4, 0x6F4),
|
||||
MX51_PIN_DISP1_DAT11 = _MXC_BUILD_NON_GPIO_PIN(0x2F8, 0x6F8),
|
||||
MX51_PIN_DISP1_DAT12 = _MXC_BUILD_NON_GPIO_PIN(0x2FC, 0x6FC),
|
||||
MX51_PIN_DISP1_DAT13 = _MXC_BUILD_NON_GPIO_PIN(0x300, 0x700),
|
||||
MX51_PIN_DISP1_DAT14 = _MXC_BUILD_NON_GPIO_PIN(0x304, 0x704),
|
||||
MX51_PIN_DISP1_DAT15 = _MXC_BUILD_NON_GPIO_PIN(0x308, 0x708),
|
||||
MX51_PIN_DISP1_DAT16 = _MXC_BUILD_NON_GPIO_PIN(0x30C, 0x70C),
|
||||
MX51_PIN_DISP1_DAT17 = _MXC_BUILD_NON_GPIO_PIN(0x310, 0x710),
|
||||
MX51_PIN_DISP1_DAT18 = _MXC_BUILD_NON_GPIO_PIN(0x314, 0x714),
|
||||
MX51_PIN_DISP1_DAT19 = _MXC_BUILD_NON_GPIO_PIN(0x318, 0x718),
|
||||
MX51_PIN_DISP1_DAT20 = _MXC_BUILD_NON_GPIO_PIN(0x31C, 0x71C),
|
||||
MX51_PIN_DISP1_DAT21 = _MXC_BUILD_NON_GPIO_PIN(0x320, 0x720),
|
||||
MX51_PIN_DISP1_DAT22 = _MXC_BUILD_NON_GPIO_PIN(0x324, 0x724),
|
||||
MX51_PIN_DISP1_DAT23 = _MXC_BUILD_NON_GPIO_PIN(0x328, 0x728),
|
||||
MX51_PIN_DI1_PIN3 = _MXC_BUILD_NON_GPIO_PIN(0x32C, 0x72C),
|
||||
MX51_PIN_DI1_PIN2 = _MXC_BUILD_NON_GPIO_PIN(0x330, 0x734),
|
||||
MX51_PIN_DI_GP1 = _MXC_BUILD_NON_GPIO_PIN(0x334, 0x73C),
|
||||
MX51_PIN_DI_GP2 = _MXC_BUILD_NON_GPIO_PIN(0x338, 0x740),
|
||||
MX51_PIN_DI_GP3 = _MXC_BUILD_NON_GPIO_PIN(0x33C, 0x744),
|
||||
MX51_PIN_DI2_PIN4 = _MXC_BUILD_NON_GPIO_PIN(0x340, 0x748),
|
||||
MX51_PIN_DI2_PIN2 = _MXC_BUILD_NON_GPIO_PIN(0x344, 0x74C),
|
||||
MX51_PIN_DI2_PIN3 = _MXC_BUILD_NON_GPIO_PIN(0x348, 0x750),
|
||||
MX51_PIN_DI2_DISP_CLK = _MXC_BUILD_NON_GPIO_PIN(0x34C, 0x754),
|
||||
MX51_PIN_DI_GP4 = _MXC_BUILD_NON_GPIO_PIN(0x350, 0x758),
|
||||
MX51_PIN_DISP2_DAT0 = _MXC_BUILD_NON_GPIO_PIN(0x354, 0x75C),
|
||||
MX51_PIN_DISP2_DAT1 = _MXC_BUILD_NON_GPIO_PIN(0x358, 0x760),
|
||||
MX51_PIN_DISP2_DAT2 = _MXC_BUILD_NON_GPIO_PIN(0x35C, 0x764),
|
||||
MX51_PIN_DISP2_DAT3 = _MXC_BUILD_NON_GPIO_PIN(0x360, 0x768),
|
||||
MX51_PIN_DISP2_DAT4 = _MXC_BUILD_NON_GPIO_PIN(0x364, 0x76C),
|
||||
MX51_PIN_DISP2_DAT5 = _MXC_BUILD_NON_GPIO_PIN(0x368, 0x770),
|
||||
MX51_PIN_DISP2_DAT6 = _MXC_BUILD_GPIO_PIN(0, 19, 5, 0x36C, 0x774),
|
||||
MX51_PIN_DISP2_DAT7 = _MXC_BUILD_GPIO_PIN(0, 29, 5, 0x370, 0x778),
|
||||
MX51_PIN_DISP2_DAT8 = _MXC_BUILD_GPIO_PIN(0, 30, 5, 0x374, 0x77C),
|
||||
MX51_PIN_DISP2_DAT9 = _MXC_BUILD_GPIO_PIN(0, 31, 5, 0x378, 0x780),
|
||||
MX51_PIN_DISP2_DAT10 = _MXC_BUILD_NON_GPIO_PIN(0x37C, 0x784),
|
||||
MX51_PIN_DISP2_DAT11 = _MXC_BUILD_NON_GPIO_PIN(0x380, 0x788),
|
||||
MX51_PIN_DISP2_DAT12 = _MXC_BUILD_NON_GPIO_PIN(0x384, 0x78C),
|
||||
MX51_PIN_DISP2_DAT13 = _MXC_BUILD_NON_GPIO_PIN(0x388, 0x790),
|
||||
MX51_PIN_DISP2_DAT14 = _MXC_BUILD_NON_GPIO_PIN(0x38C, 0x794),
|
||||
MX51_PIN_DISP2_DAT15 = _MXC_BUILD_NON_GPIO_PIN(0x390, 0x798),
|
||||
MX51_PIN_SD1_CMD = _MXC_BUILD_NON_GPIO_PIN(0x394, 0x79C),
|
||||
MX51_PIN_SD1_CLK = _MXC_BUILD_NON_GPIO_PIN(0x398, 0x7A0),
|
||||
MX51_PIN_SD1_DATA0 = _MXC_BUILD_NON_GPIO_PIN(0x39C, 0x7A4),
|
||||
MX51_PIN_SD1_DATA1 = _MXC_BUILD_NON_GPIO_PIN(0x3A0, 0x7A8),
|
||||
MX51_PIN_SD1_DATA2 = _MXC_BUILD_NON_GPIO_PIN(0x3A4, 0x7AC),
|
||||
MX51_PIN_SD1_DATA3 = _MXC_BUILD_NON_GPIO_PIN(0x3A8, 0x7B0),
|
||||
MX51_PIN_GPIO1_0 = _MXC_BUILD_GPIO_PIN(0, 0, 1, 0x3AC, 0x7B4),
|
||||
MX51_PIN_GPIO1_1 = _MXC_BUILD_GPIO_PIN(0, 1, 1, 0x3B0, 0x7B8),
|
||||
MX51_PIN_SD2_CMD = _MXC_BUILD_NON_GPIO_PIN(0x3B4, 0x7BC),
|
||||
MX51_PIN_SD2_CLK = _MXC_BUILD_NON_GPIO_PIN(0x3B8, 0x7C0),
|
||||
MX51_PIN_SD2_DATA0 = _MXC_BUILD_NON_GPIO_PIN(0x3BC, 0x7C4),
|
||||
MX51_PIN_SD2_DATA1 = _MXC_BUILD_NON_GPIO_PIN(0x3C0, 0x7C8),
|
||||
MX51_PIN_SD2_DATA2 = _MXC_BUILD_NON_GPIO_PIN(0x3C4, 0x7CC),
|
||||
MX51_PIN_SD2_DATA3 = _MXC_BUILD_NON_GPIO_PIN(0x3C8, 0x7D0),
|
||||
MX51_PIN_GPIO1_2 = _MXC_BUILD_GPIO_PIN(0, 2, 0, 0x3CC, 0x7D4),
|
||||
MX51_PIN_GPIO1_3 = _MXC_BUILD_GPIO_PIN(0, 3, 0, 0x3D0, 0x7D8),
|
||||
MX51_PIN_PMIC_INT_REQ = _MXC_BUILD_NON_GPIO_PIN(0x3D4, 0x7FC),
|
||||
MX51_PIN_GPIO1_4 = _MXC_BUILD_GPIO_PIN(0, 4, 0, 0x3D8, 0x804),
|
||||
MX51_PIN_GPIO1_5 = _MXC_BUILD_GPIO_PIN(0, 5, 0, 0x3DC, 0x808),
|
||||
MX51_PIN_GPIO1_6 = _MXC_BUILD_GPIO_PIN(0, 6, 0, 0x3E0, 0x80C),
|
||||
MX51_PIN_GPIO1_7 = _MXC_BUILD_GPIO_PIN(0, 7, 0, 0x3E4, 0x810),
|
||||
MX51_PIN_GPIO1_8 = _MXC_BUILD_GPIO_PIN(0, 8, 0, 0x3E8, 0x814),
|
||||
MX51_PIN_GPIO1_9 = _MXC_BUILD_GPIO_PIN(0, 9, 0, 0x3EC, 0x818),
|
||||
|
||||
/* The following are PADS used for drive strength */
|
||||
|
||||
MX51_PIN_CTL_GRP_DDRPKS = _MXC_BUILD_NON_GPIO_PIN(0, 0x820),
|
||||
MX51_PIN_CTL_GRP_PKEDDR = _MXC_BUILD_NON_GPIO_PIN(0, 0x838),
|
||||
MX51_PIN_CTL_GRP_PKEADDR = _MXC_BUILD_NON_GPIO_PIN(0, 0x890),
|
||||
MX51_PIN_CTL_GRP_DDRAPKS = _MXC_BUILD_NON_GPIO_PIN(0, 0x87C),
|
||||
MX51_PIN_CTL_GRP_DDRAPUS = _MXC_BUILD_NON_GPIO_PIN(0, 0x84C),
|
||||
MX51_PIN_CTL_GRP_DDRPUS = _MXC_BUILD_NON_GPIO_PIN(0, 0x884),
|
||||
MX51_PIN_CTL_GRP_HYSDDR0 = _MXC_BUILD_NON_GPIO_PIN(0, 0x85C),
|
||||
MX51_PIN_CTL_GRP_HYSDDR1 = _MXC_BUILD_NON_GPIO_PIN(0, 0x864),
|
||||
MX51_PIN_CTL_GRP_HYSDDR2 = _MXC_BUILD_NON_GPIO_PIN(0, 0x86C),
|
||||
MX51_PIN_CTL_GRP_HYSDDR3 = _MXC_BUILD_NON_GPIO_PIN(0, 0x874),
|
||||
MX51_PIN_CTL_GRP_DDR_SR_B0 = _MXC_BUILD_NON_GPIO_PIN(0, 0x878),
|
||||
MX51_PIN_CTL_GRP_DDR_SR_B1 = _MXC_BUILD_NON_GPIO_PIN(0, 0x880),
|
||||
MX51_PIN_CTL_GRP_DDR_SR_B2 = _MXC_BUILD_NON_GPIO_PIN(0, 0x88C),
|
||||
MX51_PIN_CTL_GRP_DDR_SR_B4 = _MXC_BUILD_NON_GPIO_PIN(0, 0x89C),
|
||||
MX51_PIN_CTL_GRP_DRAM_B0 = _MXC_BUILD_NON_GPIO_PIN(0, 0x8A4),
|
||||
MX51_PIN_CTL_GRP_DRAM_B1 = _MXC_BUILD_NON_GPIO_PIN(0, 0x8AC),
|
||||
MX51_PIN_CTL_GRP_DRAM_B2 = _MXC_BUILD_NON_GPIO_PIN(0, 0x8B8),
|
||||
MX51_PIN_CTL_GRP_DRAM_B4 = _MXC_BUILD_NON_GPIO_PIN(0, 0x82C),
|
||||
MX51_PIN_CTL_GRP_INMODE1 = _MXC_BUILD_NON_GPIO_PIN(0, 0x8A0),
|
||||
MX51_PIN_CTL_GRP_DDR_SR_A0 = _MXC_BUILD_NON_GPIO_PIN(0, 0x8B0),
|
||||
MX51_PIN_CTL_GRP_EMI_DS5 = _MXC_BUILD_NON_GPIO_PIN(0, 0x8B4),
|
||||
MX51_PIN_CTL_GRP_DDR_SR_A1 = _MXC_BUILD_NON_GPIO_PIN(0, 0x8BC),
|
||||
MX51_PIN_CTL_GRP_DDR_A0 = _MXC_BUILD_NON_GPIO_PIN(0, 0x83C),
|
||||
MX51_PIN_CTL_GRP_DDR_A1 = _MXC_BUILD_NON_GPIO_PIN(0, 0x848),
|
||||
MX51_PIN_CTL_GRP_DISP_PKE0 = _MXC_BUILD_NON_GPIO_PIN(0, 0x868),
|
||||
MX51_PIN_CTL_DRAM_RAS = _MXC_BUILD_NON_GPIO_PIN(0, 0x4A4),
|
||||
MX51_PIN_CTL_DRAM_CAS = _MXC_BUILD_NON_GPIO_PIN(0, 0x4A8),
|
||||
MX51_PIN_CTL_DRAM_SDWE = _MXC_BUILD_NON_GPIO_PIN(0, 0x4Ac),
|
||||
MX51_PIN_CTL_DRAM_SDCKE0 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4B0),
|
||||
MX51_PIN_CTL_DRAM_SDCKE1 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4B4),
|
||||
MX51_PIN_CTL_DRAM_SDCLK = _MXC_BUILD_NON_GPIO_PIN(0, 0x4B8),
|
||||
MX51_PIN_CTL_DRAM_SDQS0 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4BC),
|
||||
MX51_PIN_CTL_DRAM_SDQS1 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4C0),
|
||||
MX51_PIN_CTL_DRAM_SDQS2 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4C4),
|
||||
MX51_PIN_CTL_DRAM_SDQS3 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4C8),
|
||||
MX51_PIN_CTL_DRAM_CS0 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4CC),
|
||||
MX51_PIN_CTL_DRAM_CS1 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4D0),
|
||||
MX51_PIN_CTL_DRAM_DQM0 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4D4),
|
||||
MX51_PIN_CTL_DRAM_DQM1 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4D8),
|
||||
MX51_PIN_CTL_DRAM_DQM2 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4DC),
|
||||
MX51_PIN_CTL_DRAM_DQM3 = _MXC_BUILD_NON_GPIO_PIN(0, 0x4E0),
|
||||
};
|
||||
|
||||
enum {
|
||||
MX53_PIN_GPIO_19 = _MXC_BUILD_GPIO_PIN(3, 5, 1, 0x20, 0x348),
|
||||
MX53_PIN_KEY_COL0 = _MXC_BUILD_GPIO_PIN(3, 6, 1, 0x24, 0x34C),
|
||||
MX53_PIN_KEY_ROW0 = _MXC_BUILD_GPIO_PIN(3, 7, 1, 0x28, 0x350),
|
||||
MX53_PIN_KEY_COL1 = _MXC_BUILD_GPIO_PIN(3, 8, 1, 0x2C, 0x354),
|
||||
MX53_PIN_KEY_ROW1 = _MXC_BUILD_GPIO_PIN(3, 9, 1, 0x30, 0x358),
|
||||
MX53_PIN_KEY_COL2 = _MXC_BUILD_GPIO_PIN(3, 10, 1, 0x34, 0x35C),
|
||||
MX53_PIN_KEY_ROW2 = _MXC_BUILD_GPIO_PIN(3, 11, 1, 0x38, 0x360),
|
||||
MX53_PIN_KEY_COL3 = _MXC_BUILD_GPIO_PIN(3, 12, 1, 0x3C, 0x364),
|
||||
MX53_PIN_KEY_ROW3 = _MXC_BUILD_GPIO_PIN(3, 13, 1, 0x40, 0x368),
|
||||
MX53_PIN_KEY_COL4 = _MXC_BUILD_GPIO_PIN(3, 14, 1, 0x44, 0x36C),
|
||||
MX53_PIN_KEY_ROW4 = _MXC_BUILD_GPIO_PIN(3, 15, 1, 0x48, 0x370),
|
||||
MX53_PIN_NVCC_KEYPAD = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x374),
|
||||
MX53_PIN_DI0_DISP_CLK = _MXC_BUILD_GPIO_PIN(3, 16, 1, 0x4C, 0x378),
|
||||
MX53_PIN_DI0_PIN15 = _MXC_BUILD_GPIO_PIN(3, 17, 1, 0x50, 0x37C),
|
||||
MX53_PIN_DI0_PIN2 = _MXC_BUILD_GPIO_PIN(3, 18, 1, 0x54, 0x380),
|
||||
MX53_PIN_DI0_PIN3 = _MXC_BUILD_GPIO_PIN(3, 19, 1, 0x58, 0x384),
|
||||
MX53_PIN_DI0_PIN4 = _MXC_BUILD_GPIO_PIN(3, 20, 1, 0x5C, 0x388),
|
||||
MX53_PIN_DISP0_DAT0 = _MXC_BUILD_GPIO_PIN(3, 21, 1, 0x60, 0x38C),
|
||||
MX53_PIN_DISP0_DAT1 = _MXC_BUILD_GPIO_PIN(3, 22, 1, 0x64, 0x390),
|
||||
MX53_PIN_DISP0_DAT2 = _MXC_BUILD_GPIO_PIN(3, 23, 1, 0x68, 0x394),
|
||||
MX53_PIN_DISP0_DAT3 = _MXC_BUILD_GPIO_PIN(3, 24, 1, 0x6C, 0x398),
|
||||
MX53_PIN_DISP0_DAT4 = _MXC_BUILD_GPIO_PIN(3, 25, 1, 0x70, 0x39C),
|
||||
MX53_PIN_DISP0_DAT5 = _MXC_BUILD_GPIO_PIN(3, 26, 1, 0x74, 0x3A0),
|
||||
MX53_PIN_DISP0_DAT6 = _MXC_BUILD_GPIO_PIN(3, 27, 1, 0x78, 0x3A4),
|
||||
MX53_PIN_DISP0_DAT7 = _MXC_BUILD_GPIO_PIN(3, 28, 1, 0x7C, 0x3A8),
|
||||
MX53_PIN_DISP0_DAT8 = _MXC_BUILD_GPIO_PIN(3, 29, 1, 0x80, 0x3AC),
|
||||
MX53_PIN_DISP0_DAT9 = _MXC_BUILD_GPIO_PIN(3, 30, 1, 0x84, 0x3B0),
|
||||
MX53_PIN_DISP0_DAT10 = _MXC_BUILD_GPIO_PIN(3, 31, 1, 0x88, 0x3B4),
|
||||
MX53_PIN_DISP0_DAT11 = _MXC_BUILD_GPIO_PIN(4, 5, 1, 0x8C, 0x3B8),
|
||||
MX53_PIN_DISP0_DAT12 = _MXC_BUILD_GPIO_PIN(4, 6, 1, 0x90, 0x3BC),
|
||||
MX53_PIN_DISP0_DAT13 = _MXC_BUILD_GPIO_PIN(4, 7, 1, 0x94, 0x3C0),
|
||||
MX53_PIN_DISP0_DAT14 = _MXC_BUILD_GPIO_PIN(4, 8, 1, 0x98, 0x3C4),
|
||||
MX53_PIN_DISP0_DAT15 = _MXC_BUILD_GPIO_PIN(4, 9, 1, 0x9C, 0x3C8),
|
||||
MX53_PIN_DISP0_DAT16 = _MXC_BUILD_GPIO_PIN(4, 10, 1, 0xA0, 0x3CC),
|
||||
MX53_PIN_DISP0_DAT17 = _MXC_BUILD_GPIO_PIN(4, 11, 1, 0xA4, 0x3D0),
|
||||
MX53_PIN_DISP0_DAT18 = _MXC_BUILD_GPIO_PIN(4, 12, 1, 0xA8, 0x3D4),
|
||||
MX53_PIN_DISP0_DAT19 = _MXC_BUILD_GPIO_PIN(4, 13, 1, 0xAC, 0x3D8),
|
||||
MX53_PIN_DISP0_DAT20 = _MXC_BUILD_GPIO_PIN(4, 14, 1, 0xB0, 0x3DC),
|
||||
MX53_PIN_DISP0_DAT21 = _MXC_BUILD_GPIO_PIN(4, 15, 1, 0xB4, 0x3E0),
|
||||
MX53_PIN_DISP0_DAT22 = _MXC_BUILD_GPIO_PIN(4, 16, 1, 0xB8, 0x3E4),
|
||||
MX53_PIN_DISP0_DAT23 = _MXC_BUILD_GPIO_PIN(4, 17, 1, 0xBC, 0x3E8),
|
||||
MX53_PIN_CSI0_PIXCLK = _MXC_BUILD_GPIO_PIN(4, 18, 1, 0xC0, 0x3EC),
|
||||
MX53_PIN_CSI0_MCLK = _MXC_BUILD_GPIO_PIN(4, 19, 1, 0xC4, 0x3F0),
|
||||
MX53_PIN_CSI0_DATA_EN = _MXC_BUILD_GPIO_PIN(4, 20, 1, 0xC8, 0x3F4),
|
||||
MX53_PIN_CSI0_VSYNC = _MXC_BUILD_GPIO_PIN(4, 21, 1, 0xCC, 0x3F8),
|
||||
MX53_PIN_CSI0_D4 = _MXC_BUILD_GPIO_PIN(4, 22, 1, 0xD0, 0x3FC),
|
||||
MX53_PIN_CSI0_D5 = _MXC_BUILD_GPIO_PIN(4, 23, 1, 0xD4, 0x400),
|
||||
MX53_PIN_CSI0_D6 = _MXC_BUILD_GPIO_PIN(4, 24, 1, 0xD8, 0x404),
|
||||
MX53_PIN_CSI0_D7 = _MXC_BUILD_GPIO_PIN(4, 25, 1, 0xDC, 0x408),
|
||||
MX53_PIN_CSI0_D8 = _MXC_BUILD_GPIO_PIN(4, 26, 1, 0xE0, 0x40C),
|
||||
MX53_PIN_CSI0_D9 = _MXC_BUILD_GPIO_PIN(4, 27, 1, 0xE4, 0x410),
|
||||
MX53_PIN_CSI0_D10 = _MXC_BUILD_GPIO_PIN(4, 28, 1, 0xE8, 0x414),
|
||||
MX53_PIN_CSI0_D11 = _MXC_BUILD_GPIO_PIN(4, 29, 1, 0xEC, 0x418),
|
||||
MX53_PIN_CSI0_D12 = _MXC_BUILD_GPIO_PIN(4, 30, 1, 0xF0, 0x41C),
|
||||
MX53_PIN_CSI0_D13 = _MXC_BUILD_GPIO_PIN(4, 31, 1, 0xF4, 0x420),
|
||||
MX53_PIN_CSI0_D14 = _MXC_BUILD_GPIO_PIN(5, 0, 1, 0xF8, 0x424),
|
||||
MX53_PIN_CSI0_D15 = _MXC_BUILD_GPIO_PIN(5, 1, 1, 0xFC, 0x428),
|
||||
MX53_PIN_CSI0_D16 = _MXC_BUILD_GPIO_PIN(5, 2, 1, 0x100, 0x42C),
|
||||
MX53_PIN_CSI0_D17 = _MXC_BUILD_GPIO_PIN(5, 3, 1, 0x104, 0x430),
|
||||
MX53_PIN_CSI0_D18 = _MXC_BUILD_GPIO_PIN(5, 4, 1, 0x108, 0x434),
|
||||
MX53_PIN_CSI0_D19 = _MXC_BUILD_GPIO_PIN(5, 5, 1, 0x10C, 0x438),
|
||||
MX53_PIN_NVCC_CSI0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x43C),
|
||||
MX53_PIN_JTAG_TMS = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x440),
|
||||
MX53_PIN_JTAG_MOD = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x444),
|
||||
MX53_PIN_JTAG_TRSTB = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x448),
|
||||
MX53_PIN_JTAG_TDI = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x44C),
|
||||
MX53_PIN_JTAG_TCK = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x450),
|
||||
MX53_PIN_JTAG_TDO = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x454),
|
||||
MX53_PIN_EIM_A25 = _MXC_BUILD_GPIO_PIN(4, 2, 1, 0x110, 0x458),
|
||||
MX53_PIN_EIM_EB2 = _MXC_BUILD_GPIO_PIN(1, 30, 1, 0x114, 0x45C),
|
||||
MX53_PIN_EIM_D16 = _MXC_BUILD_GPIO_PIN(2, 16, 1, 0x118, 0x460),
|
||||
MX53_PIN_EIM_D17 = _MXC_BUILD_GPIO_PIN(2, 17, 1, 0x11C, 0x464),
|
||||
MX53_PIN_EIM_D18 = _MXC_BUILD_GPIO_PIN(2, 18, 1, 0x120, 0x468),
|
||||
MX53_PIN_EIM_D19 = _MXC_BUILD_GPIO_PIN(2, 19, 1, 0x124, 0x46C),
|
||||
MX53_PIN_EIM_D20 = _MXC_BUILD_GPIO_PIN(2, 20, 1, 0x128, 0x470),
|
||||
MX53_PIN_EIM_D21 = _MXC_BUILD_GPIO_PIN(2, 21, 1, 0x12C, 0x474),
|
||||
MX53_PIN_EIM_D22 = _MXC_BUILD_GPIO_PIN(2, 22, 1, 0x130, 0x478),
|
||||
MX53_PIN_EIM_D23 = _MXC_BUILD_GPIO_PIN(2, 23, 1, 0x134, 0x47C),
|
||||
MX53_PIN_EIM_EB3 = _MXC_BUILD_GPIO_PIN(1, 31, 1, 0x138, 0x480),
|
||||
MX53_PIN_EIM_D24 = _MXC_BUILD_GPIO_PIN(2, 24, 1, 0x13C, 0x484),
|
||||
MX53_PIN_EIM_D25 = _MXC_BUILD_GPIO_PIN(2, 25, 1, 0x140, 0x488),
|
||||
MX53_PIN_EIM_D26 = _MXC_BUILD_GPIO_PIN(2, 26, 1, 0x144, 0x48C),
|
||||
MX53_PIN_EIM_D27 = _MXC_BUILD_GPIO_PIN(2, 27, 1, 0x148, 0x490),
|
||||
MX53_PIN_EIM_D28 = _MXC_BUILD_GPIO_PIN(2, 28, 1, 0x14C, 0x494),
|
||||
MX53_PIN_EIM_D29 = _MXC_BUILD_GPIO_PIN(2, 29, 1, 0x150, 0x498),
|
||||
MX53_PIN_EIM_D30 = _MXC_BUILD_GPIO_PIN(2, 30, 1, 0x154, 0x49C),
|
||||
MX53_PIN_EIM_D31 = _MXC_BUILD_GPIO_PIN(2, 31, 1, 0x158, 0x4A0),
|
||||
MX53_PIN_NVCC_EIM1 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x4A4),
|
||||
MX53_PIN_EIM_A24 = _MXC_BUILD_GPIO_PIN(4, 4, 1, 0x15C, 0x4A8),
|
||||
MX53_PIN_EIM_A23 = _MXC_BUILD_GPIO_PIN(5, 6, 1, 0x160, 0x4AC),
|
||||
MX53_PIN_EIM_A22 = _MXC_BUILD_GPIO_PIN(1, 16, 1, 0x164, 0x4B0),
|
||||
MX53_PIN_EIM_A21 = _MXC_BUILD_GPIO_PIN(1, 17, 1, 0x168, 0x4B4),
|
||||
MX53_PIN_EIM_A20 = _MXC_BUILD_GPIO_PIN(1, 18, 1, 0x16C, 0x4B8),
|
||||
MX53_PIN_EIM_A19 = _MXC_BUILD_GPIO_PIN(1, 19, 1, 0x170, 0x4BC),
|
||||
MX53_PIN_EIM_A18 = _MXC_BUILD_GPIO_PIN(1, 20, 1, 0x174, 0x4C0),
|
||||
MX53_PIN_EIM_A17 = _MXC_BUILD_GPIO_PIN(1, 21, 1, 0x178, 0x4C4),
|
||||
MX53_PIN_EIM_A16 = _MXC_BUILD_GPIO_PIN(1, 22, 1, 0x17C, 0x4C8),
|
||||
MX53_PIN_EIM_CS0 = _MXC_BUILD_GPIO_PIN(1, 23, 1, 0x180, 0x4CC),
|
||||
MX53_PIN_EIM_CS1 = _MXC_BUILD_GPIO_PIN(1, 24, 1, 0x184, 0x4D0),
|
||||
MX53_PIN_EIM_OE = _MXC_BUILD_GPIO_PIN(1, 25, 1, 0x188, 0x4D4),
|
||||
MX53_PIN_EIM_RW = _MXC_BUILD_GPIO_PIN(1, 26, 1, 0x18C, 0x4D8),
|
||||
MX53_PIN_EIM_LBA = _MXC_BUILD_GPIO_PIN(1, 27, 1, 0x190, 0x4DC),
|
||||
MX53_PIN_NVCC_EIM4 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x4E0),
|
||||
MX53_PIN_EIM_EB0 = _MXC_BUILD_GPIO_PIN(1, 28, 1, 0x194, 0x4E4),
|
||||
MX53_PIN_EIM_EB1 = _MXC_BUILD_GPIO_PIN(1, 29, 1, 0x198, 0x4E8),
|
||||
MX53_PIN_EIM_DA0 = _MXC_BUILD_GPIO_PIN(2, 0, 1, 0x19C, 0x4EC),
|
||||
MX53_PIN_EIM_DA1 = _MXC_BUILD_GPIO_PIN(2, 1, 1, 0x1A0, 0x4F0),
|
||||
MX53_PIN_EIM_DA2 = _MXC_BUILD_GPIO_PIN(2, 2, 1, 0x1A4, 0x4F4),
|
||||
MX53_PIN_EIM_DA3 = _MXC_BUILD_GPIO_PIN(2, 3, 1, 0x1A8, 0x4F8),
|
||||
MX53_PIN_EIM_DA4 = _MXC_BUILD_GPIO_PIN(2, 4, 1, 0x1AC, 0x4FC),
|
||||
MX53_PIN_EIM_DA5 = _MXC_BUILD_GPIO_PIN(2, 5, 1, 0x1B0, 0x500),
|
||||
MX53_PIN_EIM_DA6 = _MXC_BUILD_GPIO_PIN(2, 6, 1, 0x1B4, 0x504),
|
||||
MX53_PIN_EIM_DA7 = _MXC_BUILD_GPIO_PIN(2, 7, 1, 0x1B8, 0x508),
|
||||
MX53_PIN_EIM_DA8 = _MXC_BUILD_GPIO_PIN(2, 8, 1, 0x1BC, 0x50C),
|
||||
MX53_PIN_EIM_DA9 = _MXC_BUILD_GPIO_PIN(2, 9, 1, 0x1C0, 0x510),
|
||||
MX53_PIN_EIM_DA10 = _MXC_BUILD_GPIO_PIN(2, 10, 1, 0x1C4, 0x514),
|
||||
MX53_PIN_EIM_DA11 = _MXC_BUILD_GPIO_PIN(2, 11, 1, 0x1C8, 0x518),
|
||||
MX53_PIN_EIM_DA12 = _MXC_BUILD_GPIO_PIN(2, 12, 1, 0x1CC, 0x51C),
|
||||
MX53_PIN_EIM_DA13 = _MXC_BUILD_GPIO_PIN(2, 13, 1, 0x1D0, 0x520),
|
||||
MX53_PIN_EIM_DA14 = _MXC_BUILD_GPIO_PIN(2, 14, 1, 0x1D4, 0x524),
|
||||
MX53_PIN_EIM_DA15 = _MXC_BUILD_GPIO_PIN(2, 15, 1, 0x1D8, 0x528),
|
||||
MX53_PIN_NANDF_WE_B = _MXC_BUILD_GPIO_PIN(5, 12, 1, 0x1DC, 0x52C),
|
||||
MX53_PIN_NANDF_RE_B = _MXC_BUILD_GPIO_PIN(5, 13, 1, 0x1E0, 0x530),
|
||||
MX53_PIN_EIM_WAIT = _MXC_BUILD_GPIO_PIN(4, 0, 1, 0x1E4, 0x534),
|
||||
MX53_PIN_EIM_BCLK = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x538),
|
||||
MX53_PIN_NVCC_EIM7 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x53C),
|
||||
MX53_PIN_LVDS1_TX3_P = _MXC_BUILD_GPIO_PIN(5, 22, 0, 0x1EC, NON_PAD_I),
|
||||
MX53_PIN_LVDS1_TX2_P = _MXC_BUILD_GPIO_PIN(5, 24, 0, 0x1F0, NON_PAD_I),
|
||||
MX53_PIN_LVDS1_CLK_P = _MXC_BUILD_GPIO_PIN(5, 26, 0, 0x1F4, NON_PAD_I),
|
||||
MX53_PIN_LVDS1_TX1_P = _MXC_BUILD_GPIO_PIN(5, 28, 0, 0x1F8, NON_PAD_I),
|
||||
MX53_PIN_LVDS1_TX0_P = _MXC_BUILD_GPIO_PIN(5, 30, 0, 0x1FC, NON_PAD_I),
|
||||
MX53_PIN_LVDS0_TX3_P = _MXC_BUILD_GPIO_PIN(6, 22, 0, 0x200, NON_PAD_I),
|
||||
MX53_PIN_LVDS0_CLK_P = _MXC_BUILD_GPIO_PIN(6, 24, 0, 0x204, NON_PAD_I),
|
||||
MX53_PIN_LVDS0_TX2_P = _MXC_BUILD_GPIO_PIN(6, 26, 0, 0x208, NON_PAD_I),
|
||||
MX53_PIN_LVDS0_TX1_P = _MXC_BUILD_GPIO_PIN(6, 28, 0, 0x20C, NON_PAD_I),
|
||||
MX53_PIN_LVDS0_TX0_P = _MXC_BUILD_GPIO_PIN(6, 30, 0, 0x210, NON_PAD_I),
|
||||
MX53_PIN_GPIO_10 = _MXC_BUILD_GPIO_PIN(3, 0, 0, 0x214, 0x540),
|
||||
MX53_PIN_GPIO_11 = _MXC_BUILD_GPIO_PIN(3, 1, 0, 0x218, 0x544),
|
||||
MX53_PIN_GPIO_12 = _MXC_BUILD_GPIO_PIN(3, 2, 0, 0x21C, 0x548),
|
||||
MX53_PIN_GPIO_13 = _MXC_BUILD_GPIO_PIN(3, 3, 0, 0x220, 0x54C),
|
||||
MX53_PIN_GPIO_14 = _MXC_BUILD_GPIO_PIN(3, 4, 0, 0x224, 0x550),
|
||||
MX53_PIN_DRAM_DQM3 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x554),
|
||||
MX53_PIN_DRAM_SDQS3 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x558),
|
||||
MX53_PIN_DRAM_SDCKE1 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x55C),
|
||||
MX53_PIN_DRAM_DQM2 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x560),
|
||||
MX53_PIN_DRAM_SDODT1 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x564),
|
||||
MX53_PIN_DRAM_SDQS2 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x568),
|
||||
MX53_PIN_DRAM_RESET = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x56C),
|
||||
MX53_PIN_DRAM_SDCLK1 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x570),
|
||||
MX53_PIN_DRAM_CAS = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x574),
|
||||
MX53_PIN_DRAM_SDCLK0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x578),
|
||||
MX53_PIN_DRAM_SDQS0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x57C),
|
||||
MX53_PIN_DRAM_SDODT0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x580),
|
||||
MX53_PIN_DRAM_DQM0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x584),
|
||||
MX53_PIN_DRAM_RAS = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x588),
|
||||
MX53_PIN_DRAM_SDCKE0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x58C),
|
||||
MX53_PIN_DRAM_SDQS1 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x590),
|
||||
MX53_PIN_DRAM_DQM1 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x594),
|
||||
MX53_PIN_PMIC_ON_REQ = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x598),
|
||||
MX53_PIN_PMIC_STBY_REQ = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x59C),
|
||||
MX53_PIN_NANDF_CLE = _MXC_BUILD_GPIO_PIN(5, 7, 1, 0x228, 0x5A0),
|
||||
MX53_PIN_NANDF_ALE = _MXC_BUILD_GPIO_PIN(5, 8 , 1, 0x22C, 0x5A4),
|
||||
MX53_PIN_NANDF_WP_B = _MXC_BUILD_GPIO_PIN(5, 9, 1, 0x230, 0x5A8),
|
||||
MX53_PIN_NANDF_RB0 = _MXC_BUILD_GPIO_PIN(5, 10, 1, 0x234, 0x5AC),
|
||||
MX53_PIN_NANDF_CS0 = _MXC_BUILD_GPIO_PIN(5, 11, 1, 0x238, 0x5B0),
|
||||
MX53_PIN_NANDF_CS1 = _MXC_BUILD_GPIO_PIN(5, 14, 1, 0x23C, 0x5B4),
|
||||
MX53_PIN_NANDF_CS2 = _MXC_BUILD_GPIO_PIN(5, 15, 1, 0x240, 0x5B8),
|
||||
MX53_PIN_NANDF_CS3 = _MXC_BUILD_GPIO_PIN(5, 16, 1, 0x244, 0x5BC),
|
||||
MX53_PIN_NVCC_NANDF = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x5C0),
|
||||
MX53_PIN_FEC_MDIO = _MXC_BUILD_GPIO_PIN(0, 22, 1, 0x248, 0x5C4),
|
||||
MX53_PIN_FEC_REF_CLK = _MXC_BUILD_GPIO_PIN(0, 23, 1, 0x24C, 0x5C8),
|
||||
MX53_PIN_FEC_RX_ER = _MXC_BUILD_GPIO_PIN(0, 24, 1, 0x250, 0x5CC),
|
||||
MX53_PIN_FEC_CRS_DV = _MXC_BUILD_GPIO_PIN(0, 25, 1, 0x254, 0x5D0),
|
||||
MX53_PIN_FEC_RXD1 = _MXC_BUILD_GPIO_PIN(0, 26, 1, 0x258, 0x5D4),
|
||||
MX53_PIN_FEC_RXD0 = _MXC_BUILD_GPIO_PIN(0, 27, 1, 0x25C, 0x5D8),
|
||||
MX53_PIN_FEC_TX_EN = _MXC_BUILD_GPIO_PIN(0, 28, 1, 0x260, 0x5DC),
|
||||
MX53_PIN_FEC_TXD1 = _MXC_BUILD_GPIO_PIN(0, 29, 1, 0x264, 0x5E0),
|
||||
MX53_PIN_FEC_TXD0 = _MXC_BUILD_GPIO_PIN(0, 30, 1, 0x268, 0x5E4),
|
||||
MX53_PIN_FEC_MDC = _MXC_BUILD_GPIO_PIN(0, 31, 1, 0x26C, 0x5E8),
|
||||
MX53_PIN_NVCC_FEC = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x5EC),
|
||||
MX53_PIN_ATA_DIOW = _MXC_BUILD_GPIO_PIN(5, 17, 1, 0x270, 0x5F0),
|
||||
MX53_PIN_ATA_DMACK = _MXC_BUILD_GPIO_PIN(5, 18, 1, 0x274, 0x5F4),
|
||||
MX53_PIN_ATA_DMARQ = _MXC_BUILD_GPIO_PIN(6, 0, 1, 0x278, 0x5F8),
|
||||
MX53_PIN_ATA_BUFFER_EN = _MXC_BUILD_GPIO_PIN(6, 1, 1, 0x27C, 0x5FC),
|
||||
MX53_PIN_ATA_INTRQ = _MXC_BUILD_GPIO_PIN(6, 2, 1, 0x280, 0x600),
|
||||
MX53_PIN_ATA_DIOR = _MXC_BUILD_GPIO_PIN(6, 3, 1, 0x284, 0x604),
|
||||
MX53_PIN_ATA_RESET_B = _MXC_BUILD_GPIO_PIN(6, 4, 1, 0x288, 0x608),
|
||||
MX53_PIN_ATA_IORDY = _MXC_BUILD_GPIO_PIN(6, 5, 1, 0x28C, 0x60C),
|
||||
MX53_PIN_ATA_DA_0 = _MXC_BUILD_GPIO_PIN(6, 6, 1, 0x290, 0x610),
|
||||
MX53_PIN_ATA_DA_1 = _MXC_BUILD_GPIO_PIN(6, 7, 1, 0x294, 0x614),
|
||||
MX53_PIN_ATA_DA_2 = _MXC_BUILD_GPIO_PIN(6, 8, 1, 0x298, 0x618),
|
||||
MX53_PIN_ATA_CS_0 = _MXC_BUILD_GPIO_PIN(6, 9, 1, 0x29C, 0x61C),
|
||||
MX53_PIN_ATA_CS_1 = _MXC_BUILD_GPIO_PIN(6, 10, 1, 0x2A0, 0x620),
|
||||
MX53_PIN_NVCC_ATA2 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x624),
|
||||
MX53_PIN_ATA_DATA0 = _MXC_BUILD_GPIO_PIN(1, 0, 1, 0x2A4, 0x628),
|
||||
MX53_PIN_ATA_DATA1 = _MXC_BUILD_GPIO_PIN(1, 1, 1, 0x2A8, 0x62C),
|
||||
MX53_PIN_ATA_DATA2 = _MXC_BUILD_GPIO_PIN(1, 2, 1, 0x2AC, 0x630),
|
||||
MX53_PIN_ATA_DATA3 = _MXC_BUILD_GPIO_PIN(1, 3, 1, 0x2B0, 0x634),
|
||||
MX53_PIN_ATA_DATA4 = _MXC_BUILD_GPIO_PIN(1, 4, 1, 0x2B4, 0x638),
|
||||
MX53_PIN_ATA_DATA5 = _MXC_BUILD_GPIO_PIN(1, 5, 1, 0x2B8, 0x63C),
|
||||
MX53_PIN_ATA_DATA6 = _MXC_BUILD_GPIO_PIN(1, 6, 1, 0x2BC, 0x640),
|
||||
MX53_PIN_ATA_DATA7 = _MXC_BUILD_GPIO_PIN(1, 7, 1, 0x2C0, 0x644),
|
||||
MX53_PIN_ATA_DATA8 = _MXC_BUILD_GPIO_PIN(1, 8, 1, 0x2C4, 0x648),
|
||||
MX53_PIN_ATA_DATA9 = _MXC_BUILD_GPIO_PIN(1, 9, 1, 0x2C8, 0x64C),
|
||||
MX53_PIN_ATA_DATA10 = _MXC_BUILD_GPIO_PIN(1, 10, 1, 0x2CC, 0x650),
|
||||
MX53_PIN_ATA_DATA11 = _MXC_BUILD_GPIO_PIN(1, 11, 1, 0x2D0, 0x654),
|
||||
MX53_PIN_ATA_DATA12 = _MXC_BUILD_GPIO_PIN(1, 12, 1, 0x2D4, 0x658),
|
||||
MX53_PIN_ATA_DATA13 = _MXC_BUILD_GPIO_PIN(1, 13, 1, 0x2D8, 0x65C),
|
||||
MX53_PIN_ATA_DATA14 = _MXC_BUILD_GPIO_PIN(1, 14, 1, 0x2DC, 0x660),
|
||||
MX53_PIN_ATA_DATA15 = _MXC_BUILD_GPIO_PIN(1, 15, 1, 0x2E0, 0x664),
|
||||
MX53_PIN_NVCC_ATA0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x668),
|
||||
MX53_PIN_SD1_DATA0 = _MXC_BUILD_GPIO_PIN(0, 16, 1, 0x2E4, 0x66C),
|
||||
MX53_PIN_SD1_DATA1 = _MXC_BUILD_GPIO_PIN(0, 17, 1, 0x2E8, 0x670),
|
||||
MX53_PIN_SD1_CMD = _MXC_BUILD_GPIO_PIN(0, 18, 1, 0x2EC, 0x674),
|
||||
MX53_PIN_SD1_DATA2 = _MXC_BUILD_GPIO_PIN(0, 19, 1, 0x2F0, 0x678),
|
||||
MX53_PIN_SD1_CLK = _MXC_BUILD_GPIO_PIN(0, 20, 1, 0x2F4, 0x67C),
|
||||
MX53_PIN_SD1_DATA3 = _MXC_BUILD_GPIO_PIN(0, 21, 1, 0x2F8, 0x680),
|
||||
MX53_PIN_NVCC_SD1 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x684),
|
||||
MX53_PIN_SD2_CLK = _MXC_BUILD_GPIO_PIN(0, 10, 1, 0x2FC, 0x688),
|
||||
MX53_PIN_SD2_CMD = _MXC_BUILD_GPIO_PIN(0, 11, 1, 0x300, 0x68C),
|
||||
MX53_PIN_SD2_DATA3 = _MXC_BUILD_GPIO_PIN(0, 12, 1, 0x304, 0x690),
|
||||
MX53_PIN_SD2_DATA2 = _MXC_BUILD_GPIO_PIN(0, 13, 1, 0x308, 0x694),
|
||||
MX53_PIN_SD2_DATA1 = _MXC_BUILD_GPIO_PIN(0, 14, 1, 0x30C, 0x698),
|
||||
MX53_PIN_SD2_DATA0 = _MXC_BUILD_GPIO_PIN(0, 15, 1, 0x310, 0x69C),
|
||||
MX53_PIN_NVCC_SD2 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x6A0),
|
||||
MX53_PIN_GPIO_0 = _MXC_BUILD_GPIO_PIN(0, 0, 1, 0x314, 0x6A4),
|
||||
MX53_PIN_GPIO_1 = _MXC_BUILD_GPIO_PIN(0, 1, 1, 0x318, 0x6A8),
|
||||
MX53_PIN_GPIO_9 = _MXC_BUILD_GPIO_PIN(0, 9, 1, 0x31C, 0x6AC),
|
||||
MX53_PIN_GPIO_3 = _MXC_BUILD_GPIO_PIN(0, 3, 1, 0x320, 0x6B0),
|
||||
MX53_PIN_GPIO_6 = _MXC_BUILD_GPIO_PIN(0, 6, 1, 0x324, 0x6B4),
|
||||
MX53_PIN_GPIO_2 = _MXC_BUILD_GPIO_PIN(0, 2, 1, 0x328, 0x6B8),
|
||||
MX53_PIN_GPIO_4 = _MXC_BUILD_GPIO_PIN(0, 4, 1, 0x32C, 0x6BC),
|
||||
MX53_PIN_GPIO_5 = _MXC_BUILD_GPIO_PIN(0, 5, 1, 0x330, 0x6C0),
|
||||
MX53_PIN_GPIO_7 = _MXC_BUILD_GPIO_PIN(0, 7, 1, 0x334, 0x6C4),
|
||||
MX53_PIN_GPIO_8 = _MXC_BUILD_GPIO_PIN(0, 8, 1, 0x338, 0x6C8),
|
||||
MX53_PIN_GPIO_16 = _MXC_BUILD_GPIO_PIN(6, 11, 1, 0x33C, 0x6CC),
|
||||
MX53_PIN_GPIO_17 = _MXC_BUILD_GPIO_PIN(6, 12, 1, 0x340, 0x6D0),
|
||||
MX53_PIN_GPIO_18 = _MXC_BUILD_GPIO_PIN(6, 13, 1, 0x344, 0x6D4),
|
||||
MX53_PIN_NVCC_GPIO = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x6D8),
|
||||
MX53_PIN_POR_B = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x6DC),
|
||||
MX53_PIN_BOOT_MODE1 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x6E0),
|
||||
MX53_PIN_RESET_IN_B = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x6E4),
|
||||
MX53_PIN_BOOT_MODE0 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x6E8),
|
||||
MX53_PIN_TEST_MODE = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x6EC),
|
||||
MX53_PIN_GRP_ADDDS = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x6F0),
|
||||
MX53_PIN_GRP_DDRMODE_CTL = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x6F4),
|
||||
MX53_PIN_GRP_DDRPKE = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x6FC),
|
||||
MX53_PIN_GRP_DDRPK = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x708),
|
||||
MX53_PIN_GRP_TERM_CTL3 = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x70C),
|
||||
MX53_PIN_GRP_DDRHYS = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x710),
|
||||
MX53_PIN_GRP_DDRMODE = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x714),
|
||||
MX53_PIN_GRP_B0DS = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x718),
|
||||
MX53_PIN_GRP_B1DS = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x71C),
|
||||
MX53_PIN_GRP_CTLDS = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x720),
|
||||
MX53_PIN_GRP_DDR_TYPE = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x724),
|
||||
MX53_PIN_GRP_B2DS = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x728),
|
||||
MX53_PIN_GRP_B3DS = _MXC_BUILD_NON_GPIO_PIN(NON_MUX_I, 0x72C),
|
||||
};
|
||||
/* various IOMUX input select register index */
|
||||
typedef enum iomux_input_select {
|
||||
MX51_AUDMUX_P4_INPUT_DA_AMX_SELECT_I = 0,
|
||||
MX51_AUDMUX_P4_INPUT_DB_AMX_SELECT_I,
|
||||
MX51_AUDMUX_P4_INPUT_TXCLK_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P4_INPUT_TXFS_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P5_INPUT_DA_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P5_INPUT_DB_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P5_INPUT_RXCLK_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P5_INPUT_RXFS_AMX_SELECT,
|
||||
MX51_AUDMUX_P5_INPUT_TXCLK_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P5_INPUT_TXFS_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P6_INPUT_DA_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P6_INPUT_DB_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P6_INPUT_RXCLK_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P6_INPUT_RXFS_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P6_INPUT_TXCLK_AMX_SELECT_INPUT,
|
||||
MX51_AUDMUX_P6_INPUT_TXFS_AMX_SELECT_INPUT,
|
||||
MX51_CCM_IPP_DI_CLK_SELECT_INPUT,
|
||||
/* TO2 */
|
||||
MX51_CCM_IPP_DI1_CLK_SELECT_INPUT,
|
||||
MX51_CCM_PLL1_BYPASS_CLK_SELECT_INPUT,
|
||||
MX51_CCM_PLL2_BYPASS_CLK_SELECT_INPUT,
|
||||
MX51_CSPI_IPP_CSPI_CLK_IN_SELECT_INPUT,
|
||||
MX51_CSPI_IPP_IND_MISO_SELECT_INPUT,
|
||||
MX51_CSPI_IPP_IND_MOSI_SELECT_INPUT,
|
||||
MX51_CSPI_IPP_IND_SS_B_1_SELECT_INPUT,
|
||||
MX51_CSPI_IPP_IND_SS_B_2_SELECT_INPUT,
|
||||
MX51_CSPI_IPP_IND_SS_B_3_SELECT_INPUT,
|
||||
MX51_DPLLIP1_L1T_TOG_EN_SELECT_INPUT,
|
||||
/* TO2 */
|
||||
MX51_ECSPI2_IPP_IND_SS_B_1_SELECT_INPUT,
|
||||
MX51_ECSPI2_IPP_IND_SS_B_3_SELECT_INPUT,
|
||||
MX51_EMI_IPP_IND_RDY_INT_SELECT_INPUT,
|
||||
MX51_ESDHC3_IPP_DAT0_IN_SELECT_INPUT,
|
||||
MX51_ESDHC3_IPP_DAT1_IN_SELECT_INPUT,
|
||||
MX51_ESDHC3_IPP_DAT2_IN_SELECT_INPUT,
|
||||
MX51_ESDHC3_IPP_DAT3_IN_SELECT_INPUT,
|
||||
MX51_FEC_FEC_COL_SELECT_INPUT,
|
||||
MX51_FEC_FEC_CRS_SELECT_INPUT,
|
||||
MX51_FEC_FEC_MDI_SELECT_INPUT,
|
||||
MX51_FEC_FEC_RDATA_0_SELECT_INPUT,
|
||||
MX51_FEC_FEC_RDATA_1_SELECT_INPUT,
|
||||
MX51_FEC_FEC_RDATA_2_SELECT_INPUT,
|
||||
MX51_FEC_FEC_RDATA_3_SELECT_INPUT,
|
||||
MX51_FEC_FEC_RX_CLK_SELECT_INPUT,
|
||||
MX51_FEC_FEC_RX_DV_SELECT_INPUT,
|
||||
MX51_FEC_FEC_RX_ER_SELECT_INPUT,
|
||||
MX51_FEC_FEC_TX_CLK_SELECT_INPUT,
|
||||
MX51_GPIO3_IPP_IND_G_IN_1_SELECT_INPUT,
|
||||
MX51_GPIO3_IPP_IND_G_IN_2_SELECT_INPUT,
|
||||
MX51_GPIO3_IPP_IND_G_IN_3_SELECT_INPUT,
|
||||
MX51_GPIO3_IPP_IND_G_IN_4_SELECT_INPUT,
|
||||
MX51_GPIO3_IPP_IND_G_IN_5_SELECT_INPUT,
|
||||
MX51_GPIO3_IPP_IND_G_IN_6_SELECT_INPUT,
|
||||
MX51_GPIO3_IPP_IND_G_IN_7_SELECT_INPUT,
|
||||
MX51_GPIO3_IPP_IND_G_IN_8_SELECT_INPUT,
|
||||
/* TO2 */
|
||||
MX51_GPIO3_IPP_IND_G_IN_12_SELECT_INPUT,
|
||||
MX51_HSC_MIPI_MIX_IPP_IND_SENS1_DATA_EN_SELECT_INPUT,
|
||||
MX51_HSC_MIPI_MIX_IPP_IND_SENS2_DATA_EN_SELECT_INPUT,
|
||||
/* TO2 */
|
||||
MX51_HSC_MIPI_MIX_PAR_VSYNC_SELECT_INPUT,
|
||||
/* TO2 */
|
||||
MX51_HSC_MIPI_MIX_PAR_DI_WAIT_SELECT_INPUT,
|
||||
MX51_HSC_MIPI_MIX_PAR_SISG_TRIG_SELECT_INPUT,
|
||||
MX51_I2C1_IPP_SCL_IN_SELECT_INPUT,
|
||||
MX51_I2C1_IPP_SDA_IN_SELECT_INPUT,
|
||||
MX51_I2C2_IPP_SCL_IN_SELECT_INPUT,
|
||||
MX51_I2C2_IPP_SDA_IN_SELECT_INPUT,
|
||||
MX51_IPU_IPP_DI_0_IND_DISPB_SD_D_SELECT_INPUT,
|
||||
MX51_IPU_IPP_DI_1_IND_DISPB_SD_D_SELECT_INPUT,
|
||||
MX51_KPP_IPP_IND_COL_6_SELECT_INPUT,
|
||||
MX51_KPP_IPP_IND_COL_7_SELECT_INPUT,
|
||||
MX51_KPP_IPP_IND_ROW_4_SELECT_INPUT,
|
||||
MX51_KPP_IPP_IND_ROW_5_SELECT_INPUT,
|
||||
MX51_KPP_IPP_IND_ROW_6_SELECT_INPUT,
|
||||
MX51_KPP_IPP_IND_ROW_7_SELECT_INPUT,
|
||||
MX51_UART1_IPP_UART_RTS_B_SELECT_INPUT,
|
||||
MX51_UART1_IPP_UART_RXD_MUX_SELECT_INPUT,
|
||||
MX51_UART2_IPP_UART_RTS_B_SELECT_INPUT,
|
||||
MX51_UART2_IPP_UART_RXD_MUX_SELECT_INPUT,
|
||||
MX51_UART3_IPP_UART_RTS_B_SELECT_INPUT,
|
||||
MX51_UART3_IPP_UART_RXD_MUX_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_CLK_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_DATA_0_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_DATA_1_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_DATA_2_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_DATA_3_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_DATA_4_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_DATA_5_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_DATA_6_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_DATA_7_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_DIR_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_NXT_SELECT_INPUT,
|
||||
MX51_USBOH3_IPP_IND_UH3_STP_SELECT_INPUT,
|
||||
MX51PUT_NUM_MUX,
|
||||
/* MX53 */
|
||||
MX53_AUDMUX_P4_INPUT_DA_AMX_SELECT_I = 0,
|
||||
MX53_AUDMUX_P4_INPUT_DB_AMX_SELECT_I,
|
||||
MX53_AUDMUX_P4_INPUT_RXCLK_AMX_SELECT_INPUT,
|
||||
MX53_AUDMUX_P4_INPUT_RXFS_AMX_SELECT_INPUT,
|
||||
MX53_AUDMUX_P4_INPUT_TXCLK_AMX_SELECT_INPUT,
|
||||
MX53_AUDMUX_P4_INPUT_TXFS_AMX_SELECT_INPUT,
|
||||
MX53_AUDMUX_P5_INPUT_DA_AMX_SELECT_I,
|
||||
MX53_AUDMUX_P5_INPUT_DB_AMX_SELECT_I,
|
||||
MX53_AUDMUX_P5_INPUT_RXCLK_AMX_SELECT_INPUT,
|
||||
MX53_AUDMUX_P5_INPUT_RXFS_AMX_SELECT_INPUT,
|
||||
MX53_AUDMUX_P5_INPUT_TXCLK_AMX_SELECT_INPUT,
|
||||
MX53_AUDMUX_P5_INPUT_TXFS_AMX_SELECT_INPUT,
|
||||
MX53_CAN1_IPP_IND_CANRX_SELECT_INPUT,
|
||||
MX53_CAN2_IPP_IND_CANRX_SELECT_INPUT,
|
||||
MX53_CCM_IPP_ASRC_EXT_SELECT_INPUT,
|
||||
MX53_CCM_IPP_DI1_CLK_SELECT_INPUT,
|
||||
MX53_CCM_PLL1_BYPASS_CLK_SELECT_INPUT,
|
||||
MX53_CCM_PLL2_BYPASS_CLK_SELECT_INPUT,
|
||||
MX53_CCM_PLL3_BYPASS_CLK_SELECT_INPUT,
|
||||
MX53_CCM_PLL4_BYPASS_CLK_SELECT_INPUT,
|
||||
MX53_CSPI_IPP_CSPI_CLK_IN_SELECT_INPUT,
|
||||
MX53_CSPI_IPP_IND_MISO_SELECT_INPUT,
|
||||
MX53_CSPI_IPP_IND_MOSI_SELECT_INPUT,
|
||||
MX53_CSPI_IPP_IND_SS_B_0_SELECT_INPUT,
|
||||
MX53_CSPI_IPP_IND_SS_B_1_SELECT_INPUT,
|
||||
MX53_CSPI_IPP_IND_SS_B_2_SELECT_INPUT,
|
||||
MX53_CSPI_IPP_IND_SS_B_3_SELECT_INPUT,
|
||||
MX53_ECSPI1_IPP_CSPI_CLK_IN_SELECT_INPUT,
|
||||
MX53_ECSPI1_IPP_IND_MISO_SELECT_INPUT,
|
||||
MX53_ECSPI1_IPP_IND_MOSI_SELECT_INPUT,
|
||||
MX53_ECSPI1_IPP_IND_SS_B_0_SELECT_INPUT,
|
||||
MX53_ECSPI1_IPP_IND_SS_B_1_SELECT_INPUT,
|
||||
MX53_ECSPI1_IPP_IND_SS_B_2_SELECT_INPUT,
|
||||
MX53_ECSPI1_IPP_IND_SS_B_3_SELECT_INPUT,
|
||||
MX53_ECSPI2_IPP_CSPI_CLK_IN_SELECT_INPUT,
|
||||
MX53_ECSPI2_IPP_IND_MISO_SELECT_INPUT,
|
||||
MX53_ECSPI2_IPP_IND_MOSI_SELECT_INPUT,
|
||||
MX53_ECSPI2_IPP_IND_SS_B_0_SELECT_INPUT,
|
||||
MX53_ECSPI2_IPP_IND_SS_B_1_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_FSR_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_FST_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_HCKR_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_HCKT_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_SCKR_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_SCKT_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_SDO0_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_SDO1_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_SDO2_SDI3_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_SDO3_SDI2_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_SDO4_SDI1_SELECT_INPUT,
|
||||
MX53_ESAI1_IPP_IND_SDO5_SDI0_SELECT_INPUT,
|
||||
MX53_ESDHC1_IPP_WP_ON_SELECT_INPUT,
|
||||
MX53_FEC_FEC_COL_SELECT_INPUT,
|
||||
MX53_FEC_FEC_MDI_SELECT_INPUT,
|
||||
MX53_FEC_FEC_RX_CLK_SELECT_INPUT,
|
||||
MX53_FIRI_IPP_IND_RXD_SELECT_INPUT,
|
||||
MX53_GPC_PMIC_RDY_SELECT_INPUT,
|
||||
MX53_I2C1_IPP_SCL_IN_SELECT_INPUT,
|
||||
MX53_I2C1_IPP_SDA_IN_SELECT_INPUT,
|
||||
MX53_I2C2_IPP_SCL_IN_SELECT_INPUT,
|
||||
MX53_I2C2_IPP_SDA_IN_SELECT_INPUT,
|
||||
MX53_I2C3_IPP_SCL_IN_SELECT_INPUT,
|
||||
MX53_I2C3_IPP_SDA_IN_SELECT_INPUT,
|
||||
MX53_IPU_IPP_DI_0_IND_DISPB_SD_D_SELECT_INPUT,
|
||||
MX53_IPU_IPP_DI_1_IND_DISPB_SD_D_SELECT_INPUT,
|
||||
MX53_IPU_IPP_IND_SENS1_DATA_EN_SELECT_INPUT,
|
||||
MX53_IPU_IPP_IND_SENS1_HSYNC_SELECT_INPUT,
|
||||
MX53_IPU_IPP_IND_SENS1_VSYNC_SELECT_INPUT,
|
||||
MX53_KPP_IPP_IND_COL_5_SELECT_INPUT,
|
||||
MX53_KPP_IPP_IND_COL_6_SELECT_INPUT,
|
||||
MX53_KPP_IPP_IND_COL_7_SELECT_INPUT,
|
||||
MX53_KPP_IPP_IND_ROW_5_SELECT_INPUT,
|
||||
MX53_KPP_IPP_IND_ROW_6_SELECT_INPUT,
|
||||
MX53_KPP_IPP_IND_ROW_7_SELECT_INPUT,
|
||||
MX53_MLB_MLBCLK_IN_SELECT_INPUT,
|
||||
MX53_MLB_MLBDAT_IN_SELECT_INPUT,
|
||||
MX53_MLB_MLBSIG_IN_SELECT_INPUT,
|
||||
MX53_OWIRE_BATTERY_LINE_IN_SELECT_INPUT,
|
||||
MX53_SDMA_EVENTS_14_SELECT_INPUT,
|
||||
MX53_SDMA_EVENTS_15_SELECT_INPUT,
|
||||
MX53_SPDIF_SPDIF_IN1_SELECT_INPUT,
|
||||
MX53_UART1_IPP_UART_RTS_B_SELECT_INPUT,
|
||||
MX53_UART1_IPP_UART_RXD_MUX_SELECT_INPUT,
|
||||
MX53_UART2_IPP_UART_RTS_B_SELECT_INPUT,
|
||||
MX53_UART2_IPP_UART_RXD_MUX_SELECT_INPUT,
|
||||
MX53_UART3_IPP_UART_RTS_B_SELECT_INPUT,
|
||||
MX53_UART3_IPP_UART_RXD_MUX_SELECT_INPUT,
|
||||
MX53_UART4_IPP_UART_RTS_B_SELECT_INPUT,
|
||||
MX53_UART4_IPP_UART_RXD_MUX_SELECT_INPUT,
|
||||
MX53_UART5_IPP_UART_RTS_B_SELECT_INPUT,
|
||||
MX53_UART5_IPP_UART_RXD_MUX_SELECT_INPUT,
|
||||
MX53_USBOH3_IPP_IND_OTG_OC_SELECT_INPUT,
|
||||
MX53_USBOH3_IPP_IND_UH1_OC_SELECT_INPUT,
|
||||
MX53_USBOH3_IPP_IND_UH2_OC_SELECT_INPUT,
|
||||
} iomux_input_select_t;
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* __ASM_ARCH_MX5_MX5X_PINS_H__ */
|
19
arch/arm/include/asm/arch-mx5/spl.h
Normal file
19
arch/arm/include/asm/arch-mx5/spl.h
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Marek Vasut <marex@denx.de>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_SPL_H__
|
||||
#define __ASM_ARCH_SPL_H__
|
||||
|
||||
#define BOOT_DEVICE_NONE 0
|
||||
#define BOOT_DEVICE_NAND 1
|
||||
|
||||
#endif /* __ASM_ARCH_SPL_H__ */
|
@ -61,6 +61,7 @@ enum mxc_clock {
|
||||
u32 imx_get_uartclk(void);
|
||||
u32 imx_get_fecclk(void);
|
||||
unsigned int mxc_get_clock(enum mxc_clock clk);
|
||||
void enable_ocotp_clk(unsigned char enable);
|
||||
void enable_usboh3_clk(unsigned char enable);
|
||||
int enable_sata_clock(void);
|
||||
int enable_i2c_clk(unsigned char enable, unsigned i2c_num);
|
||||
|
@ -20,6 +20,7 @@
|
||||
#ifndef __ARCH_ARM_MACH_MX6_CCM_REGS_H__
|
||||
#define __ARCH_ARM_MACH_MX6_CCM_REGS_H__
|
||||
|
||||
#define CCM_CCOSR 0x020c4060
|
||||
#define CCM_CCGR0 0x020C4068
|
||||
#define CCM_CCGR1 0x020C406c
|
||||
#define CCM_CCGR2 0x020C4070
|
||||
@ -244,7 +245,12 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CSCDR1_USBOH3_CLK_PRED_MASK (0x7 << 8)
|
||||
#define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_OFFSET 6
|
||||
#define MXC_CCM_CSCDR1_USBOH3_CLK_PODF_MASK (0x3 << 6)
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define MXC_CCM_CSCDR1_UART_CLK_PODF_MASK 0x1F
|
||||
#define MXC_CCM_CSCDR1_UART_CLK_SEL (1 << 6)
|
||||
#else
|
||||
#define MXC_CCM_CSCDR1_UART_CLK_PODF_MASK 0x3F
|
||||
#endif
|
||||
#define MXC_CCM_CSCDR1_UART_CLK_PODF_OFFSET 0
|
||||
|
||||
/* Define the bits in register CS1CDR */
|
||||
@ -262,10 +268,13 @@ struct mxc_ccm_reg {
|
||||
/* Define the bits in register CS2CDR */
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_PODF_MASK (0x3F << 21)
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_PODF_OFFSET 21
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_PODF(v) (((v) & 0x3f) << 21)
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_PRED_MASK (0x7 << 18)
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_PRED_OFFSET 18
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_PRED(v) (((v) & 0x7) << 18)
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_SEL_MASK (0x3 << 16)
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_SEL_OFFSET 16
|
||||
#define MXC_CCM_CS2CDR_ENFC_CLK_SEL(v) (((v) & 0x3) << 16)
|
||||
#define MXC_CCM_CS2CDR_LDB_DI1_CLK_SEL_MASK (0x7 << 12)
|
||||
#define MXC_CCM_CS2CDR_LDB_DI1_CLK_SEL_OFFSET 12
|
||||
#define MXC_CCM_CS2CDR_LDB_DI0_CLK_SEL_MASK (0x7 << 9)
|
||||
@ -412,183 +421,183 @@ struct mxc_ccm_reg {
|
||||
#define MXC_CCM_CCGR_CG_MASK 3
|
||||
|
||||
#define MXC_CCM_CCGR0_AIPS_TZ1_OFFSET 0
|
||||
#define MXC_CCM_CCGR0_AIPS_TZ1_MASK (3<<MXC_CCM_CCGR0_AIPS_TZ1_OFFSET)
|
||||
#define MXC_CCM_CCGR0_AIPS_TZ1_MASK (3 << MXC_CCM_CCGR0_AIPS_TZ1_OFFSET)
|
||||
#define MXC_CCM_CCGR0_AIPS_TZ2_OFFSET 2
|
||||
#define MXC_CCM_CCGR0_AIPS_TZ2_MASK (3<<MXC_CCM_CCGR0_AIPS_TZ2_OFFSET)
|
||||
#define MXC_CCM_CCGR0_APBHDMA HCLK_OFFSET 4
|
||||
#define MXC_CCM_CCGR0_AMASK (3<<MXC_CCM_CCGR0_APBHDMA)
|
||||
#define MXC_CCM_CCGR0_AIPS_TZ2_MASK (3 << MXC_CCM_CCGR0_AIPS_TZ2_OFFSET)
|
||||
#define MXC_CCM_CCGR0_APBHDMA_OFFSET 4
|
||||
#define MXC_CCM_CCGR0_APBHDMA_MASK (3 << MXC_CCM_CCGR0_APBHDMA_OFFSET)
|
||||
#define MXC_CCM_CCGR0_ASRC_OFFSET 6
|
||||
#define MXC_CCM_CCGR0_ASRC_MASK (3<<MXC_CCM_CCGR0_ASRC_OFFSET)
|
||||
#define MXC_CCM_CCGR0_ASRC_MASK (3 << MXC_CCM_CCGR0_ASRC_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAAM_SECURE_MEM_OFFSET 8
|
||||
#define MXC_CCM_CCGR0_CAAM_SECURE_MEM_MASK (3<<MXC_CCM_CCGR0_CAAM_SECURE_MEM_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAAM_SECURE_MEM_MASK (3 << MXC_CCM_CCGR0_CAAM_SECURE_MEM_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAAM_WRAPPER_ACLK_OFFSET 10
|
||||
#define MXC_CCM_CCGR0_CAAM_WRAPPER_ACLK_MASK (3<<MXC_CCM_CCGR0_CAAM_WRAPPER_ACLK_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAAM_WRAPPER_ACLK_MASK (3 << MXC_CCM_CCGR0_CAAM_WRAPPER_ACLK_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAAM_WRAPPER_IPG_OFFSET 12
|
||||
#define MXC_CCM_CCGR0_CAAM_WRAPPER_IPG_MASK (3<<MXC_CCM_CCGR0_CAAM_WRAPPER_IPG_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAAM_WRAPPER_IPG_MASK (3 << MXC_CCM_CCGR0_CAAM_WRAPPER_IPG_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAN1_OFFSET 14
|
||||
#define MXC_CCM_CCGR0_CAN1_MASK (3<<MXC_CCM_CCGR0_CAN1_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAN1_MASK (3 << MXC_CCM_CCGR0_CAN1_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAN1_SERIAL_OFFSET 16
|
||||
#define MXC_CCM_CCGR0_CAN1_SERIAL_MASK (3<<MXC_CCM_CCGR0_CAN1_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAN1_SERIAL_MASK (3 << MXC_CCM_CCGR0_CAN1_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAN2_OFFSET 18
|
||||
#define MXC_CCM_CCGR0_CAN2_MASK (3<<MXC_CCM_CCGR0_CAN2_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAN2_MASK (3 << MXC_CCM_CCGR0_CAN2_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAN2_SERIAL_OFFSET 20
|
||||
#define MXC_CCM_CCGR0_CAN2_SERIAL_MASK (3<<MXC_CCM_CCGR0_CAN2_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CAN2_SERIAL_MASK (3 << MXC_CCM_CCGR0_CAN2_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CHEETAH_DBG_CLK_OFFSET 22
|
||||
#define MXC_CCM_CCGR0_CHEETAH_DBG_CLK_MASK (3<<MXC_CCM_CCGR0_CHEETAH_DBG_CLK_OFFSET)
|
||||
#define MXC_CCM_CCGR0_CHEETAH_DBG_CLK_MASK (3 << MXC_CCM_CCGR0_CHEETAH_DBG_CLK_OFFSET)
|
||||
#define MXC_CCM_CCGR0_DCIC1_OFFSET 24
|
||||
#define MXC_CCM_CCGR0_DCIC1_MASK (3<<MXC_CCM_CCGR0_DCIC1_OFFSET)
|
||||
#define MXC_CCM_CCGR0_DCIC1_MASK (3 << MXC_CCM_CCGR0_DCIC1_OFFSET)
|
||||
#define MXC_CCM_CCGR0_DCIC2_OFFSET 26
|
||||
#define MXC_CCM_CCGR0_DCIC2_MASK (3<<MXC_CCM_CCGR0_DCIC2_OFFSET)
|
||||
#define MXC_CCM_CCGR0_DCIC2_MASK (3 << MXC_CCM_CCGR0_DCIC2_OFFSET)
|
||||
#define MXC_CCM_CCGR0_DTCP_OFFSET 28
|
||||
#define MXC_CCM_CCGR0_DTCP_MASK (3<<MXC_CCM_CCGR0_DTCP_OFFSET)
|
||||
#define MXC_CCM_CCGR0_DTCP_MASK (3 << MXC_CCM_CCGR0_DTCP_OFFSET)
|
||||
|
||||
#define MXC_CCM_CCGR1_ECSPI1S_OFFSET 0
|
||||
#define MXC_CCM_CCGR1_ECSPI1S_MASK (3<<MXC_CCM_CCGR1_ECSPI1S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ECSPI1S_MASK (3 << MXC_CCM_CCGR1_ECSPI1S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ECSPI2S_OFFSET 2
|
||||
#define MXC_CCM_CCGR1_ECSPI2S_MASK (3<<MXC_CCM_CCGR1_ECSPI2S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ECSPI2S_MASK (3 << MXC_CCM_CCGR1_ECSPI2S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ECSPI3S_OFFSET 4
|
||||
#define MXC_CCM_CCGR1_ECSPI3S_MASK (3<<MXC_CCM_CCGR1_ECSPI3S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ECSPI3S_MASK (3 << MXC_CCM_CCGR1_ECSPI3S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ECSPI4S_OFFSET 6
|
||||
#define MXC_CCM_CCGR1_ECSPI4S_MASK (3<<MXC_CCM_CCGR1_ECSPI4S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ECSPI4S_MASK (3 << MXC_CCM_CCGR1_ECSPI4S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ECSPI5S_OFFSET 8
|
||||
#define MXC_CCM_CCGR1_ECSPI5S_MASK (3<<MXC_CCM_CCGR1_ECSPI5S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ECSPI5S_MASK (3 << MXC_CCM_CCGR1_ECSPI5S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ENET_CLK_ENABLE_OFFSET 10
|
||||
#define MXC_CCM_CCGR1_ENET_CLK_ENABLE_MASK (3<<MXC_CCM_CCGR1_ENET_CLK_ENABLE_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ENET_CLK_ENABLE_MASK (3 << MXC_CCM_CCGR1_ENET_CLK_ENABLE_OFFSET)
|
||||
#define MXC_CCM_CCGR1_EPIT1S_OFFSET 12
|
||||
#define MXC_CCM_CCGR1_EPIT1S_MASK (3<<MXC_CCM_CCGR1_EPIT1S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_EPIT1S_MASK (3 << MXC_CCM_CCGR1_EPIT1S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_EPIT2S_OFFSET 14
|
||||
#define MXC_CCM_CCGR1_EPIT2S_MASK (3<<MXC_CCM_CCGR1_EPIT2S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_EPIT2S_MASK (3 << MXC_CCM_CCGR1_EPIT2S_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ESAIS_OFFSET 16
|
||||
#define MXC_CCM_CCGR1_ESAIS_MASK (3<<MXC_CCM_CCGR1_ESAIS_OFFSET)
|
||||
#define MXC_CCM_CCGR1_ESAIS_MASK (3 << MXC_CCM_CCGR1_ESAIS_OFFSET)
|
||||
#define MXC_CCM_CCGR1_GPT_BUS_OFFSET 20
|
||||
#define MXC_CCM_CCGR1_GPT_BUS_MASK (3<<MXC_CCM_CCGR1_GPT_BUS_OFFSET)
|
||||
#define MXC_CCM_CCGR1_GPT_BUS_MASK (3 << MXC_CCM_CCGR1_GPT_BUS_OFFSET)
|
||||
#define MXC_CCM_CCGR1_GPT_SERIAL_OFFSET 22
|
||||
#define MXC_CCM_CCGR1_GPT_SERIAL_MASK (3<<MXC_CCM_CCGR1_GPT_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR1_GPT_SERIAL_MASK (3 << MXC_CCM_CCGR1_GPT_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR1_GPU2D_OFFSET 24
|
||||
#define MXC_CCM_CCGR1_GPU2D_MASK (3<<MXC_CCM_CCGR1_GPU2D_OFFSET)
|
||||
#define MXC_CCM_CCGR1_GPU2D_MASK (3 << MXC_CCM_CCGR1_GPU2D_OFFSET)
|
||||
#define MXC_CCM_CCGR1_GPU3D_OFFSET 26
|
||||
#define MXC_CCM_CCGR1_GPU3D_MASK (3<<MXC_CCM_CCGR1_GPU3D_OFFSET)
|
||||
#define MXC_CCM_CCGR1_GPU3D_MASK (3 << MXC_CCM_CCGR1_GPU3D_OFFSET)
|
||||
|
||||
#define MXC_CCM_CCGR2_HDMI_TX_IAHBCLK_OFFSET 0
|
||||
#define MXC_CCM_CCGR2_HDMI_TX_IAHBCLK_MASK (3<<MXC_CCM_CCGR2_HDMI_TX_IAHBCLK_OFFSET)
|
||||
#define MXC_CCM_CCGR2_HDMI_TX_IAHBCLK_MASK (3 << MXC_CCM_CCGR2_HDMI_TX_IAHBCLK_OFFSET)
|
||||
#define MXC_CCM_CCGR2_HDMI_TX_ISFRCLK_OFFSET 4
|
||||
#define MXC_CCM_CCGR2_HDMI_TX_ISFRCLK_MASK (3<<MXC_CCM_CCGR2_HDMI_TX_ISFRCLK_OFFSET)
|
||||
#define MXC_CCM_CCGR2_HDMI_TX_ISFRCLK_MASK (3 << MXC_CCM_CCGR2_HDMI_TX_ISFRCLK_OFFSET)
|
||||
#define MXC_CCM_CCGR2_I2C1_SERIAL_OFFSET 6
|
||||
#define MXC_CCM_CCGR2_I2C1_SERIAL_MASK (3<<MXC_CCM_CCGR2_I2C1_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR2_I2C1_SERIAL_MASK (3 << MXC_CCM_CCGR2_I2C1_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR2_I2C2_SERIAL_OFFSET 8
|
||||
#define MXC_CCM_CCGR2_I2C2_SERIAL_MASK (3<<MXC_CCM_CCGR2_I2C2_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR2_I2C2_SERIAL_MASK (3 << MXC_CCM_CCGR2_I2C2_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR2_I2C3_SERIAL_OFFSET 10
|
||||
#define MXC_CCM_CCGR2_I2C3_SERIAL_MASK (3<<MXC_CCM_CCGR2_I2C3_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR2_I2C3_SERIAL_MASK (3 << MXC_CCM_CCGR2_I2C3_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR2_OCOTP_CTRL_OFFSET 12
|
||||
#define MXC_CCM_CCGR2_OCOTP_CTRL_MASK (3<<MXC_CCM_CCGR2_OCOTP_CTRL_OFFSET)
|
||||
#define MXC_CCM_CCGR2_OCOTP_CTRL_MASK (3 << MXC_CCM_CCGR2_OCOTP_CTRL_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IOMUX_IPT_CLK_IO_OFFSET 14
|
||||
#define MXC_CCM_CCGR2_IOMUX_IPT_CLK_IO_MASK (3<<MXC_CCM_CCGR2_IOMUX_IPT_CLK_IO_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IOMUX_IPT_CLK_IO_MASK (3 << MXC_CCM_CCGR2_IOMUX_IPT_CLK_IO_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPMUX1_OFFSET 16
|
||||
#define MXC_CCM_CCGR2_IPMUX1_MASK (3<<MXC_CCM_CCGR2_IPMUX1_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPMUX1_MASK (3 << MXC_CCM_CCGR2_IPMUX1_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPMUX2_OFFSET 18
|
||||
#define MXC_CCM_CCGR2_IPMUX2_MASK (3<<MXC_CCM_CCGR2_IPMUX2_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPMUX2_MASK (3 << MXC_CCM_CCGR2_IPMUX2_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPMUX3_OFFSET 20
|
||||
#define MXC_CCM_CCGR2_IPMUX3_MASK (3<<MXC_CCM_CCGR2_IPMUX3_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPMUX3_MASK (3 << MXC_CCM_CCGR2_IPMUX3_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC1_IPGS_OFFSET 22
|
||||
#define MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC1_IPGS_MASK (3<<MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC1_IPGS_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC1_IPGS_MASK (3 << MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC1_IPGS_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC2_IPG_OFFSET 24
|
||||
#define MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC2_IPG_MASK (3<<MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC2_IPG_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC2_IPG_MASK (3 << MXC_CCM_CCGR2_IPSYNC_IP2APB_TZASC2_IPG_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPSYNC_VDOA_IPG_MASTER_CLK_OFFSET 26
|
||||
#define MXC_CCM_CCGR2_IPSYNC_VDOA_IPG_MASTER_CLK_MASK (3<<MXC_CCM_CCGR2_IPSYNC_VDOA_IPG_MASTER_CLK_OFFSET)
|
||||
#define MXC_CCM_CCGR2_IPSYNC_VDOA_IPG_MASTER_CLK_MASK (3 << MXC_CCM_CCGR2_IPSYNC_VDOA_IPG_MASTER_CLK_OFFSET)
|
||||
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_OFFSET 0
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_MASK (3<<MXC_CCM_CCGR3_IPU1_IPU_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_MASK (3 << MXC_CCM_CCGR3_IPU1_IPU_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_DI0_OFFSET 2
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_DI0_MASK (3<<MXC_CCM_CCGR3_IPU1_IPU_DI0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_DI0_MASK (3 << MXC_CCM_CCGR3_IPU1_IPU_DI0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_DI1_OFFSET 4
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_DI1_MASK (3<<MXC_CCM_CCGR3_IPU1_IPU_DI1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU1_IPU_DI1_MASK (3 << MXC_CCM_CCGR3_IPU1_IPU_DI1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_OFFSET 6
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_MASK (3<<MXC_CCM_CCGR3_IPU2_IPU_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_MASK (3 << MXC_CCM_CCGR3_IPU2_IPU_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_DI0_OFFSET 8
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_DI0_MASK (3<<MXC_CCM_CCGR3_IPU2_IPU_DI0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_DI0_MASK (3 << MXC_CCM_CCGR3_IPU2_IPU_DI0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_DI1_OFFSET 10
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_DI1_MASK (3<<MXC_CCM_CCGR3_IPU2_IPU_DI1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_IPU2_IPU_DI1_MASK (3 << MXC_CCM_CCGR3_IPU2_IPU_DI1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_LDB_DI0_OFFSET 12
|
||||
#define MXC_CCM_CCGR3_LDB_DI0_MASK (3<<MXC_CCM_CCGR3_LDB_DI0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_LDB_DI0_MASK (3 << MXC_CCM_CCGR3_LDB_DI0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_LDB_DI1_OFFSET 14
|
||||
#define MXC_CCM_CCGR3_LDB_DI1_MASK (3<<MXC_CCM_CCGR3_LDB_DI1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_LDB_DI1_MASK (3 << MXC_CCM_CCGR3_LDB_DI1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MIPI_CORE_CFG_OFFSET 16
|
||||
#define MXC_CCM_CCGR3_MIPI_CORE_CFG_MASK (3<<MXC_CCM_CCGR3_MIPI_CORE_CFG_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MIPI_CORE_CFG_MASK (3 << MXC_CCM_CCGR3_MIPI_CORE_CFG_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MLB_OFFSET 18
|
||||
#define MXC_CCM_CCGR3_MLB_MASK (3<<MXC_CCM_CCGR3_MLB_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MLB_MASK (3 << MXC_CCM_CCGR3_MLB_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P0_OFFSET 20
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P0_MASK (3<<MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P0_MASK (3 << MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P1_OFFSET 22
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P1_MASK (3<<MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P1_MASK (3 << MXC_CCM_CCGR3_MMDC_CORE_ACLK_FAST_CORE_P1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P0_OFFSET 24
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P0_MASK (3<<MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P0_MASK (3 << MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P0_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P1_OFFSET 26
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P1_MASK (3<<MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P1_MASK (3 << MXC_CCM_CCGR3_MMDC_CORE_IPG_CLK_P1_OFFSET)
|
||||
#define MXC_CCM_CCGR3_OCRAM_OFFSET 28
|
||||
#define MXC_CCM_CCGR3_OCRAM_MASK (3<<MXC_CCM_CCGR3_OCRAM_OFFSET)
|
||||
#define MXC_CCM_CCGR3_OCRAM_MASK (3 << MXC_CCM_CCGR3_OCRAM_OFFSET)
|
||||
#define MXC_CCM_CCGR3_OPENVGAXICLK_OFFSET 30
|
||||
#define MXC_CCM_CCGR3_OPENVGAXICLK_MASK (3<<MXC_CCM_CCGR3_OPENVGAXICLK_OFFSET)
|
||||
#define MXC_CCM_CCGR3_OPENVGAXICLK_MASK (3 << MXC_CCM_CCGR3_OPENVGAXICLK_OFFSET)
|
||||
|
||||
#define MXC_CCM_CCGR4_PCIE_OFFSET 0
|
||||
#define MXC_CCM_CCGR4_PCIE_MASK (3<<MXC_CCM_CCGR4_PCIE_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PCIE_MASK (3 << MXC_CCM_CCGR4_PCIE_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QFAST1_S133_OFFSET 8
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QFAST1_S133_MASK (3<<MXC_CCM_CCGR4_PL301_MX6QFAST1_S133_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QFAST1_S133_MASK (3 << MXC_CCM_CCGR4_PL301_MX6QFAST1_S133_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_OFFSET 12
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_MASK (3<<MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_MASK (3 << MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QPER2_MAINCLK_ENABLE_OFFSET 14
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QPER2_MAINCLK_ENABLE_MASK (3<<MXC_CCM_CCGR4_PL301_MX6QPER2_MAINCLK_ENABLE_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PL301_MX6QPER2_MAINCLK_ENABLE_MASK (3 << MXC_CCM_CCGR4_PL301_MX6QPER2_MAINCLK_ENABLE_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PWM1_OFFSET 16
|
||||
#define MXC_CCM_CCGR4_PWM1_MASK (3<<MXC_CCM_CCGR4_PWM1_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PWM1_MASK (3 << MXC_CCM_CCGR4_PWM1_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PWM2_OFFSET 18
|
||||
#define MXC_CCM_CCGR4_PWM2_MASK (3<<MXC_CCM_CCGR4_PWM2_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PWM2_MASK (3 << MXC_CCM_CCGR4_PWM2_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PWM3_OFFSET 20
|
||||
#define MXC_CCM_CCGR4_PWM3_MASK (3<<MXC_CCM_CCGR4_PWM3_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PWM3_MASK (3 << MXC_CCM_CCGR4_PWM3_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PWM4_OFFSET 22
|
||||
#define MXC_CCM_CCGR4_PWM4_MASK (3<<MXC_CCM_CCGR4_PWM4_OFFSET)
|
||||
#define MXC_CCM_CCGR4_PWM4_MASK (3 << MXC_CCM_CCGR4_PWM4_OFFSET)
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_BCH_INPUT_APB_OFFSET 24
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_BCH_INPUT_APB_MASK (3<<MXC_CCM_CCGR4_RAWNAND_U_BCH_INPUT_APB_OFFSET)
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_BCH_INPUT_APB_MASK (3 << MXC_CCM_CCGR4_RAWNAND_U_BCH_INPUT_APB_OFFSET)
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_BCH_OFFSET 26
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_BCH_MASK (3<<MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_BCH_OFFSET)
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_BCH_MASK (3 << MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_BCH_OFFSET)
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_GPMI_IO_OFFSET 28
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_GPMI_IO_MASK (3<<MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_GPMI_IO_OFFSET)
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_GPMI_IO_MASK (3 << MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_GPMI_IO_OFFSET)
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_GPMI_INPUT_APB_OFFSET 30
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_GPMI_INPUT_APB_MASK (3<<MXC_CCM_CCGR4_RAWNAND_U_GPMI_INPUT_APB_OFFSET)
|
||||
#define MXC_CCM_CCGR4_RAWNAND_U_GPMI_INPUT_APB_MASK (3 << MXC_CCM_CCGR4_RAWNAND_U_GPMI_INPUT_APB_OFFSET)
|
||||
|
||||
#define MXC_CCM_CCGR5_ROM_OFFSET 0
|
||||
#define MXC_CCM_CCGR5_ROM_MASK (3<<MXC_CCM_CCGR5_ROM_OFFSET)
|
||||
#define MXC_CCM_CCGR5_ROM_MASK (3 << MXC_CCM_CCGR5_ROM_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SATA_OFFSET 4
|
||||
#define MXC_CCM_CCGR5_SATA_MASK (3<<MXC_CCM_CCGR5_SATA_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SATA_MASK (3 << MXC_CCM_CCGR5_SATA_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SDMA_OFFSET 6
|
||||
#define MXC_CCM_CCGR5_SDMA_MASK (3<<MXC_CCM_CCGR5_SDMA_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SDMA_MASK (3 << MXC_CCM_CCGR5_SDMA_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SPBA_OFFSET 12
|
||||
#define MXC_CCM_CCGR5_SPBA_MASK (3<<MXC_CCM_CCGR5_SPBA_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SPBA_MASK (3 << MXC_CCM_CCGR5_SPBA_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SPDIF_OFFSET 14
|
||||
#define MXC_CCM_CCGR5_SPDIF_MASK (3<<MXC_CCM_CCGR5_SPDIF_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SPDIF_MASK (3 << MXC_CCM_CCGR5_SPDIF_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SSI1_OFFSET 18
|
||||
#define MXC_CCM_CCGR5_SSI1_MASK (3<<MXC_CCM_CCGR5_SSI1_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SSI1_MASK (3 << MXC_CCM_CCGR5_SSI1_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SSI2_OFFSET 20
|
||||
#define MXC_CCM_CCGR5_SSI2_MASK (3<<MXC_CCM_CCGR5_SSI2_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SSI2_MASK (3 << MXC_CCM_CCGR5_SSI2_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SSI3_OFFSET 22
|
||||
#define MXC_CCM_CCGR5_SSI3_MASK (3<<MXC_CCM_CCGR5_SSI3_OFFSET)
|
||||
#define MXC_CCM_CCGR5_SSI3_MASK (3 << MXC_CCM_CCGR5_SSI3_OFFSET)
|
||||
#define MXC_CCM_CCGR5_UART_OFFSET 24
|
||||
#define MXC_CCM_CCGR5_UART_MASK (3<<MXC_CCM_CCGR5_UART_OFFSET)
|
||||
#define MXC_CCM_CCGR5_UART_MASK (3 << MXC_CCM_CCGR5_UART_OFFSET)
|
||||
#define MXC_CCM_CCGR5_UART_SERIAL_OFFSET 26
|
||||
#define MXC_CCM_CCGR5_UART_SERIAL_MASK (3<<MXC_CCM_CCGR5_UART_SERIAL_OFFSET)
|
||||
#define MXC_CCM_CCGR5_UART_SERIAL_MASK (3 << MXC_CCM_CCGR5_UART_SERIAL_OFFSET)
|
||||
|
||||
#define MXC_CCM_CCGR6_USBOH3_OFFSET 0
|
||||
#define MXC_CCM_CCGR6_USBOH3_MASK (3<<MXC_CCM_CCGR6_USBOH3_OFFSET)
|
||||
#define MXC_CCM_CCGR6_USBOH3_MASK (3 << MXC_CCM_CCGR6_USBOH3_OFFSET)
|
||||
#define MXC_CCM_CCGR6_USDHC1_OFFSET 2
|
||||
#define MXC_CCM_CCGR6_USDHC1_MASK (3<<MXC_CCM_CCGR6_USDHC1_OFFSET)
|
||||
#define MXC_CCM_CCGR6_USDHC1_MASK (3 << MXC_CCM_CCGR6_USDHC1_OFFSET)
|
||||
#define MXC_CCM_CCGR6_USDHC2_OFFSET 4
|
||||
#define MXC_CCM_CCGR6_USDHC2_MASK (3<<MXC_CCM_CCGR6_USDHC2_OFFSET)
|
||||
#define MXC_CCM_CCGR6_USDHC2_MASK (3 << MXC_CCM_CCGR6_USDHC2_OFFSET)
|
||||
#define MXC_CCM_CCGR6_USDHC3_OFFSET 6
|
||||
#define MXC_CCM_CCGR6_USDHC3_MASK (3<<MXC_CCM_CCGR6_USDHC3_OFFSET)
|
||||
#define MXC_CCM_CCGR6_USDHC3_MASK (3 << MXC_CCM_CCGR6_USDHC3_OFFSET)
|
||||
#define MXC_CCM_CCGR6_USDHC4_OFFSET 8
|
||||
#define MXC_CCM_CCGR6_USDHC4_MASK (3<<MXC_CCM_CCGR6_USDHC4_OFFSET)
|
||||
#define MXC_CCM_CCGR6_USDHC4_MASK (3 << MXC_CCM_CCGR6_USDHC4_OFFSET)
|
||||
#define MXC_CCM_CCGR6_EMI_SLOW_OFFSET 10
|
||||
#define MXC_CCM_CCGR6_EMI_SLOW_MASK (3<<MXC_CCM_CCGR6_EMI_SLOW_OFFSET)
|
||||
#define MXC_CCM_CCGR6_EMI_SLOW_MASK (3 << MXC_CCM_CCGR6_EMI_SLOW_OFFSET)
|
||||
#define MXC_CCM_CCGR6_VDOAXICLK_OFFSET 12
|
||||
#define MXC_CCM_CCGR6_VDOAXICLK_MASK (3<<MXC_CCM_CCGR6_VDOAXICLK_OFFSET)
|
||||
#define MXC_CCM_CCGR6_VDOAXICLK_MASK (3 << MXC_CCM_CCGR6_VDOAXICLK_OFFSET)
|
||||
|
||||
#define BM_ANADIG_PLL_SYS_LOCK 0x80000000
|
||||
#define BP_ANADIG_PLL_SYS_RSVD0 20
|
||||
|
@ -25,6 +25,13 @@
|
||||
|
||||
#define ROMCP_ARB_BASE_ADDR 0x00000000
|
||||
#define ROMCP_ARB_END_ADDR 0x000FFFFF
|
||||
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define GPU_2D_ARB_BASE_ADDR 0x02200000
|
||||
#define GPU_2D_ARB_END_ADDR 0x02203FFF
|
||||
#define OPENVG_ARB_BASE_ADDR 0x02204000
|
||||
#define OPENVG_ARB_END_ADDR 0x02207FFF
|
||||
#else
|
||||
#define CAAM_ARB_BASE_ADDR 0x00100000
|
||||
#define CAAM_ARB_END_ADDR 0x00103FFF
|
||||
#define APBH_DMA_ARB_BASE_ADDR 0x00110000
|
||||
@ -37,9 +44,19 @@
|
||||
#define GPU_2D_ARB_END_ADDR 0x00137FFF
|
||||
#define DTCP_ARB_BASE_ADDR 0x00138000
|
||||
#define DTCP_ARB_END_ADDR 0x0013BFFF
|
||||
#endif /* CONFIG_MX6SL */
|
||||
|
||||
#define MXS_APBH_BASE APBH_DMA_ARB_BASE_ADDR
|
||||
#define MXS_GPMI_BASE (APBH_DMA_ARB_BASE_ADDR + 0x02000)
|
||||
#define MXS_BCH_BASE (APBH_DMA_ARB_BASE_ADDR + 0x04000)
|
||||
|
||||
/* GPV - PL301 configuration ports */
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define GPV2_BASE_ADDR 0x00D00000
|
||||
#else
|
||||
#define GPV2_BASE_ADDR 0x00200000
|
||||
#endif
|
||||
|
||||
#define GPV3_BASE_ADDR 0x00300000
|
||||
#define GPV4_BASE_ADDR 0x00800000
|
||||
#define IRAM_BASE_ADDR 0x00900000
|
||||
@ -70,10 +87,17 @@
|
||||
#define WEIM_ARB_BASE_ADDR 0x08000000
|
||||
#define WEIM_ARB_END_ADDR 0x0FFFFFFF
|
||||
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define MMDC0_ARB_BASE_ADDR 0x80000000
|
||||
#define MMDC0_ARB_END_ADDR 0xFFFFFFFF
|
||||
#define MMDC1_ARB_BASE_ADDR 0xC0000000
|
||||
#define MMDC1_ARB_END_ADDR 0xFFFFFFFF
|
||||
#else
|
||||
#define MMDC0_ARB_BASE_ADDR 0x10000000
|
||||
#define MMDC0_ARB_END_ADDR 0x7FFFFFFF
|
||||
#define MMDC1_ARB_BASE_ADDR 0x80000000
|
||||
#define MMDC1_ARB_END_ADDR 0xFFFFFFFF
|
||||
#endif
|
||||
|
||||
#define IPU_SOC_BASE_ADDR IPU1_ARB_BASE_ADDR
|
||||
#define IPU_SOC_OFFSET 0x00200000
|
||||
@ -89,6 +113,16 @@
|
||||
#define ECSPI2_BASE_ADDR (ATZ1_BASE_ADDR + 0x0C000)
|
||||
#define ECSPI3_BASE_ADDR (ATZ1_BASE_ADDR + 0x10000)
|
||||
#define ECSPI4_BASE_ADDR (ATZ1_BASE_ADDR + 0x14000)
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define UART5_IPS_BASE_ADDR (ATZ1_BASE_ADDR + 0x18000)
|
||||
#define UART1_IPS_BASE_ADDR (ATZ1_BASE_ADDR + 0x20000)
|
||||
#define UART2_IPS_BASE_ADDR (ATZ1_BASE_ADDR + 0x24000)
|
||||
#define SSI1_IPS_BASE_ADDR (ATZ1_BASE_ADDR + 0x28000)
|
||||
#define SSI2_IPS_BASE_ADDR (ATZ1_BASE_ADDR + 0x2C000)
|
||||
#define SSI3_IPS_BASE_ADDR (ATZ1_BASE_ADDR + 0x30000)
|
||||
#define UART3_IPS_BASE_ADDR (ATZ1_BASE_ADDR + 0x34000)
|
||||
#define UART4_IPS_BASE_ADDR (ATZ1_BASE_ADDR + 0x38000)
|
||||
#else
|
||||
#define ECSPI5_BASE_ADDR (ATZ1_BASE_ADDR + 0x18000)
|
||||
#define UART1_BASE (ATZ1_BASE_ADDR + 0x20000)
|
||||
#define ESAI1_BASE_ADDR (ATZ1_BASE_ADDR + 0x24000)
|
||||
@ -96,6 +130,8 @@
|
||||
#define SSI2_BASE_ADDR (ATZ1_BASE_ADDR + 0x2C000)
|
||||
#define SSI3_BASE_ADDR (ATZ1_BASE_ADDR + 0x30000)
|
||||
#define ASRC_BASE_ADDR (ATZ1_BASE_ADDR + 0x34000)
|
||||
#endif
|
||||
|
||||
#define SPBA_BASE_ADDR (ATZ1_BASE_ADDR + 0x3C000)
|
||||
#define VPU_BASE_ADDR (ATZ1_BASE_ADDR + 0x40000)
|
||||
#define AIPS1_ON_BASE_ADDR (ATZ1_BASE_ADDR + 0x7C000)
|
||||
@ -128,18 +164,35 @@
|
||||
#define SRC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x58000)
|
||||
#define GPC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x5C000)
|
||||
#define IOMUXC_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x60000)
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define CSI_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x64000)
|
||||
#define SIPIX_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x68000)
|
||||
#define SDMA_PORT_HOST_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x6C000)
|
||||
#else
|
||||
#define DCIC1_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x64000)
|
||||
#define DCIC2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x68000)
|
||||
#define DMA_REQ_PORT_HOST_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x6C000)
|
||||
#endif
|
||||
|
||||
#define AIPS2_ON_BASE_ADDR (ATZ2_BASE_ADDR + 0x7C000)
|
||||
#define AIPS2_OFF_BASE_ADDR (ATZ2_BASE_ADDR + 0x80000)
|
||||
#define CAAM_BASE_ADDR (ATZ2_BASE_ADDR)
|
||||
#define ARM_BASE_ADDR (ATZ2_BASE_ADDR + 0x40000)
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define USBO2H_PL301_IPS_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0000)
|
||||
#define USBO2H_USB_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4000)
|
||||
#else
|
||||
#define USBOH3_PL301_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x0000)
|
||||
#define USBOH3_USB_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4000)
|
||||
#endif
|
||||
|
||||
#define ENET_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x8000)
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define MSHC_IPS_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0xC000)
|
||||
#else
|
||||
#define MLB_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0xC000)
|
||||
#endif
|
||||
|
||||
#define USDHC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x10000)
|
||||
#define USDHC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x14000)
|
||||
#define USDHC3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x18000)
|
||||
@ -149,7 +202,12 @@
|
||||
#define I2C3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x28000)
|
||||
#define ROMCP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x2C000)
|
||||
#define MMDC_P0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x30000)
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define RNGB_IPS_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
|
||||
#else
|
||||
#define MMDC_P1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000)
|
||||
#endif
|
||||
|
||||
#define WEIM_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x38000)
|
||||
#define OCOTP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x3C000)
|
||||
#define CSU_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x40000)
|
||||
@ -171,7 +229,6 @@
|
||||
|
||||
#define CHIP_REV_1_0 0x10
|
||||
#define IRAM_SIZE 0x00040000
|
||||
#define IMX_IIM_BASE OCOTP_BASE_ADDR
|
||||
#define FEC_QUIRK_ENET_MAC
|
||||
|
||||
#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
|
||||
@ -200,12 +257,6 @@ struct src {
|
||||
u32 gpr10;
|
||||
};
|
||||
|
||||
/* OCOTP Registers */
|
||||
struct ocotp_regs {
|
||||
u32 reserved[0x198];
|
||||
u32 gp1; /* 0x660 */
|
||||
};
|
||||
|
||||
/* GPR3 bitfields */
|
||||
#define IOMUXC_GPR3_GPU_DBG_OFFSET 29
|
||||
#define IOMUXC_GPR3_GPU_DBG_MASK (3<<IOMUXC_GPR3_GPU_DBG_OFFSET)
|
||||
@ -365,14 +416,22 @@ struct cspi_regs {
|
||||
#define MXC_CSPICON_POL 4
|
||||
#define MXC_CSPICON_PHA 0
|
||||
#define MXC_CSPICON_SSPOL 12
|
||||
#ifdef CONFIG_MX6SL
|
||||
#define MXC_SPI_BASE_ADDRESSES \
|
||||
ECSPI1_BASE_ADDR, \
|
||||
ECSPI2_BASE_ADDR, \
|
||||
ECSPI3_BASE_ADDR, \
|
||||
ECSPI4_BASE_ADDR
|
||||
#else
|
||||
#define MXC_SPI_BASE_ADDRESSES \
|
||||
ECSPI1_BASE_ADDR, \
|
||||
ECSPI2_BASE_ADDR, \
|
||||
ECSPI3_BASE_ADDR, \
|
||||
ECSPI4_BASE_ADDR, \
|
||||
ECSPI5_BASE_ADDR
|
||||
#endif
|
||||
|
||||
struct iim_regs {
|
||||
struct ocotp_regs {
|
||||
u32 ctrl;
|
||||
u32 ctrl_set;
|
||||
u32 ctrl_clr;
|
||||
@ -383,9 +442,9 @@ struct iim_regs {
|
||||
u32 rsvd1[3];
|
||||
u32 read_ctrl;
|
||||
u32 rsvd2[3];
|
||||
u32 fuse_data;
|
||||
u32 read_fuse_data;
|
||||
u32 rsvd3[3];
|
||||
u32 sticky;
|
||||
u32 sw_sticky;
|
||||
u32 rsvd4[3];
|
||||
u32 scs;
|
||||
u32 scs_set;
|
||||
@ -400,7 +459,16 @@ struct iim_regs {
|
||||
|
||||
struct fuse_bank {
|
||||
u32 fuse_regs[0x20];
|
||||
} bank[15];
|
||||
} bank[16];
|
||||
};
|
||||
|
||||
struct fuse_bank0_regs {
|
||||
u32 lock;
|
||||
u32 rsvd0[3];
|
||||
u32 uid_low;
|
||||
u32 rsvd1[3];
|
||||
u32 uid_high;
|
||||
u32 rsvd2[0x17];
|
||||
};
|
||||
|
||||
struct fuse_bank4_regs {
|
||||
@ -411,7 +479,11 @@ struct fuse_bank4_regs {
|
||||
u32 mac_addr_low;
|
||||
u32 rsvd2[3];
|
||||
u32 mac_addr_high;
|
||||
u32 rsvd3[0x13];
|
||||
u32 rsvd3[0xb];
|
||||
u32 gp1;
|
||||
u32 rsvd4[3];
|
||||
u32 gp2;
|
||||
u32 rsvd5[3];
|
||||
};
|
||||
|
||||
struct aipstz_regs {
|
||||
|
@ -24,7 +24,11 @@
|
||||
#if defined(CONFIG_MX6DL) || defined(CONFIG_MX6S)
|
||||
#include "mx6dl_pins.h"
|
||||
#else
|
||||
#if defined(CONFIG_MX6SL)
|
||||
#include "mx6sl_pins.h"
|
||||
#else
|
||||
#error "Please select cpu"
|
||||
#endif /* CONFIG_MX6SL */
|
||||
#endif /* CONFIG_MX6DL or CONFIG_MX6S */
|
||||
#endif /* CONFIG_MX6Q */
|
||||
|
||||
|
@ -22,33 +22,6 @@
|
||||
|
||||
#include <asm/imx-common/iomux-v3.h>
|
||||
|
||||
/* Use to set PAD control */
|
||||
#define PAD_CTL_HYS (1 << 16)
|
||||
#define PAD_CTL_PUS_100K_DOWN (0 << 14)
|
||||
#define PAD_CTL_PUS_47K_UP (1 << 14)
|
||||
#define PAD_CTL_PUS_100K_UP (2 << 14)
|
||||
#define PAD_CTL_PUS_22K_UP (3 << 14)
|
||||
|
||||
#define PAD_CTL_PUE (1 << 13)
|
||||
#define PAD_CTL_PKE (1 << 12)
|
||||
#define PAD_CTL_ODE (1 << 11)
|
||||
#define PAD_CTL_SPEED_LOW (1 << 6)
|
||||
#define PAD_CTL_SPEED_MED (2 << 6)
|
||||
#define PAD_CTL_SPEED_HIGH (3 << 6)
|
||||
#define PAD_CTL_DSE_DISABLE (0 << 3)
|
||||
#define PAD_CTL_DSE_240ohm (1 << 3)
|
||||
#define PAD_CTL_DSE_120ohm (2 << 3)
|
||||
#define PAD_CTL_DSE_80ohm (3 << 3)
|
||||
#define PAD_CTL_DSE_60ohm (4 << 3)
|
||||
#define PAD_CTL_DSE_48ohm (5 << 3)
|
||||
#define PAD_CTL_DSE_40ohm (6 << 3)
|
||||
#define PAD_CTL_DSE_34ohm (7 << 3)
|
||||
#define PAD_CTL_SRE_FAST (1 << 0)
|
||||
#define PAD_CTL_SRE_SLOW (0 << 0)
|
||||
|
||||
#define IOMUX_CONFIG_SION 0x10
|
||||
#define NO_MUX_I 0
|
||||
#define NO_PAD_I 0
|
||||
enum {
|
||||
MX6_PAD_CSI0_DAT10__UART1_TXD = IOMUX_PAD(0x0360, 0x004C, 3, 0x0000, 0, 0),
|
||||
MX6_PAD_CSI0_DAT11__UART1_RXD = IOMUX_PAD(0x0364, 0x0050, 3, 0x08FC, 1, 0),
|
||||
@ -93,6 +66,7 @@ enum {
|
||||
MX6_PAD_EIM_D28__I2C1_SDA = IOMUX_PAD(0x0544, 0x0174, 1 | IOMUX_CONFIG_SION, 0x086C, 1, 0),
|
||||
MX6_PAD_EIM_D28__GPIO_3_28 = IOMUX_PAD(0x0544, 0x0174, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_EIM_D29__GPIO_3_29 = IOMUX_PAD(0x0548, 0x0178, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_EIM_DA9__GPIO_3_9 = IOMUX_PAD(0x0590, 0x01C0, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_ENET_MDC__ENET_MDC = IOMUX_PAD(0x05B8, 0x01E8, 1, 0x0000, 0, 0),
|
||||
MX6_PAD_ENET_MDIO__ENET_MDIO = IOMUX_PAD(0x05BC, 0x01EC, 1, 0x0810, 0, 0),
|
||||
MX6_PAD_ENET_REF_CLK__ENET_TX_CLK = IOMUX_PAD(0x05C0, 0x01F0, 1, 0x0000, 0, 0),
|
||||
@ -102,6 +76,7 @@ enum {
|
||||
MX6_PAD_GPIO_17__GPIO_7_12 = IOMUX_PAD(0x05E8, 0x0218, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_GPIO_18__GPIO_7_13 = IOMUX_PAD(0x05EC, 0x021C, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_GPIO_19__GPIO_4_5 = IOMUX_PAD(0x05F0, 0x0220, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_GPIO_2__GPIO_1_2 = IOMUX_PAD(0x05F4, 0x0224, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_GPIO_5__GPIO_1_5 = IOMUX_PAD(0x0600, 0x0230, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_GPIO_5__I2C3_SCL = IOMUX_PAD(0x0600, 0x0230, 6 | IOMUX_CONFIG_SION, 0x0878, 2, 0),
|
||||
MX6_PAD_KEY_COL3__I2C2_SCL = IOMUX_PAD(0x0638, 0x0250, 4 | IOMUX_CONFIG_SION, 0x0870, 1, 0),
|
||||
@ -134,8 +109,14 @@ enum {
|
||||
MX6_PAD_RGMII_TD3__ENET_RGMII_TD3 = IOMUX_PAD(0x06B8, 0x02D0, 1, 0x0000, 0, 0),
|
||||
MX6_PAD_RGMII_TX_CTL__RGMII_TX_CTL = IOMUX_PAD(0x06BC, 0x02D4, 1, 0x0000, 0, 0),
|
||||
MX6_PAD_RGMII_TXC__ENET_RGMII_TXC = IOMUX_PAD(0x06C0, 0x02D8, 1, 0x0000, 0, 0),
|
||||
MX6_PAD_SD1_CLK__USDHC1_CLK = IOMUX_PAD(0x06C4, 0x02DC, 0, 0x0928, 1, 0),
|
||||
MX6_PAD_SD1_CMD__USDHC1_CMD = IOMUX_PAD(0x06C8, 0x02E0, 0 | IOMUX_CONFIG_SION, 0x0000, 0, 0),
|
||||
MX6_PAD_SD1_CMD__GPIO_1_18 = IOMUX_PAD(0x06C8, 0x02E0, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_SD1_DAT3__GPIO_1_21 = IOMUX_PAD(0x06D8, 0x02F0, 5, 0x0000, 0, 0),
|
||||
MX6_PAD_SD1_DAT0__USDHC1_DAT0 = IOMUX_PAD(0x06CC, 0x02E4, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD1_DAT1__USDHC1_DAT1 = IOMUX_PAD(0x06D0, 0x02E8, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD1_DAT2__USDHC1_DAT2 = IOMUX_PAD(0x06D4, 0x02EC, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD1_DAT3__USDHC1_DAT3 = IOMUX_PAD(0x06D8, 0x02F0, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD3_CLK__USDHC3_CLK = IOMUX_PAD(0x06F4, 0x030C, 0, 0x0934, 1, 0),
|
||||
MX6_PAD_SD3_CMD__USDHC3_CMD = IOMUX_PAD(0x06F8, 0x0310, 0 | IOMUX_CONFIG_SION, 0x0000, 0, 0),
|
||||
MX6_PAD_SD3_DAT0__USDHC3_DAT0 = IOMUX_PAD(0x06FC, 0x0314, 0, 0x0000, 0, 0),
|
||||
|
@ -24,33 +24,6 @@
|
||||
|
||||
#include <asm/imx-common/iomux-v3.h>
|
||||
|
||||
/* Use to set PAD control */
|
||||
#define PAD_CTL_HYS (1 << 16)
|
||||
#define PAD_CTL_PUS_100K_DOWN (0 << 14)
|
||||
#define PAD_CTL_PUS_47K_UP (1 << 14)
|
||||
#define PAD_CTL_PUS_100K_UP (2 << 14)
|
||||
#define PAD_CTL_PUS_22K_UP (3 << 14)
|
||||
|
||||
#define PAD_CTL_PUE (1 << 13)
|
||||
#define PAD_CTL_PKE (1 << 12)
|
||||
#define PAD_CTL_ODE (1 << 11)
|
||||
#define PAD_CTL_SPEED_LOW (1 << 6)
|
||||
#define PAD_CTL_SPEED_MED (2 << 6)
|
||||
#define PAD_CTL_SPEED_HIGH (3 << 6)
|
||||
#define PAD_CTL_DSE_DISABLE (0 << 3)
|
||||
#define PAD_CTL_DSE_240ohm (1 << 3)
|
||||
#define PAD_CTL_DSE_120ohm (2 << 3)
|
||||
#define PAD_CTL_DSE_80ohm (3 << 3)
|
||||
#define PAD_CTL_DSE_60ohm (4 << 3)
|
||||
#define PAD_CTL_DSE_48ohm (5 << 3)
|
||||
#define PAD_CTL_DSE_40ohm (6 << 3)
|
||||
#define PAD_CTL_DSE_34ohm (7 << 3)
|
||||
#define PAD_CTL_SRE_FAST (1 << 0)
|
||||
#define PAD_CTL_SRE_SLOW (0 << 0)
|
||||
|
||||
#define NO_MUX_I 0
|
||||
#define NO_PAD_I 0
|
||||
|
||||
enum {
|
||||
MX6_PAD_SD2_DAT1__USDHC2_DAT1 = IOMUX_PAD(0x0360, 0x004C, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD2_DAT1__ECSPI5_SS0 = IOMUX_PAD(0x0360, 0x004C, 1, 0x0834, 0, 0),
|
||||
|
25
arch/arm/include/asm/arch-mx6/mx6sl_pins.h
Normal file
25
arch/arm/include/asm/arch-mx6/mx6sl_pins.h
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Freescale Semiconductor, Inc. All Rights Reserved.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_MX6_MX6SL_PINS_H__
|
||||
#define __ASM_ARCH_MX6_MX6SL_PINS_H__
|
||||
|
||||
#include <asm/imx-common/iomux-v3.h>
|
||||
|
||||
enum {
|
||||
MX6_PAD_SD2_CLK__USDHC2_CLK = IOMUX_PAD(0x055C, 0x0254, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD2_CMD__USDHC2_CMD = IOMUX_PAD(0x0560, 0x0258, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD2_DAT0__USDHC2_DAT0 = IOMUX_PAD(0x0564, 0x025C, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD2_DAT1__USDHC2_DAT1 = IOMUX_PAD(0x0568, 0x0260, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD2_DAT2__USDHC2_DAT2 = IOMUX_PAD(0x056C, 0x0264, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_SD2_DAT3__USDHC2_DAT3 = IOMUX_PAD(0x0570, 0x0268, 0, 0x0000, 0, 0),
|
||||
MX6_PAD_UART1_RXD__UART1_RXD = IOMUX_PAD(0x05A0, 0x0298, 0, 0x07FC, 0, 0),
|
||||
MX6_PAD_UART1_TXD__UART1_TXD = IOMUX_PAD(0x05A4, 0x029C, 0, 0x0000, 0, 0),
|
||||
};
|
||||
#endif /* __ASM_ARCH_MX6_MX6SL_PINS_H__ */
|
@ -24,6 +24,8 @@
|
||||
#ifndef _SYS_PROTO_H_
|
||||
#define _SYS_PROTO_H_
|
||||
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#define MXC_CPU_MX51 0x51
|
||||
#define MXC_CPU_MX53 0x53
|
||||
#define MXC_CPU_MX6SL 0x60
|
||||
@ -46,4 +48,12 @@ void set_vddsoc(u32 mv);
|
||||
int fecmxc_initialize(bd_t *bis);
|
||||
u32 get_ahb_clk(void);
|
||||
u32 get_periph_clk(void);
|
||||
|
||||
int mxs_reset_block(struct mxs_register_32 *reg);
|
||||
int mxs_wait_mask_set(struct mxs_register_32 *reg,
|
||||
uint32_t mask,
|
||||
unsigned int timeout);
|
||||
int mxs_wait_mask_clr(struct mxs_register_32 *reg,
|
||||
uint32_t mask,
|
||||
unsigned int timeout);
|
||||
#endif
|
||||
|
@ -59,6 +59,7 @@ uint32_t mxc_get_clock(enum mxc_clock clk);
|
||||
void mxs_set_ioclk(enum mxs_ioclock io, uint32_t freq);
|
||||
void mxs_set_sspclk(enum mxs_sspclock ssp, uint32_t freq, int xtal);
|
||||
void mxs_set_ssp_busclock(unsigned int bus, uint32_t freq);
|
||||
void mxs_set_lcdclk(uint32_t freq);
|
||||
|
||||
/* Compatibility with the FEC Ethernet driver */
|
||||
#define imx_get_fecclk() mxc_get_clock(MXC_AHB_CLK)
|
||||
|
@ -23,11 +23,11 @@
|
||||
#ifndef __IMX_REGS_H__
|
||||
#define __IMX_REGS_H__
|
||||
|
||||
#include <asm/arch/regs-apbh.h>
|
||||
#include <asm/imx-common/regs-apbh.h>
|
||||
#include <asm/arch/regs-base.h>
|
||||
#include <asm/arch/regs-bch.h>
|
||||
#include <asm/imx-common/regs-bch.h>
|
||||
#include <asm/arch/regs-digctl.h>
|
||||
#include <asm/arch/regs-gpmi.h>
|
||||
#include <asm/imx-common/regs-gpmi.h>
|
||||
#include <asm/arch/regs-i2c.h>
|
||||
#include <asm/arch/regs-lcdif.h>
|
||||
#include <asm/arch/regs-lradc.h>
|
||||
|
@ -71,7 +71,11 @@ typedef u32 iomux_cfg_t;
|
||||
#define PAD_16MA 3
|
||||
|
||||
#define PAD_1V8 0
|
||||
#if defined(CONFIG_MX28)
|
||||
#define PAD_3V3 1
|
||||
#else
|
||||
#define PAD_3V3 0
|
||||
#endif
|
||||
|
||||
#define PAD_NOPULL 0
|
||||
#define PAD_PULLUP 1
|
||||
|
@ -26,7 +26,7 @@
|
||||
#ifndef __MX23_REGS_CLKCTRL_H__
|
||||
#define __MX23_REGS_CLKCTRL_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_clkctrl_regs {
|
||||
|
@ -26,7 +26,7 @@
|
||||
#ifndef __MX28_REGS_CLKCTRL_H__
|
||||
#define __MX28_REGS_CLKCTRL_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_clkctrl_regs {
|
||||
|
@ -22,7 +22,7 @@
|
||||
#ifndef __MX28_REGS_DIGCTL_H__
|
||||
#define __MX28_REGS_DIGCTL_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_digctl_regs {
|
||||
|
@ -23,7 +23,7 @@
|
||||
#ifndef __MX28_REGS_I2C_H__
|
||||
#define __MX28_REGS_I2C_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_i2c_regs {
|
||||
|
@ -26,16 +26,23 @@
|
||||
#ifndef __MX28_REGS_LCDIF_H__
|
||||
#define __MX28_REGS_LCDIF_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_lcdif_regs {
|
||||
mxs_reg_32(hw_lcdif_ctrl) /* 0x00 */
|
||||
mxs_reg_32(hw_lcdif_ctrl1) /* 0x10 */
|
||||
#if defined(CONFIG_MX28)
|
||||
mxs_reg_32(hw_lcdif_ctrl2) /* 0x20 */
|
||||
mxs_reg_32(hw_lcdif_transfer_count) /* 0x30 */
|
||||
mxs_reg_32(hw_lcdif_cur_buf) /* 0x40 */
|
||||
mxs_reg_32(hw_lcdif_next_buf) /* 0x50 */
|
||||
#endif
|
||||
mxs_reg_32(hw_lcdif_transfer_count) /* 0x20/0x30 */
|
||||
mxs_reg_32(hw_lcdif_cur_buf) /* 0x30/0x40 */
|
||||
mxs_reg_32(hw_lcdif_next_buf) /* 0x40/0x50 */
|
||||
|
||||
#if defined(CONFIG_MX23)
|
||||
uint32_t reserved1[4];
|
||||
#endif
|
||||
|
||||
mxs_reg_32(hw_lcdif_timing) /* 0x60 */
|
||||
mxs_reg_32(hw_lcdif_vdctrl0) /* 0x70 */
|
||||
mxs_reg_32(hw_lcdif_vdctrl1) /* 0x80 */
|
||||
@ -54,13 +61,19 @@ struct mxs_lcdif_regs {
|
||||
mxs_reg_32(hw_lcdif_csc_coeffctrl4) /* 0x150 */
|
||||
mxs_reg_32(hw_lcdif_csc_offset) /* 0x160 */
|
||||
mxs_reg_32(hw_lcdif_csc_limit) /* 0x170 */
|
||||
mxs_reg_32(hw_lcdif_data) /* 0x180 */
|
||||
mxs_reg_32(hw_lcdif_bm_error_stat) /* 0x190 */
|
||||
|
||||
#if defined(CONFIG_MX23)
|
||||
uint32_t reserved2[12];
|
||||
#endif
|
||||
mxs_reg_32(hw_lcdif_data) /* 0x1b0/0x180 */
|
||||
mxs_reg_32(hw_lcdif_bm_error_stat) /* 0x1c0/0x190 */
|
||||
#if defined(CONFIG_MX28)
|
||||
mxs_reg_32(hw_lcdif_crc_stat) /* 0x1a0 */
|
||||
mxs_reg_32(hw_lcdif_lcdif_stat) /* 0x1b0 */
|
||||
mxs_reg_32(hw_lcdif_version) /* 0x1c0 */
|
||||
mxs_reg_32(hw_lcdif_debug0) /* 0x1d0 */
|
||||
mxs_reg_32(hw_lcdif_debug1) /* 0x1e0 */
|
||||
#endif
|
||||
mxs_reg_32(hw_lcdif_lcdif_stat) /* 0x1d0/0x1b0 */
|
||||
mxs_reg_32(hw_lcdif_version) /* 0x1e0/0x1c0 */
|
||||
mxs_reg_32(hw_lcdif_debug0) /* 0x1f0/0x1d0 */
|
||||
mxs_reg_32(hw_lcdif_debug1) /* 0x200/0x1e0 */
|
||||
mxs_reg_32(hw_lcdif_debug2) /* 0x1f0 */
|
||||
};
|
||||
#endif
|
||||
@ -191,8 +204,13 @@ struct mxs_lcdif_regs {
|
||||
#define LCDIF_VDCTRL1_VSYNC_PERIOD_MASK 0xffffffff
|
||||
#define LCDIF_VDCTRL1_VSYNC_PERIOD_OFFSET 0
|
||||
|
||||
#if defined(CONFIG_MX23)
|
||||
#define LCDIF_VDCTRL2_HSYNC_PULSE_WIDTH_MASK (0xff << 24)
|
||||
#define LCDIF_VDCTRL2_HSYNC_PULSE_WIDTH_OFFSET 24
|
||||
#elif defined(CONFIG_MX28)
|
||||
#define LCDIF_VDCTRL2_HSYNC_PULSE_WIDTH_MASK (0x3fff << 18)
|
||||
#define LCDIF_VDCTRL2_HSYNC_PULSE_WIDTH_OFFSET 18
|
||||
#endif
|
||||
#define LCDIF_VDCTRL2_HSYNC_PERIOD_MASK 0x3ffff
|
||||
#define LCDIF_VDCTRL2_HSYNC_PERIOD_OFFSET 0
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
#ifndef __MX28_REGS_LRADC_H__
|
||||
#define __MX28_REGS_LRADC_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_lradc_regs {
|
||||
|
@ -26,7 +26,7 @@
|
||||
#ifndef __MX28_REGS_OCOTP_H__
|
||||
#define __MX28_REGS_OCOTP_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_ocotp_regs {
|
||||
|
@ -26,7 +26,7 @@
|
||||
#ifndef __MX28_REGS_PINCTRL_H__
|
||||
#define __MX28_REGS_PINCTRL_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_pinctrl_regs {
|
||||
|
@ -22,7 +22,7 @@
|
||||
#ifndef __MX23_REGS_POWER_H__
|
||||
#define __MX23_REGS_POWER_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_power_regs {
|
||||
|
@ -22,7 +22,7 @@
|
||||
#ifndef __MX28_REGS_POWER_H__
|
||||
#define __MX28_REGS_POWER_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_power_regs {
|
||||
|
@ -23,7 +23,7 @@
|
||||
#ifndef __MX28_REGS_RTC_H__
|
||||
#define __MX28_REGS_RTC_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_rtc_regs {
|
||||
|
@ -25,7 +25,7 @@
|
||||
#ifndef __MX28_REGS_SSP_H__
|
||||
#define __MX28_REGS_SSP_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#if defined(CONFIG_MX23)
|
||||
|
@ -25,7 +25,7 @@
|
||||
#ifndef __MX28_REGS_TIMROT_H__
|
||||
#define __MX28_REGS_TIMROT_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_timrot_regs {
|
||||
|
@ -72,6 +72,18 @@ enum {
|
||||
MXS_DMA_CHANNEL_AHB_APBH_RESERVED1,
|
||||
MXS_MAX_DMA_CHANNELS,
|
||||
};
|
||||
#elif defined(CONFIG_MX6)
|
||||
enum {
|
||||
MXS_DMA_CHANNEL_AHB_APBH_GPMI0 = 0,
|
||||
MXS_DMA_CHANNEL_AHB_APBH_GPMI1,
|
||||
MXS_DMA_CHANNEL_AHB_APBH_GPMI2,
|
||||
MXS_DMA_CHANNEL_AHB_APBH_GPMI3,
|
||||
MXS_DMA_CHANNEL_AHB_APBH_GPMI4,
|
||||
MXS_DMA_CHANNEL_AHB_APBH_GPMI5,
|
||||
MXS_DMA_CHANNEL_AHB_APBH_GPMI6,
|
||||
MXS_DMA_CHANNEL_AHB_APBH_GPMI7,
|
||||
MXS_MAX_DMA_CHANNELS,
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
30
arch/arm/include/asm/imx-common/imximage.cfg
Normal file
30
arch/arm/include/asm/imx-common/imximage.cfg
Normal file
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* i.MX image header offset values
|
||||
* Copyright (C) 2013 Marek Vasut <marex@denx.de>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NOTE: This file must be kept in sync with tools/imximage.h because
|
||||
* tools/imximage.c can not cross-include headers from arch/arm/
|
||||
* and vice-versa.
|
||||
*/
|
||||
|
||||
#ifndef __ASM_IMX_COMMON_IMXIMAGE_CFG__
|
||||
#define __ASM_IMX_COMMON_IMXIMAGE_CFG__
|
||||
|
||||
/* Standard image header offset for NAND, SATA, SD, SPI flash. */
|
||||
#define FLASH_OFFSET_STANDARD 0x400
|
||||
/* Specific image header offset for booting from OneNAND. */
|
||||
#define FLASH_OFFSET_ONENAND 0x100
|
||||
/* Specific image header offset for booting from memory-mapped NOR. */
|
||||
#define FLASH_OFFSET_NOR 0x1000
|
||||
|
||||
#endif /* __ASM_IMX_COMMON_IMXIMAGE_CFG__ */
|
@ -23,6 +23,8 @@
|
||||
#ifndef __MACH_IOMUX_V3_H__
|
||||
#define __MACH_IOMUX_V3_H__
|
||||
|
||||
#include <common.h>
|
||||
|
||||
/*
|
||||
* build IOMUX_PAD structure
|
||||
*
|
||||
@ -84,7 +86,68 @@ typedef u64 iomux_v3_cfg_t;
|
||||
((iomux_v3_cfg_t)(sel_input_ofs) << MUX_SEL_INPUT_OFS_SHIFT)| \
|
||||
((iomux_v3_cfg_t)(sel_input) << MUX_SEL_INPUT_SHIFT))
|
||||
|
||||
#define NEW_PAD_CTRL(cfg, pad) (((cfg) & ~MUX_PAD_CTRL_MASK) | \
|
||||
MUX_PAD_CTRL(pad))
|
||||
|
||||
#define __NA_ 0x000
|
||||
#define NO_MUX_I 0
|
||||
#define NO_PAD_I 0
|
||||
|
||||
#define NO_PAD_CTRL (1 << 17)
|
||||
|
||||
#ifdef CONFIG_MX6
|
||||
|
||||
#define PAD_CTL_HYS (1 << 16)
|
||||
|
||||
#define PAD_CTL_PUS_100K_DOWN (0 << 14 | PAD_CTL_PUE)
|
||||
#define PAD_CTL_PUS_47K_UP (1 << 14 | PAD_CTL_PUE)
|
||||
#define PAD_CTL_PUS_100K_UP (2 << 14 | PAD_CTL_PUE)
|
||||
#define PAD_CTL_PUS_22K_UP (3 << 14 | PAD_CTL_PUE)
|
||||
#define PAD_CTL_PUE (1 << 13 | PAD_CTL_PKE)
|
||||
#define PAD_CTL_PKE (1 << 12)
|
||||
|
||||
#define PAD_CTL_ODE (1 << 11)
|
||||
|
||||
#define PAD_CTL_SPEED_LOW (1 << 6)
|
||||
#define PAD_CTL_SPEED_MED (2 << 6)
|
||||
#define PAD_CTL_SPEED_HIGH (3 << 6)
|
||||
|
||||
#define PAD_CTL_DSE_DISABLE (0 << 3)
|
||||
#define PAD_CTL_DSE_240ohm (1 << 3)
|
||||
#define PAD_CTL_DSE_120ohm (2 << 3)
|
||||
#define PAD_CTL_DSE_80ohm (3 << 3)
|
||||
#define PAD_CTL_DSE_60ohm (4 << 3)
|
||||
#define PAD_CTL_DSE_48ohm (5 << 3)
|
||||
#define PAD_CTL_DSE_40ohm (6 << 3)
|
||||
#define PAD_CTL_DSE_34ohm (7 << 3)
|
||||
|
||||
#else
|
||||
|
||||
#define PAD_CTL_DVS (1 << 13)
|
||||
#define PAD_CTL_INPUT_DDR (1 << 9)
|
||||
#define PAD_CTL_HYS (1 << 8)
|
||||
|
||||
#define PAD_CTL_PKE (1 << 7)
|
||||
#define PAD_CTL_PUE (1 << 6 | PAD_CTL_PKE)
|
||||
#define PAD_CTL_PUS_100K_DOWN (0 << 4 | PAD_CTL_PUE)
|
||||
#define PAD_CTL_PUS_47K_UP (1 << 4 | PAD_CTL_PUE)
|
||||
#define PAD_CTL_PUS_100K_UP (2 << 4 | PAD_CTL_PUE)
|
||||
#define PAD_CTL_PUS_22K_UP (3 << 4 | PAD_CTL_PUE)
|
||||
|
||||
#define PAD_CTL_ODE (1 << 3)
|
||||
|
||||
#define PAD_CTL_DSE_LOW (0 << 1)
|
||||
#define PAD_CTL_DSE_MED (1 << 1)
|
||||
#define PAD_CTL_DSE_HIGH (2 << 1)
|
||||
#define PAD_CTL_DSE_MAX (3 << 1)
|
||||
|
||||
#endif
|
||||
|
||||
#define PAD_CTL_SRE_SLOW (0 << 0)
|
||||
#define PAD_CTL_SRE_FAST (1 << 0)
|
||||
|
||||
#define IOMUX_CONFIG_SION 0x10
|
||||
|
||||
#define GPIO_PIN_MASK 0x1f
|
||||
#define GPIO_PORT_SHIFT 5
|
||||
#define GPIO_PORT_MASK (0x7 << GPIO_PORT_SHIFT)
|
||||
@ -95,10 +158,8 @@ typedef u64 iomux_v3_cfg_t;
|
||||
#define GPIO_PORTE (4 << GPIO_PORT_SHIFT)
|
||||
#define GPIO_PORTF (5 << GPIO_PORT_SHIFT)
|
||||
|
||||
#define MUX_CONFIG_SION (0x1 << 4)
|
||||
|
||||
int imx_iomux_v3_setup_pad(iomux_v3_cfg_t pad);
|
||||
int imx_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t const *pad_list,
|
||||
void imx_iomux_v3_setup_pad(iomux_v3_cfg_t pad);
|
||||
void imx_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t const *pad_list,
|
||||
unsigned count);
|
||||
|
||||
#endif /* __MACH_IOMUX_V3_H__*/
|
||||
|
@ -26,7 +26,7 @@
|
||||
#ifndef __REGS_APBH_H__
|
||||
#define __REGS_APBH_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
@ -109,7 +109,7 @@ struct mxs_apbh_regs {
|
||||
mxs_reg_32(hw_apbh_version)
|
||||
};
|
||||
|
||||
#elif defined(CONFIG_MX28)
|
||||
#elif (defined(CONFIG_MX28) || defined(CONFIG_MX6))
|
||||
struct mxs_apbh_regs {
|
||||
mxs_reg_32(hw_apbh_ctrl0)
|
||||
mxs_reg_32(hw_apbh_ctrl1)
|
||||
@ -288,6 +288,17 @@ struct mxs_apbh_regs {
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_NAND7 0x0800
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_HSADC 0x1000
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_LCDIF 0x2000
|
||||
#elif defined(CONFIG_MX6)
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_OFFSET 0
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_NAND0 0x0001
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_NAND1 0x0002
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_NAND2 0x0004
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_NAND3 0x0008
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_NAND4 0x0010
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_NAND5 0x0020
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_NAND6 0x0040
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_NAND7 0x0080
|
||||
#define APBH_CTRL0_CLKGATE_CHANNEL_SSP 0x0100
|
||||
#endif
|
||||
|
||||
#define APBH_CTRL1_CH15_CMDCMPLT_IRQ_EN (1 << 31)
|
||||
@ -393,6 +404,10 @@ struct mxs_apbh_regs {
|
||||
#define APBH_CHANNEL_CTRL_FREEZE_CHANNEL_LCDIF 0x2000
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MX6)
|
||||
#define APBH_CHANNEL_CTRL_RESET_CHANNEL_OFFSET 16
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MX23)
|
||||
#define APBH_DEVSEL_CH7_MASK (0xf << 28)
|
||||
#define APBH_DEVSEL_CH7_OFFSET 28
|
@ -26,7 +26,7 @@
|
||||
#ifndef __MX28_REGS_BCH_H__
|
||||
#define __MX28_REGS_BCH_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_bch_regs {
|
||||
@ -136,8 +136,13 @@ struct mxs_bch_regs {
|
||||
#define BCH_FLASHLAYOUT0_NBLOCKS_OFFSET 24
|
||||
#define BCH_FLASHLAYOUT0_META_SIZE_MASK (0xff << 16)
|
||||
#define BCH_FLASHLAYOUT0_META_SIZE_OFFSET 16
|
||||
#if defined(CONFIG_MX6)
|
||||
#define BCH_FLASHLAYOUT0_ECC0_MASK (0x1f << 11)
|
||||
#define BCH_FLASHLAYOUT0_ECC0_OFFSET 11
|
||||
#else
|
||||
#define BCH_FLASHLAYOUT0_ECC0_MASK (0xf << 12)
|
||||
#define BCH_FLASHLAYOUT0_ECC0_OFFSET 12
|
||||
#endif
|
||||
#define BCH_FLASHLAYOUT0_ECC0_NONE (0x0 << 12)
|
||||
#define BCH_FLASHLAYOUT0_ECC0_ECC2 (0x1 << 12)
|
||||
#define BCH_FLASHLAYOUT0_ECC0_ECC4 (0x2 << 12)
|
||||
@ -161,8 +166,13 @@ struct mxs_bch_regs {
|
||||
|
||||
#define BCH_FLASHLAYOUT1_PAGE_SIZE_MASK (0xffff << 16)
|
||||
#define BCH_FLASHLAYOUT1_PAGE_SIZE_OFFSET 16
|
||||
#if defined(CONFIG_MX6)
|
||||
#define BCH_FLASHLAYOUT1_ECCN_MASK (0x1f << 11)
|
||||
#define BCH_FLASHLAYOUT1_ECCN_OFFSET 11
|
||||
#else
|
||||
#define BCH_FLASHLAYOUT1_ECCN_MASK (0xf << 12)
|
||||
#define BCH_FLASHLAYOUT1_ECCN_OFFSET 12
|
||||
#endif
|
||||
#define BCH_FLASHLAYOUT1_ECCN_NONE (0x0 << 12)
|
||||
#define BCH_FLASHLAYOUT1_ECCN_ECC2 (0x1 << 12)
|
||||
#define BCH_FLASHLAYOUT1_ECCN_ECC4 (0x2 << 12)
|
@ -26,7 +26,7 @@
|
||||
#ifndef __MX28_REGS_GPMI_H__
|
||||
#define __MX28_REGS_GPMI_H__
|
||||
|
||||
#include <asm/arch/regs-common.h>
|
||||
#include <asm/imx-common/regs-common.h>
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
struct mxs_gpmi_regs {
|
@ -38,7 +38,6 @@ COBJS-y += serial.o
|
||||
COBJS-y += speed.o
|
||||
COBJS-$(CONFIG_FSL_DIU_FB) += diu.o
|
||||
COBJS-$(CONFIG_CMD_IDE) += ide.o
|
||||
COBJS-$(CONFIG_IIM) += iim.o
|
||||
COBJS-$(CONFIG_PCI) += pci.o
|
||||
|
||||
# Stub implementations of cache management functions for USB
|
||||
|
@ -201,7 +201,7 @@ void cpu_init_f (volatile immap_t * im)
|
||||
*/
|
||||
out_be32(&im->clk.sccr[0], SCCR1_CLOCKS_EN);
|
||||
out_be32(&im->clk.sccr[1], SCCR2_CLOCKS_EN);
|
||||
#if defined(CONFIG_IIM) || defined(CONFIG_CMD_FUSE)
|
||||
#if defined(CONFIG_FSL_IIM) || defined(CONFIG_CMD_FUSE)
|
||||
setbits_be32(&im->clk.sccr[1], CLOCK_SCCR2_IIM_EN);
|
||||
#endif
|
||||
}
|
||||
|
@ -1,394 +0,0 @@
|
||||
/*
|
||||
* Copyright 2008 Silicon Turnkey Express, Inc.
|
||||
* Martha Marx <mmarx@silicontkx.com>
|
||||
*
|
||||
* ADS5121 IIM (Fusebox) Interface
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <command.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#ifdef CONFIG_CMD_FUSE
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
static char cur_bank = '1';
|
||||
|
||||
char *iim_err_msg(u32 err)
|
||||
{
|
||||
static char *IIM_errs[] = {
|
||||
"Parity Error in cache",
|
||||
"Explicit Sense Cycle Error",
|
||||
"Write to Locked Register Error",
|
||||
"Read Protect Error",
|
||||
"Override Protect Error",
|
||||
"Write Protect Error"};
|
||||
|
||||
int i;
|
||||
|
||||
if (!err)
|
||||
return "";
|
||||
for (i = 1; i < 8; i++)
|
||||
if (err & (1 << i))
|
||||
printf("IIM - %s\n", IIM_errs[i-1]);
|
||||
return "";
|
||||
}
|
||||
|
||||
int in_range(int n, int min, int max, char *err, char *usg)
|
||||
{
|
||||
if (n > max || n < min) {
|
||||
printf(err);
|
||||
printf("Usage:\n%s\n", usg);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
int ads5121_fuse_read(int bank, int fstart, int num)
|
||||
{
|
||||
iim512x_t *iim = &((immap_t *) CONFIG_SYS_IMMR)->iim;
|
||||
u32 *iim_fb, dummy;
|
||||
int f, ctr;
|
||||
|
||||
out_be32(&iim->err, in_be32(&iim->err));
|
||||
if (bank == 0)
|
||||
iim_fb = (u32 *)&(iim->fbac0);
|
||||
else
|
||||
iim_fb = (u32 *)&(iim->fbac1);
|
||||
/* try a read to see if Read Protect is set */
|
||||
dummy = in_be32(&iim_fb[0]);
|
||||
if (in_be32(&iim->err) & IIM_ERR_RPE) {
|
||||
printf("\tRead protect fuse is set\n");
|
||||
out_be32(&iim->err, IIM_ERR_RPE);
|
||||
return 0;
|
||||
}
|
||||
printf("Reading Bank %d cache\n", bank);
|
||||
for (f = fstart, ctr = 0; num > 0; ctr++, num--, f++) {
|
||||
if (ctr % 4 == 0)
|
||||
printf("F%2d:", f);
|
||||
printf("\t%#04x", (u8)(iim_fb[f]));
|
||||
if (ctr % 4 == 3)
|
||||
printf("\n");
|
||||
}
|
||||
if (ctr % 4 != 0)
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
int ads5121_fuse_override(int bank, int f, u8 val)
|
||||
{
|
||||
iim512x_t *iim = &((immap_t *) CONFIG_SYS_IMMR)->iim;
|
||||
u32 *iim_fb;
|
||||
u32 iim_stat;
|
||||
int i;
|
||||
|
||||
out_be32(&iim->err, in_be32(&iim->err));
|
||||
if (bank == 0)
|
||||
iim_fb = (u32 *)&(iim->fbac0);
|
||||
else
|
||||
iim_fb = (u32 *)&(iim->fbac1);
|
||||
/* try a read to see if Read Protect is set */
|
||||
iim_stat = in_be32(&iim_fb[0]);
|
||||
if (in_be32(&iim->err) & IIM_ERR_RPE) {
|
||||
printf("Read protect fuse is set on bank %d;"
|
||||
"Override protect may also be set\n", bank);
|
||||
printf("An attempt will be made to override\n");
|
||||
out_be32(&iim->err, IIM_ERR_RPE);
|
||||
}
|
||||
if (iim_stat & IIM_FBAC_FBOP) {
|
||||
printf("Override protect fuse is set on bank %d\n", bank);
|
||||
return 1;
|
||||
}
|
||||
if (f > IIM_FMAX) /* reset the entire bank */
|
||||
for (i = 0; i < IIM_FMAX + 1; i++)
|
||||
out_be32(&iim_fb[i], 0);
|
||||
else
|
||||
out_be32(&iim_fb[f], val);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ads5121_fuse_prog(cmd_tbl_t *cmdtp, int bank, char *fuseno_bitno)
|
||||
{
|
||||
iim512x_t *iim = &((immap_t *) CONFIG_SYS_IMMR)->iim;
|
||||
int f, i, bitno;
|
||||
u32 stat, err;
|
||||
|
||||
f = simple_strtol(fuseno_bitno, NULL, 10);
|
||||
if (f == 0 && fuseno_bitno[0] != '0')
|
||||
f = -1;
|
||||
if (!in_range(f, 0, IIM_FMAX,
|
||||
"<frow> must be between 0-31\n\n", cmdtp->usage))
|
||||
return 1;
|
||||
bitno = -1;
|
||||
for (i = 0; i < 6; i++) {
|
||||
if (fuseno_bitno[i] == '_') {
|
||||
bitno = simple_strtol(&(fuseno_bitno[i+1]), NULL, 10);
|
||||
if (bitno == 0 && fuseno_bitno[i+1] != '0')
|
||||
bitno = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!in_range(bitno, 0, 7, "Bit number ranges from 0-7\n"
|
||||
"Example of <frow_bitno>: \"18_4\" sets bit 4 of row 18\n",
|
||||
cmdtp->usage))
|
||||
return 1;
|
||||
out_be32(&iim->err, in_be32(&iim->err));
|
||||
out_be32(&iim->prg_p, IIM_PRG_P_SET);
|
||||
out_be32(&iim->ua, IIM_SET_UA(bank, f));
|
||||
out_be32(&iim->la, IIM_SET_LA(f, bitno));
|
||||
#ifdef DEBUG
|
||||
printf("Programming disabled with DEBUG defined \n");
|
||||
printf(""Set up to pro
|
||||
printf("iim.ua = %x; iim.la = %x\n", iim->ua, iim->la);
|
||||
#else
|
||||
out_be32(&iim->fctl, IIM_FCTL_PROG_PULSE | IIM_FCTL_PROG);
|
||||
do
|
||||
udelay(20);
|
||||
while ((stat = in_be32(&iim->stat)) & IIM_STAT_BUSY);
|
||||
out_be32(&iim->prg_p, 0);
|
||||
err = in_be32(&iim->err);
|
||||
if (stat & IIM_STAT_PRGD) {
|
||||
if (!(err & (IIM_ERR_WPE | IIM_ERR_WPE))) {
|
||||
printf("Fuse is successfully set");
|
||||
if (err)
|
||||
printf(" - however there are other errors");
|
||||
printf("\n");
|
||||
}
|
||||
iim->stat = 0;
|
||||
}
|
||||
if (err) {
|
||||
iim_err_msg(err);
|
||||
out_be32(&iim->err, in_be32(&iim->err));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
int ads5121_fuse_sense(int bank, int fstart, int num)
|
||||
{
|
||||
iim512x_t *iim = &((immap_t *) CONFIG_SYS_IMMR)->iim;
|
||||
u32 iim_fbac;
|
||||
u32 stat, err, err_hold = 0;
|
||||
int f, ctr;
|
||||
|
||||
out_be32(&iim->err, in_be32(&iim->err));
|
||||
if (bank == 0)
|
||||
iim_fbac = in_be32(&iim->fbac0);
|
||||
else
|
||||
iim_fbac = in_be32(&iim->fbac1);
|
||||
if (iim_fbac & IIM_FBAC_FBESP) {
|
||||
printf("\tSense Protect disallows this operation\n");
|
||||
out_be32(&iim->err, IIM_FBAC_FBESP);
|
||||
return 1;
|
||||
}
|
||||
err = in_be32(&iim->err);
|
||||
if (err) {
|
||||
iim_err_msg(err);
|
||||
err_hold |= err;
|
||||
}
|
||||
if (err & IIM_ERR_RPE)
|
||||
printf("\tRead protect fuse is set; "
|
||||
"Sense Protect may be set but will be attempted\n");
|
||||
if (err)
|
||||
out_be32(&iim->err, err);
|
||||
printf("Sensing fuse(s) on Bank %d\n", bank);
|
||||
for (f = fstart, ctr = 0; num > 0; ctr++, f++, num--) {
|
||||
out_be32(&iim->ua, IIM_SET_UA(bank, f));
|
||||
out_be32(&iim->la, IIM_SET_LA(f, 0));
|
||||
out_be32(&iim->fctl, IIM_FCTL_ESNS_N);
|
||||
do
|
||||
udelay(20);
|
||||
while ((stat = in_be32(&iim->stat)) & IIM_STAT_BUSY);
|
||||
err = in_be32(&iim->err);
|
||||
if (err & IIM_ERR_SNSE) {
|
||||
iim_err_msg(err);
|
||||
out_be32(&iim->err, IIM_ERR_SNSE);
|
||||
return 1;
|
||||
}
|
||||
if (stat & IIM_STAT_SNSD) {
|
||||
out_be32(&iim->stat, 0);
|
||||
if (ctr % 4 == 0)
|
||||
printf("F%2d:", f);
|
||||
printf("\t%#04x", (u8)iim->sdat);
|
||||
if (ctr % 4 == 3)
|
||||
printf("\n");
|
||||
}
|
||||
if (err) {
|
||||
err_hold |= err;
|
||||
out_be32(&iim->err, err);
|
||||
}
|
||||
}
|
||||
if (ctr % 4 != 0)
|
||||
printf("\n");
|
||||
if (err_hold)
|
||||
iim_err_msg(err_hold);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ads5121_fuse_stat(int bank)
|
||||
{
|
||||
iim512x_t *iim = &((immap_t *) CONFIG_SYS_IMMR)->iim;
|
||||
u32 iim_fbac;
|
||||
u32 err;
|
||||
|
||||
out_be32(&iim->err, in_be32(&iim->err));
|
||||
if (bank == 0)
|
||||
iim_fbac = in_be32(&iim->fbac0);
|
||||
else
|
||||
iim_fbac = in_be32(&iim->fbac1);
|
||||
err = in_be32(&iim->err);
|
||||
if (err)
|
||||
iim_err_msg(err);
|
||||
if (err & IIM_ERR_RPE || iim_fbac & IIM_FBAC_FBRP) {
|
||||
if (iim_fbac == 0)
|
||||
printf("Since protection settings can't be read - "
|
||||
"try sensing fuse row 0;\n");
|
||||
return 0;
|
||||
}
|
||||
if (iim_fbac & IIM_PROTECTION)
|
||||
printf("Protection Fuses Bank %d = %#04x:\n", bank, iim_fbac);
|
||||
else if (!(err & IIM_ERR_RPE))
|
||||
printf("No Protection fuses are set\n");
|
||||
if (iim_fbac & IIM_FBAC_FBWP)
|
||||
printf("\tWrite Protect fuse is set\n");
|
||||
if (iim_fbac & IIM_FBAC_FBOP)
|
||||
printf("\tOverride Protect fuse is set\n");
|
||||
if (iim_fbac & IIM_FBAC_FBESP)
|
||||
printf("\tSense Protect Fuse is set\n");
|
||||
out_be32(&iim->err, in_be32(&iim->err));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int do_ads5121_fuse(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
{
|
||||
int frow, n, v, bank;
|
||||
|
||||
if (cur_bank == '0')
|
||||
bank = 0;
|
||||
else
|
||||
bank = 1;
|
||||
|
||||
switch (argc) {
|
||||
case 0:
|
||||
case 1:
|
||||
printf("Usage:\n%s\n", cmdtp->usage);
|
||||
return 1;
|
||||
case 2:
|
||||
if (strncmp(argv[1], "stat", 4) == 0)
|
||||
return ads5121_fuse_stat(bank);
|
||||
if (strncmp(argv[1], "read", 4) == 0)
|
||||
return ads5121_fuse_read(bank, 0, IIM_FMAX + 1);
|
||||
if (strncmp(argv[1], "sense", 5) == 0)
|
||||
return ads5121_fuse_sense(bank, 0, IIM_FMAX + 1);
|
||||
if (strncmp(argv[1], "ovride", 6) == 0)
|
||||
return ads5121_fuse_override(bank, IIM_FMAX + 1, 0);
|
||||
if (strncmp(argv[1], "bank", 4) == 0) {
|
||||
printf("Active Fuse Bank is %c\n", cur_bank);
|
||||
return 0;
|
||||
}
|
||||
printf("Usage:\n%s\n", cmdtp->usage);
|
||||
return 1;
|
||||
case 3:
|
||||
if (strncmp(argv[1], "bank", 4) == 0) {
|
||||
if (argv[2][0] == '0')
|
||||
cur_bank = '0';
|
||||
else if (argv[2][0] == '1')
|
||||
cur_bank = '1';
|
||||
else {
|
||||
printf("Usage:\n%s\n", cmdtp->usage);
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Setting Active Fuse Bank to %c\n", cur_bank);
|
||||
return 0;
|
||||
}
|
||||
if (strncmp(argv[1], "prog", 4) == 0)
|
||||
return ads5121_fuse_prog(cmdtp, bank, argv[2]);
|
||||
|
||||
frow = (int)simple_strtol(argv[2], NULL, 10);
|
||||
if (frow == 0 && argv[2][0] != '0')
|
||||
frow = -1;
|
||||
if (!in_range(frow, 0, IIM_FMAX,
|
||||
"<frow> must be between 0-31\n\n", cmdtp->usage))
|
||||
return 1;
|
||||
if (strncmp(argv[1], "read", 4) == 0)
|
||||
return ads5121_fuse_read(bank, frow, 1);
|
||||
if (strncmp(argv[1], "ovride", 6) == 0)
|
||||
return ads5121_fuse_override(bank, frow, 0);
|
||||
if (strncmp(argv[1], "sense", 5) == 0)
|
||||
return ads5121_fuse_sense(bank, frow, 1);
|
||||
printf("Usage:\n%s\n", cmdtp->usage);
|
||||
return 1;
|
||||
case 4:
|
||||
frow = (int)simple_strtol(argv[2], NULL, 10);
|
||||
if (frow == 0 && argv[2][0] != '0')
|
||||
frow = -1;
|
||||
if (!in_range(frow, 0, IIM_FMAX,
|
||||
"<frow> must be between 0-31\n\n", cmdtp->usage))
|
||||
return 1;
|
||||
if (strncmp(argv[1], "read", 4) == 0) {
|
||||
n = (int)simple_strtol(argv[3], NULL, 10);
|
||||
if (!in_range(frow + n, frow + 1, IIM_FMAX + 1,
|
||||
"<frow>+<n> must be between 1-32\n\n",
|
||||
cmdtp->usage))
|
||||
return 1;
|
||||
return ads5121_fuse_read(bank, frow, n);
|
||||
}
|
||||
if (strncmp(argv[1], "ovride", 6) == 0) {
|
||||
v = (int)simple_strtol(argv[3], NULL, 10);
|
||||
return ads5121_fuse_override(bank, frow, v);
|
||||
}
|
||||
if (strncmp(argv[1], "sense", 5) == 0) {
|
||||
n = (int)simple_strtol(argv[3], NULL, 10);
|
||||
if (!in_range(frow + n, frow + 1, IIM_FMAX + 1,
|
||||
"<frow>+<n> must be between 1-32\n\n",
|
||||
cmdtp->usage))
|
||||
return 1;
|
||||
return ads5121_fuse_sense(bank, frow, n);
|
||||
}
|
||||
printf("Usage:\n%s\n", cmdtp->usage);
|
||||
return 1;
|
||||
default: /* at least 5 args */
|
||||
printf("Usage:\n%s\n", cmdtp->usage);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
U_BOOT_CMD(
|
||||
fuse, CONFIG_SYS_MAXARGS, 0, do_ads5121_fuse,
|
||||
" - Read, Sense, Override or Program Fuses\n",
|
||||
"bank <n> - sets active Fuse Bank to 0 or 1\n"
|
||||
" no args shows current active bank\n"
|
||||
"fuse stat - print active fuse bank's protection status\n"
|
||||
"fuse read [<frow> [<n>]] - print <n> fuse rows starting at <frow>\n"
|
||||
" no args to print entire bank's fuses\n"
|
||||
"fuse ovride [<frow> [<v>]]- override fuses at <frow> with <v>\n"
|
||||
" no <v> defaults to 0 for the row\n"
|
||||
" no args resets entire bank to 0\n"
|
||||
" NOTE - settings persist until hard reset\n"
|
||||
"fuse sense [<frow>] - senses current fuse at <frow>\n"
|
||||
" no args for entire bank\n"
|
||||
"fuse prog <frow_bit> - program fuse at row <frow>, bit <_bit>\n"
|
||||
" <frow> is 0-31, <bit> is 0-7; eg. 13_2 \n"
|
||||
" WARNING - this is permanent"
|
||||
);
|
||||
#endif /* CONFIG_CMD_FUSE */
|
@ -1272,4 +1272,6 @@ static inline u32 get_pata_base (void)
|
||||
#define CONFIG_SYS_MPC512x_USB_ADDR \
|
||||
(CONFIG_SYS_IMMR + CONFIG_SYS_MPC512x_USB_OFFSET)
|
||||
|
||||
#define IIM_BASE_ADDR (CONFIG_SYS_IMMR + offsetof(immap_t, iim))
|
||||
|
||||
#endif /* __IMMAP_512x__ */
|
||||
|
@ -29,8 +29,7 @@
|
||||
#include <asm/errno.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/arch/mx35_pins.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/iomux-mx35.h>
|
||||
#include <i2c.h>
|
||||
#include <linux/types.h>
|
||||
#include <asm/gpio.h>
|
||||
@ -165,62 +164,68 @@ static void board_setup_sdram(void)
|
||||
|
||||
static void setup_iomux_uart3(void)
|
||||
{
|
||||
mxc_request_iomux(MX35_PIN_RTS2, MUX_CONFIG_ALT7);
|
||||
mxc_request_iomux(MX35_PIN_CTS2, MUX_CONFIG_ALT7);
|
||||
static const iomux_v3_cfg_t uart3_pads[] = {
|
||||
MX35_PAD_RTS2__UART3_RXD_MUX,
|
||||
MX35_PAD_CTS2__UART3_TXD_MUX,
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(uart3_pads, ARRAY_SIZE(uart3_pads));
|
||||
}
|
||||
|
||||
#define I2C_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN | PAD_CTL_ODE)
|
||||
|
||||
static void setup_iomux_i2c(void)
|
||||
{
|
||||
int pad;
|
||||
static const iomux_v3_cfg_t i2c_pads[] = {
|
||||
NEW_PAD_CTRL(MX35_PAD_I2C1_CLK__I2C1_SCL, I2C_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX35_PAD_I2C1_DAT__I2C1_SDA, I2C_PAD_CTRL),
|
||||
|
||||
mxc_request_iomux(MX35_PIN_I2C1_CLK, MUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX35_PIN_I2C1_DAT, MUX_CONFIG_SION);
|
||||
NEW_PAD_CTRL(MX35_PAD_TX3_RX2__I2C3_SCL, I2C_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX35_PAD_TX2_RX3__I2C3_SDA, I2C_PAD_CTRL),
|
||||
};
|
||||
|
||||
pad = (PAD_CTL_HYS_SCHMITZ | PAD_CTL_PKE_ENABLE \
|
||||
| PAD_CTL_PUE_PUD | PAD_CTL_ODE_OpenDrain);
|
||||
|
||||
mxc_iomux_set_pad(MX35_PIN_I2C1_CLK, pad);
|
||||
mxc_iomux_set_pad(MX35_PIN_I2C1_DAT, pad);
|
||||
|
||||
mxc_request_iomux(MX35_PIN_TX3_RX2, MUX_CONFIG_ALT1);
|
||||
mxc_request_iomux(MX35_PIN_TX2_RX3, MUX_CONFIG_ALT1);
|
||||
|
||||
mxc_iomux_set_pad(MX35_PIN_TX3_RX2, pad);
|
||||
mxc_iomux_set_pad(MX35_PIN_TX2_RX3, pad);
|
||||
imx_iomux_v3_setup_multiple_pads(i2c_pads, ARRAY_SIZE(i2c_pads));
|
||||
}
|
||||
|
||||
|
||||
static void setup_iomux_spi(void)
|
||||
{
|
||||
mxc_request_iomux(MX35_PIN_CSPI1_MOSI, MUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX35_PIN_CSPI1_MISO, MUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX35_PIN_CSPI1_SS0, MUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX35_PIN_CSPI1_SS1, MUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX35_PIN_CSPI1_SCLK, MUX_CONFIG_SION);
|
||||
static const iomux_v3_cfg_t spi_pads[] = {
|
||||
MX35_PAD_CSPI1_MOSI__CSPI1_MOSI,
|
||||
MX35_PAD_CSPI1_MISO__CSPI1_MISO,
|
||||
MX35_PAD_CSPI1_SS0__CSPI1_SS0,
|
||||
MX35_PAD_CSPI1_SS1__CSPI1_SS1,
|
||||
MX35_PAD_CSPI1_SCLK__CSPI1_SCLK,
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(spi_pads, ARRAY_SIZE(spi_pads));
|
||||
}
|
||||
|
||||
static void setup_iomux_fec(void)
|
||||
{
|
||||
/* setup pins for FEC */
|
||||
mxc_request_iomux(MX35_PIN_FEC_TX_CLK, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RX_CLK, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RX_DV, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_COL, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RDATA0, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TDATA0, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TX_EN, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_MDC, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_MDIO, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TX_ERR, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RX_ERR, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_CRS, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RDATA1, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TDATA1, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RDATA2, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TDATA2, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RDATA3, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TDATA3, MUX_CONFIG_FUNC);
|
||||
static const iomux_v3_cfg_t fec_pads[] = {
|
||||
MX35_PAD_FEC_TX_CLK__FEC_TX_CLK,
|
||||
MX35_PAD_FEC_RX_CLK__FEC_RX_CLK,
|
||||
MX35_PAD_FEC_RX_DV__FEC_RX_DV,
|
||||
MX35_PAD_FEC_COL__FEC_COL,
|
||||
MX35_PAD_FEC_RDATA0__FEC_RDATA_0,
|
||||
MX35_PAD_FEC_TDATA0__FEC_TDATA_0,
|
||||
MX35_PAD_FEC_TX_EN__FEC_TX_EN,
|
||||
MX35_PAD_FEC_MDC__FEC_MDC,
|
||||
MX35_PAD_FEC_MDIO__FEC_MDIO,
|
||||
MX35_PAD_FEC_TX_ERR__FEC_TX_ERR,
|
||||
MX35_PAD_FEC_RX_ERR__FEC_RX_ERR,
|
||||
MX35_PAD_FEC_CRS__FEC_CRS,
|
||||
MX35_PAD_FEC_RDATA1__FEC_RDATA_1,
|
||||
MX35_PAD_FEC_TDATA1__FEC_TDATA_1,
|
||||
MX35_PAD_FEC_RDATA2__FEC_RDATA_2,
|
||||
MX35_PAD_FEC_TDATA2__FEC_TDATA_2,
|
||||
MX35_PAD_FEC_RDATA3__FEC_RDATA_3,
|
||||
MX35_PAD_FEC_TDATA3__FEC_TDATA_3,
|
||||
};
|
||||
|
||||
/* setup pins for FEC */
|
||||
imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
|
||||
}
|
||||
|
||||
int board_early_init_f(void)
|
||||
@ -229,7 +234,7 @@ int board_early_init_f(void)
|
||||
(struct ccm_regs *)IMX_CCM_BASE;
|
||||
|
||||
/* setup GPIO3_1 to set HighVCore signal */
|
||||
mxc_request_iomux(MX35_PIN_ATA_DA1, MUX_CONFIG_ALT5);
|
||||
imx_iomux_v3_setup_pad(MX35_PAD_ATA_DA1__GPIO3_1);
|
||||
gpio_direction_output(65, 1);
|
||||
|
||||
/* initialize PLL and clock configuration */
|
||||
|
@ -44,3 +44,14 @@ DATA 4, MX6_IOMUXC_GPR4, 0xF00000CF
|
||||
/* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */
|
||||
DATA 4, MX6_IOMUXC_GPR6, 0x007F007F
|
||||
DATA 4, MX6_IOMUXC_GPR7, 0x007F007F
|
||||
|
||||
/*
|
||||
* Setup CCM_CCOSR register as follows:
|
||||
*
|
||||
* cko1_en = 1 --> CKO1 enabled
|
||||
* cko1_div = 111 --> divide by 8
|
||||
* cko1_sel = 1011 --> ahb_clk_root
|
||||
*
|
||||
* This sets CKO1 at ahb_clk_root/8 = 132/8 = 16.5 MHz
|
||||
*/
|
||||
DATA 4, CCM_CCOSR, 0x000000fb
|
||||
|
@ -47,40 +47,34 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \
|
||||
PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
|
||||
#define SPI_PAD_CTRL (PAD_CTL_HYS | \
|
||||
PAD_CTL_PUS_100K_DOWN | PAD_CTL_SPEED_MED | \
|
||||
#define SPI_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST)
|
||||
|
||||
#define BUTTON_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
#define BUTTON_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
|
||||
#define I2C_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \
|
||||
#define I2C_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \
|
||||
PAD_CTL_ODE | PAD_CTL_SRE_FAST)
|
||||
|
||||
#define WEAK_PULLUP (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \
|
||||
#define WEAK_PULLUP (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \
|
||||
PAD_CTL_SRE_SLOW)
|
||||
|
||||
#define WEAK_PULLDOWN (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_DOWN | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \
|
||||
PAD_CTL_SRE_SLOW)
|
||||
#define WEAK_PULLDOWN (PAD_CTL_PUS_100K_DOWN | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
|
||||
PAD_CTL_HYS | PAD_CTL_SRE_SLOW)
|
||||
|
||||
#define OUTPUT_40OHM (PAD_CTL_SPEED_MED|PAD_CTL_DSE_40ohm)
|
||||
|
||||
|
40
board/denx/m53evk/Makefile
Normal file
40
board/denx/m53evk/Makefile
Normal file
@ -0,0 +1,40 @@
|
||||
#
|
||||
# DENX M53EVK
|
||||
# Copyright (C) 2012-2013 Marek Vasut <marex@denx.de>
|
||||
#
|
||||
# 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
|
||||
#
|
||||
|
||||
include $(TOPDIR)/config.mk
|
||||
|
||||
LIB = $(obj)lib$(BOARD).o
|
||||
|
||||
COBJS := m53evk.o
|
||||
|
||||
SRCS := $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
|
||||
$(LIB): $(obj).depend $(OBJS)
|
||||
$(call cmd_link_o_target, $(OBJS))
|
||||
|
||||
#########################################################################
|
||||
|
||||
# defines $(obj).depend target
|
||||
include $(SRCTREE)/rules.mk
|
||||
|
||||
sinclude $(obj).depend
|
||||
|
||||
#########################################################################
|
108
board/denx/m53evk/imximage.cfg
Normal file
108
board/denx/m53evk/imximage.cfg
Normal file
@ -0,0 +1,108 @@
|
||||
/*
|
||||
* DENX M53 DRAM init values
|
||||
* Copyright (C) 2012-2013 Marek Vasut <marex@denx.de>
|
||||
*
|
||||
* 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. 51 Franklin Street Fifth Floor Boston,
|
||||
* MA 02110-1301 USA
|
||||
*
|
||||
* Refer docs/README.imxmage for more details about how-to configure
|
||||
* and create imximage boot image
|
||||
*
|
||||
* The syntax is taken as close as possible with the kwbimage
|
||||
*/
|
||||
#include <asm/imx-common/imximage.cfg>
|
||||
|
||||
/* image version */
|
||||
IMAGE_VERSION 2
|
||||
|
||||
|
||||
/* Boot Offset 0x400, valid for both SD and NAND boot. */
|
||||
BOOT_OFFSET FLASH_OFFSET_STANDARD
|
||||
|
||||
/*
|
||||
* Device Configuration Data (DCD)
|
||||
*
|
||||
* Each entry must have the format:
|
||||
* Addr-type Address Value
|
||||
*
|
||||
* where:
|
||||
* Addr-type register length (1,2 or 4 bytes)
|
||||
* Address absolute address of the register
|
||||
* value value to be stored in the register
|
||||
*/
|
||||
DATA 4 0x53fa86f4 0x00000000 /* GRP_DDRMODE_CTL */
|
||||
DATA 4 0x53fa8714 0x00000000 /* GRP_DDRMODE */
|
||||
DATA 4 0x53fa86fc 0x00000000 /* GRP_DDRPKE */
|
||||
DATA 4 0x53fa8724 0x04000000 /* GRP_DDR_TYPE */
|
||||
|
||||
DATA 4 0x53fa872c 0x00300000 /* GRP_B3DS */
|
||||
DATA 4 0x53fa8554 0x00300000 /* DRAM_DQM3 */
|
||||
DATA 4 0x53fa8558 0x00300040 /* DRAM_SDQS3 */
|
||||
|
||||
DATA 4 0x53fa8728 0x00300000 /* GRP_B2DS */
|
||||
DATA 4 0x53fa8560 0x00300000 /* DRAM_DQM2 */
|
||||
DATA 4 0x53fa8568 0x00300040 /* DRAM_SDQS2 */
|
||||
|
||||
DATA 4 0x53fa871c 0x00300000 /* GRP_B1DS */
|
||||
DATA 4 0x53fa8594 0x00300000 /* DRAM_DQM1 */
|
||||
DATA 4 0x53fa8590 0x00300040 /* DRAM_SDQS1 */
|
||||
|
||||
DATA 4 0x53fa8718 0x00300000 /* GRP_B0DS */
|
||||
DATA 4 0x53fa8584 0x00300000 /* DRAM_DQM0 */
|
||||
DATA 4 0x53fa857c 0x00300040 /* DRAM_SDQS0 */
|
||||
|
||||
DATA 4 0x53fa8578 0x00300000 /* DRAM_SDCLK_0 */
|
||||
DATA 4 0x53fa8570 0x00300000 /* DRAM_SDCLK_1 */
|
||||
|
||||
DATA 4 0x53fa8574 0x00300000 /* DRAM_CAS */
|
||||
DATA 4 0x53fa8588 0x00300000 /* DRAM_RAS */
|
||||
DATA 4 0x53fa86f0 0x00300000 /* GRP_ADDDS */
|
||||
DATA 4 0x53fa8720 0x00300000 /* GRP_CTLDS */
|
||||
|
||||
DATA 4 0x53fa8564 0x00300040 /* DRAM_SDODT1 */
|
||||
DATA 4 0x53fa8580 0x00300040 /* DRAM_SDODT0 */
|
||||
|
||||
/* ESDCTL */
|
||||
DATA 4 0x63fd9088 0x32383535
|
||||
DATA 4 0x63fd9090 0x40383538
|
||||
DATA 4 0x63fd907c 0x0136014d
|
||||
DATA 4 0x63fd9080 0x01510141
|
||||
|
||||
DATA 4 0x63fd9018 0x00011740
|
||||
DATA 4 0x63fd9000 0xc3190000
|
||||
DATA 4 0x63fd900c 0x555952e3
|
||||
DATA 4 0x63fd9010 0xb68e8b63
|
||||
DATA 4 0x63fd9014 0x01ff00db
|
||||
DATA 4 0x63fd902c 0x000026d2
|
||||
DATA 4 0x63fd9030 0x009f0e21
|
||||
DATA 4 0x63fd9008 0x12273030
|
||||
DATA 4 0x63fd9004 0x0002002d
|
||||
DATA 4 0x63fd901c 0x00008032
|
||||
DATA 4 0x63fd901c 0x00008033
|
||||
DATA 4 0x63fd901c 0x00028031
|
||||
DATA 4 0x63fd901c 0x092080b0
|
||||
DATA 4 0x63fd901c 0x04008040
|
||||
DATA 4 0x63fd901c 0x0000803a
|
||||
DATA 4 0x63fd901c 0x0000803b
|
||||
DATA 4 0x63fd901c 0x00028039
|
||||
DATA 4 0x63fd901c 0x09208138
|
||||
DATA 4 0x63fd901c 0x04008048
|
||||
DATA 4 0x63fd9020 0x00001800
|
||||
DATA 4 0x63fd9040 0x04b80003
|
||||
DATA 4 0x63fd9058 0x00022227
|
||||
DATA 4 0x63fd901c 0x00000000
|
328
board/denx/m53evk/m53evk.c
Normal file
328
board/denx/m53evk/m53evk.c
Normal file
@ -0,0 +1,328 @@
|
||||
/*
|
||||
* DENX M53 module
|
||||
*
|
||||
* Copyright (C) 2012-2013 Marek Vasut <marex@denx.de>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/iomux-mx53.h>
|
||||
#include <asm/arch/spl.h>
|
||||
#include <asm/errno.h>
|
||||
#include <netdev.h>
|
||||
#include <i2c.h>
|
||||
#include <mmc.h>
|
||||
#include <spl.h>
|
||||
#include <fsl_esdhc.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <usb/ehci-fsl.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
u32 size1, size2;
|
||||
|
||||
size1 = get_ram_size((void *)PHYS_SDRAM_1, PHYS_SDRAM_1_SIZE);
|
||||
size2 = get_ram_size((void *)PHYS_SDRAM_2, PHYS_SDRAM_2_SIZE);
|
||||
|
||||
gd->ram_size = size1 + size2;
|
||||
|
||||
return 0;
|
||||
}
|
||||
void dram_init_banksize(void)
|
||||
{
|
||||
gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
|
||||
gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
|
||||
|
||||
gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
|
||||
gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
|
||||
}
|
||||
|
||||
static void setup_iomux_uart(void)
|
||||
{
|
||||
static const iomux_v3_cfg_t uart_pads[] = {
|
||||
MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX,
|
||||
MX53_PAD_PATA_DMARQ__UART2_TXD_MUX,
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_USB_EHCI_MX5
|
||||
int board_ehci_hcd_init(int port)
|
||||
{
|
||||
if (port == 0) {
|
||||
/* USB OTG PWRON */
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX53_PAD_GPIO_4__GPIO1_4,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH));
|
||||
gpio_direction_output(IMX_GPIO_NR(1, 4), 0);
|
||||
|
||||
/* USB OTG Over Current */
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_GPIO_18__GPIO7_13);
|
||||
} else if (port == 1) {
|
||||
/* USB Host PWRON */
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX53_PAD_GPIO_2__GPIO1_2,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH));
|
||||
gpio_direction_output(IMX_GPIO_NR(1, 2), 0);
|
||||
|
||||
/* USB Host Over Current */
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_GPIO_3__USBOH3_USBH1_OC);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void setup_iomux_fec(void)
|
||||
{
|
||||
static const iomux_v3_cfg_t fec_pads[] = {
|
||||
/* MDIO pads */
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_MDIO__FEC_MDIO, PAD_CTL_HYS |
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PUS_22K_UP | PAD_CTL_ODE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_MDC__FEC_MDC, PAD_CTL_DSE_HIGH),
|
||||
|
||||
/* FEC 0 pads */
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_CRS_DV__FEC_RX_DV,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_REF_CLK__FEC_TX_CLK,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RX_ER__FEC_RX_ER,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TX_EN__FEC_TX_EN, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RXD0__FEC_RDATA_0,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RXD1__FEC_RDATA_1,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TXD0__FEC_TDATA_0, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TXD1__FEC_TDATA_1, PAD_CTL_DSE_HIGH),
|
||||
|
||||
/* FEC 1 pads */
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_COL0__FEC_RDATA_3,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_ROW0__FEC_TX_ER,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_COL1__FEC_RX_CLK,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_ROW1__FEC_COL,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_COL2__FEC_RDATA_2,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_ROW2__FEC_TDATA_2, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_COL3__FEC_CRS,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_GPIO_19__FEC_TDATA_3, PAD_CTL_DSE_HIGH),
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
struct fsl_esdhc_cfg esdhc_cfg = {
|
||||
MMC_SDHC1_BASE_ADDR,
|
||||
};
|
||||
|
||||
int board_mmc_getcd(struct mmc *mmc)
|
||||
{
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_GPIO_1__GPIO1_1);
|
||||
gpio_direction_input(IMX_GPIO_NR(1, 1));
|
||||
|
||||
return !gpio_get_value(IMX_GPIO_NR(1, 1));
|
||||
}
|
||||
|
||||
#define SD_CMD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP)
|
||||
#define SD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_DSE_HIGH)
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
static const iomux_v3_cfg_t sd1_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CMD__ESDHC1_CMD, SD_CMD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CLK__ESDHC1_CLK, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA0__ESDHC1_DAT0, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA1__ESDHC1_DAT1, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA2__ESDHC1_DAT2, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA3__ESDHC1_DAT3, SD_PAD_CTRL),
|
||||
MX53_PAD_EIM_DA13__GPIO3_13,
|
||||
|
||||
MX53_PAD_EIM_EB3__GPIO2_31, /* SD power */
|
||||
};
|
||||
|
||||
esdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(sd1_pads, ARRAY_SIZE(sd1_pads));
|
||||
|
||||
/* GPIO 2_31 is SD power */
|
||||
gpio_direction_output(IMX_GPIO_NR(2, 31), 0);
|
||||
|
||||
return fsl_esdhc_initialize(bis, &esdhc_cfg);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define I2C_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
|
||||
|
||||
static void setup_iomux_i2c(void)
|
||||
{
|
||||
static const iomux_v3_cfg_t i2c_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D16__I2C2_SDA, I2C_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_EB2__I2C2_SCL, I2C_PAD_CTRL),
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(i2c_pads, ARRAY_SIZE(i2c_pads));
|
||||
}
|
||||
|
||||
static void setup_iomux_nand(void)
|
||||
{
|
||||
static const iomux_v3_cfg_t nand_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_WE_B__EMI_NANDF_WE_B,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_RE_B__EMI_NANDF_RE_B,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_CLE__EMI_NANDF_CLE,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_ALE__EMI_NANDF_ALE,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_WP_B__EMI_NANDF_WP_B,
|
||||
PAD_CTL_PUS_100K_UP),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_RB0__EMI_NANDF_RB_0,
|
||||
PAD_CTL_PUS_100K_UP),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_CS0__EMI_NANDF_CS_0,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA0__EMI_NANDF_D_0,
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA1__EMI_NANDF_D_1,
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA2__EMI_NANDF_D_2,
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA3__EMI_NANDF_D_3,
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA4__EMI_NANDF_D_4,
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA5__EMI_NANDF_D_5,
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA6__EMI_NANDF_D_6,
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA7__EMI_NANDF_D_7,
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PKE),
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(nand_pads, ARRAY_SIZE(nand_pads));
|
||||
}
|
||||
|
||||
static void m53_set_clock(void)
|
||||
{
|
||||
int ret;
|
||||
const uint32_t ref_clk = MXC_HCLK;
|
||||
const uint32_t dramclk = 400;
|
||||
uint32_t cpuclk;
|
||||
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX53_PAD_GPIO_10__GPIO4_0,
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PKE));
|
||||
gpio_direction_input(IMX_GPIO_NR(4, 0));
|
||||
|
||||
/* GPIO10 selects modules' CPU speed, 1 = 1200MHz ; 0 = 800MHz */
|
||||
cpuclk = gpio_get_value(IMX_GPIO_NR(4, 0)) ? 1200 : 800;
|
||||
|
||||
ret = mxc_set_clock(ref_clk, cpuclk, MXC_ARM_CLK);
|
||||
if (ret)
|
||||
printf("CPU: Switch CPU clock to %dMHz failed\n", cpuclk);
|
||||
|
||||
ret = mxc_set_clock(ref_clk, dramclk, MXC_PERIPH_CLK);
|
||||
if (ret) {
|
||||
printf("CPU: Switch peripheral clock to %dMHz failed\n",
|
||||
dramclk);
|
||||
}
|
||||
|
||||
ret = mxc_set_clock(ref_clk, dramclk, MXC_DDR_CLK);
|
||||
if (ret)
|
||||
printf("CPU: Switch DDR clock to %dMHz failed\n", dramclk);
|
||||
}
|
||||
|
||||
static void m53_set_nand(void)
|
||||
{
|
||||
u32 i;
|
||||
|
||||
/* NAND flash is muxed on ATA pins */
|
||||
setbits_le32(M4IF_BASE_ADDR + 0xc, M4IF_GENP_WEIM_MM_MASK);
|
||||
|
||||
/* Wait for Grant/Ack sequence (see EIM_CSnGCR2:MUX16_BYP_GRANT) */
|
||||
for (i = 0x4; i < 0x94; i += 0x18) {
|
||||
clrbits_le32(WEIM_BASE_ADDR + i,
|
||||
WEIM_GCR2_MUX16_BYP_GRANT_MASK);
|
||||
}
|
||||
|
||||
mxc_set_clock(0, 33, MXC_NFC_CLK);
|
||||
enable_nfc_clk(1);
|
||||
}
|
||||
|
||||
int board_early_init_f(void)
|
||||
{
|
||||
setup_iomux_uart();
|
||||
setup_iomux_fec();
|
||||
setup_iomux_i2c();
|
||||
setup_iomux_nand();
|
||||
|
||||
m53_set_clock();
|
||||
|
||||
mxc_set_sata_internal_clock();
|
||||
|
||||
/* NAND clock @ 33MHz */
|
||||
m53_set_nand();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int checkboard(void)
|
||||
{
|
||||
puts("Board: DENX M53EVK\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* NAND SPL
|
||||
*/
|
||||
#ifdef CONFIG_SPL_BUILD
|
||||
void spl_board_init(void)
|
||||
{
|
||||
setup_iomux_nand();
|
||||
m53_set_clock();
|
||||
m53_set_nand();
|
||||
}
|
||||
|
||||
u32 spl_boot_device(void)
|
||||
{
|
||||
return BOOT_DEVICE_NAND;
|
||||
}
|
||||
#endif
|
@ -23,11 +23,10 @@
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/mx5x_pins.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/iomux-mx53.h>
|
||||
#include <asm/errno.h>
|
||||
#include <netdev.h>
|
||||
#include <mmc.h>
|
||||
@ -66,109 +65,53 @@ int dram_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
|
||||
|
||||
static void setup_iomux_uart(void)
|
||||
{
|
||||
/* UART4 RXD */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D13, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D13,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_100K_PU | PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
mxc_iomux_set_input(MX53_UART4_IPP_UART_RXD_MUX_SELECT_INPUT, 0x3);
|
||||
static const iomux_v3_cfg_t uart_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT13__UART4_RXD_MUX, UART_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT12__UART4_TXD_MUX, UART_PAD_CTRL),
|
||||
};
|
||||
|
||||
/* UART4 TXD */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D12, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D12,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_100K_PU | PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
|
||||
}
|
||||
|
||||
static void setup_iomux_fec(void)
|
||||
{
|
||||
/*FEC_MDIO*/
|
||||
mxc_request_iomux(MX53_PIN_FEC_MDIO, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_MDIO,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE | PAD_CTL_22K_PU |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
mxc_iomux_set_input(MX53_FEC_FEC_MDI_SELECT_INPUT, 0x1);
|
||||
static const iomux_v3_cfg_t fec_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_MDIO__FEC_MDIO, PAD_CTL_HYS |
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PUS_22K_UP | PAD_CTL_ODE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_MDC__FEC_MDC, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_COL0__FEC_RDATA_3,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_COL2__FEC_RDATA_2,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RXD1__FEC_RDATA_1,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RXD0__FEC_RDATA_0,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_GPIO_19__FEC_TDATA_3, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_ROW2__FEC_TDATA_2, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TXD1__FEC_TDATA_1, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TXD0__FEC_TDATA_0, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TX_EN__FEC_TX_EN, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_REF_CLK__FEC_TX_CLK,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RX_ER__FEC_RX_ER,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_CRS_DV__FEC_RX_DV,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_COL3__FEC_CRS,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_ROW1__FEC_COL,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_COL1__FEC_RX_CLK,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
};
|
||||
|
||||
/*FEC_MDC*/
|
||||
mxc_request_iomux(MX53_PIN_FEC_MDC, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_MDC, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC RXD3 */
|
||||
mxc_request_iomux(MX53_PIN_KEY_COL0, IOMUX_CONFIG_ALT6);
|
||||
mxc_iomux_set_pad(MX53_PIN_KEY_COL0, PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RXD2 */
|
||||
mxc_request_iomux(MX53_PIN_KEY_COL2, IOMUX_CONFIG_ALT6);
|
||||
mxc_iomux_set_pad(MX53_PIN_KEY_COL2, PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RXD1 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RXD1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RXD1, PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RXD0 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RXD0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RXD0, PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC TXD3 */
|
||||
mxc_request_iomux(MX53_PIN_GPIO_19, IOMUX_CONFIG_ALT6);
|
||||
mxc_iomux_set_pad(MX53_PIN_GPIO_19, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TXD2 */
|
||||
mxc_request_iomux(MX53_PIN_KEY_ROW2, IOMUX_CONFIG_ALT6);
|
||||
mxc_iomux_set_pad(MX53_PIN_KEY_ROW2, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TXD1 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TXD1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TXD1, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TXD0 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TXD0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TXD0, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TX_EN */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TX_EN, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TX_EN, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TX_CLK */
|
||||
mxc_request_iomux(MX53_PIN_FEC_REF_CLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_REF_CLK, PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RX_ER */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RX_ER, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RX_ER, PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RX_DV */
|
||||
mxc_request_iomux(MX53_PIN_FEC_CRS_DV, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_CRS_DV, PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC CRS */
|
||||
mxc_request_iomux(MX53_PIN_KEY_COL3, IOMUX_CONFIG_ALT6);
|
||||
mxc_iomux_set_pad(MX53_PIN_KEY_COL3, PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC COL */
|
||||
mxc_request_iomux(MX53_PIN_KEY_ROW1, IOMUX_CONFIG_ALT6);
|
||||
mxc_iomux_set_pad(MX53_PIN_KEY_ROW1, PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PKE_ENABLE);
|
||||
mxc_iomux_set_input(MX53_FEC_FEC_COL_SELECT_INPUT, 0x0);
|
||||
|
||||
/* FEC RX_CLK */
|
||||
mxc_request_iomux(MX53_PIN_KEY_COL1, IOMUX_CONFIG_ALT6);
|
||||
mxc_iomux_set_pad(MX53_PIN_KEY_COL1, PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PKE_ENABLE);
|
||||
mxc_iomux_set_input(MX53_FEC_FEC_RX_CLK_SELECT_INPUT, 0x0);
|
||||
imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
@ -178,76 +121,51 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = !gpio_get_value(IOMUX_TO_GPIO(MX53_PIN_GPIO_1));
|
||||
ret = !gpio_get_value(IMX_GPIO_NR(1, 1));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define SD_CMD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP)
|
||||
#define SD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_DSE_HIGH)
|
||||
#define SD_CD_PAD_CTRL (PAD_CTL_DSE_HIGH | PAD_CTL_HYS | PAD_CTL_PKE)
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
mxc_request_iomux(MX53_PIN_SD1_CMD, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_CLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA0, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA1, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA2, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA3, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_GPIO_1, IOMUX_CONFIG_ALT1);
|
||||
mxc_iomux_set_pad(MX53_PIN_GPIO_1,
|
||||
PAD_CTL_DRV_HIGH | PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_PUE_KEEPER | PAD_CTL_100K_PU |
|
||||
PAD_CTL_ODE_OPENDRAIN_NONE | PAD_CTL_PKE_ENABLE);
|
||||
gpio_direction_input(IOMUX_TO_GPIO(MX53_PIN_GPIO_1));
|
||||
static const iomux_v3_cfg_t sd1_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CMD__ESDHC1_CMD, SD_CMD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CLK__ESDHC1_CLK, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA0__ESDHC1_DAT0, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA1__ESDHC1_DAT1, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA2__ESDHC1_DAT2, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA3__ESDHC1_DAT3, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_GPIO_1__GPIO1_1, SD_CD_PAD_CTRL),
|
||||
};
|
||||
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_CMD,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_CLK,
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_47K_PU | PAD_CTL_DRV_HIGH);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA0,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA1,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA2,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA3,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
imx_iomux_v3_setup_multiple_pads(sd1_pads, ARRAY_SIZE(sd1_pads));
|
||||
gpio_direction_input(IMX_GPIO_NR(1, 1));
|
||||
|
||||
esdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
|
||||
return fsl_esdhc_initialize(bis, &esdhc_cfg);
|
||||
}
|
||||
#endif
|
||||
|
||||
#define SPI_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_47K_UP)
|
||||
|
||||
static void setup_iomux_spi(void)
|
||||
{
|
||||
/* SCLK */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D8, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D8,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_input(MX53_ECSPI2_IPP_CSPI_CLK_IN_SELECT_INPUT, 0x1);
|
||||
/* MOSI */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D9, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D9,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_input(MX53_ECSPI2_IPP_IND_MOSI_SELECT_INPUT, 0x1);
|
||||
/* MISO */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D10, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D10,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_input(MX53_ECSPI2_IPP_IND_MISO_SELECT_INPUT, 0x1);
|
||||
/* SSEL 0 */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D11, IOMUX_CONFIG_GPIO);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D11,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
gpio_direction_output(IOMUX_TO_GPIO(MX53_PIN_CSI0_D11), 1);
|
||||
static const iomux_v3_cfg_t spi_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT8__ECSPI2_SCLK, SPI_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT9__ECSPI2_MOSI, SPI_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT10__ECSPI2_MISO, SPI_PAD_CTRL),
|
||||
/* SSEL 0 */
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT11__GPIO5_29, SPI_PAD_CTRL),
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(spi_pads, ARRAY_SIZE(spi_pads));
|
||||
gpio_direction_output(IMX_GPIO_NR(5, 29), 1);
|
||||
}
|
||||
|
||||
int board_early_init_f(void)
|
||||
|
@ -172,3 +172,14 @@ DATA 4 0x020e0010 0xF00000CF
|
||||
/* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */
|
||||
DATA 4 0x020e0018 0x007F007F
|
||||
DATA 4 0x020e001c 0x007F007F
|
||||
|
||||
/*
|
||||
* Setup CCM_CCOSR register as follows:
|
||||
*
|
||||
* cko1_en = 1 --> CKO1 enabled
|
||||
* cko1_div = 111 --> divide by 8
|
||||
* cko1_sel = 1011 --> ahb_clk_root
|
||||
*
|
||||
* This sets CKO1 at ahb_clk_root/8 = 132/8 = 16.5 MHz
|
||||
*/
|
||||
DATA 4 0x020c4060 0x000000fb
|
||||
|
@ -25,8 +25,8 @@
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
|
||||
#define MUX_CONFIG_SSP1 (MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP)
|
||||
#define MUX_CONFIG_EMI (MXS_PAD_3V3 | MXS_PAD_16MA | MXS_PAD_PULLUP)
|
||||
#define MUX_CONFIG_SSP1 (MXS_PAD_8MA | MXS_PAD_PULLUP)
|
||||
#define MUX_CONFIG_EMI (MXS_PAD_3V3 | MXS_PAD_12MA | MXS_PAD_PULLUP)
|
||||
|
||||
const iomux_cfg_t iomux_setup[] = {
|
||||
/* DUART */
|
||||
|
@ -21,8 +21,7 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/imx25-pinmux.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/iomux-mx25.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <mmc.h>
|
||||
#include <fsl_esdhc.h>
|
||||
@ -31,8 +30,8 @@
|
||||
#include <fsl_pmic.h>
|
||||
#include <mc34704.h>
|
||||
|
||||
#define FEC_RESET_B IMX_GPIO_NR(2, 3)
|
||||
#define FEC_ENABLE_B IMX_GPIO_NR(4, 8)
|
||||
#define FEC_RESET_B IMX_GPIO_NR(4, 8)
|
||||
#define FEC_ENABLE_B IMX_GPIO_NR(2, 3)
|
||||
#define CARD_DETECT IMX_GPIO_NR(2, 1)
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
@ -43,29 +42,42 @@ struct fsl_esdhc_cfg esdhc_cfg[1] = {
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* FIXME: need to revisit this
|
||||
* The original code enabled PUE and 100-k pull-down without PKE, so the right
|
||||
* value here is likely:
|
||||
* 0 for no pull
|
||||
* or:
|
||||
* PAD_CTL_PUS_100K_DOWN for 100-k pull-down
|
||||
*/
|
||||
#define FEC_OUT_PAD_CTRL 0
|
||||
|
||||
#define I2C_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_ODE)
|
||||
|
||||
static void mx25pdk_fec_init(void)
|
||||
{
|
||||
struct iomuxc_mux_ctl *muxctl;
|
||||
struct iomuxc_pad_ctl *padctl;
|
||||
u32 gpio_mux_mode = MX25_PIN_MUX_MODE(5);
|
||||
u32 gpio_mux_mode0_sion = MX25_PIN_MUX_MODE(0) | MX25_PIN_MUX_SION;
|
||||
static const iomux_v3_cfg_t fec_pads[] = {
|
||||
MX25_PAD_FEC_TX_CLK__FEC_TX_CLK,
|
||||
MX25_PAD_FEC_RX_DV__FEC_RX_DV,
|
||||
MX25_PAD_FEC_RDATA0__FEC_RDATA0,
|
||||
NEW_PAD_CTRL(MX25_PAD_FEC_TDATA0__FEC_TDATA0, FEC_OUT_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_FEC_TX_EN__FEC_TX_EN, FEC_OUT_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_FEC_MDC__FEC_MDC, FEC_OUT_PAD_CTRL),
|
||||
MX25_PAD_FEC_MDIO__FEC_MDIO,
|
||||
MX25_PAD_FEC_RDATA1__FEC_RDATA1,
|
||||
NEW_PAD_CTRL(MX25_PAD_FEC_TDATA1__FEC_TDATA1, FEC_OUT_PAD_CTRL),
|
||||
|
||||
/* FEC pin init is generic */
|
||||
mx25_fec_init_pins();
|
||||
NEW_PAD_CTRL(MX25_PAD_D12__GPIO_4_8, 0), /* FEC_RESET_B */
|
||||
NEW_PAD_CTRL(MX25_PAD_A17__GPIO_2_3, 0), /* FEC_ENABLE_B */
|
||||
};
|
||||
|
||||
muxctl = (struct iomuxc_mux_ctl *)IMX_IOPADMUX_BASE;
|
||||
padctl = (struct iomuxc_pad_ctl *)IMX_IOPADCTL_BASE;
|
||||
/*
|
||||
* Set up FEC_RESET_B and FEC_ENABLE_B
|
||||
*
|
||||
* FEC_RESET_B: gpio2_3 is ALT 5 mode of pin D12
|
||||
* FEC_ENABLE_B: gpio4_8 is ALT 5 mode of pin A17
|
||||
*/
|
||||
writel(gpio_mux_mode, &muxctl->pad_d12);
|
||||
writel(gpio_mux_mode, &muxctl->pad_a17);
|
||||
static const iomux_v3_cfg_t i2c_pads[] = {
|
||||
NEW_PAD_CTRL(MX25_PAD_I2C1_CLK__I2C1_CLK, I2C_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_I2C1_DAT__I2C1_DAT, I2C_PAD_CTRL),
|
||||
};
|
||||
|
||||
writel(0x0, &padctl->pad_d12);
|
||||
writel(0x0, &padctl->pad_a17);
|
||||
imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
|
||||
|
||||
/* Assert RESET and ENABLE low */
|
||||
gpio_direction_output(FEC_RESET_B, 0);
|
||||
@ -78,10 +90,7 @@ static void mx25pdk_fec_init(void)
|
||||
gpio_set_value(FEC_ENABLE_B, 1);
|
||||
|
||||
/* Setup I2C pins so that PMIC can turn on PHY supply */
|
||||
writel(gpio_mux_mode0_sion, &muxctl->pad_i2c1_clk);
|
||||
writel(gpio_mux_mode0_sion, &muxctl->pad_i2c1_dat);
|
||||
writel(0x1E8, &padctl->pad_i2c1_clk);
|
||||
writel(0x1E8, &padctl->pad_i2c1_dat);
|
||||
imx_iomux_v3_setup_multiple_pads(i2c_pads, ARRAY_SIZE(i2c_pads));
|
||||
}
|
||||
|
||||
int dram_init(void)
|
||||
@ -92,9 +101,35 @@ int dram_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set up input pins with hysteresis and 100-k pull-ups
|
||||
*/
|
||||
#define UART1_IN_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_100K_UP)
|
||||
/*
|
||||
* FIXME: need to revisit this
|
||||
* The original code enabled PUE and 100-k pull-down without PKE, so the right
|
||||
* value here is likely:
|
||||
* 0 for no pull
|
||||
* or:
|
||||
* PAD_CTL_PUS_100K_DOWN for 100-k pull-down
|
||||
*/
|
||||
#define UART1_OUT_PAD_CTRL 0
|
||||
|
||||
static void mx25pdk_uart1_init(void)
|
||||
{
|
||||
static const iomux_v3_cfg_t uart1_pads[] = {
|
||||
NEW_PAD_CTRL(MX25_PAD_UART1_RXD__UART1_RXD, UART1_IN_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_UART1_TXD__UART1_TXD, UART1_OUT_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_UART1_RTS__UART1_RTS, UART1_OUT_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_UART1_CTS__UART1_CTS, UART1_IN_PAD_CTRL),
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
|
||||
}
|
||||
|
||||
int board_early_init_f(void)
|
||||
{
|
||||
mx25_uart1_init_pins();
|
||||
mx25pdk_uart1_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -131,21 +166,8 @@ int board_late_init(void)
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
int board_mmc_getcd(struct mmc *mmc)
|
||||
{
|
||||
struct iomuxc_mux_ctl *muxctl;
|
||||
struct iomuxc_pad_ctl *padctl;
|
||||
u32 gpio_mux_mode = MX25_PIN_MUX_MODE(5);
|
||||
|
||||
/*
|
||||
* Set up the Card Detect pin.
|
||||
*
|
||||
* SD1_GPIO_CD: gpio2_1 is ALT 5 mode of pin A15
|
||||
*
|
||||
*/
|
||||
muxctl = (struct iomuxc_mux_ctl *)IMX_IOPADMUX_BASE;
|
||||
padctl = (struct iomuxc_pad_ctl *)IMX_IOPADCTL_BASE;
|
||||
|
||||
writel(gpio_mux_mode, &muxctl->pad_a15);
|
||||
writel(0x0, &padctl->pad_a15);
|
||||
/* Set up the Card Detect pin. */
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX25_PAD_A15__GPIO_2_1, 0));
|
||||
|
||||
gpio_direction_input(CARD_DETECT);
|
||||
return !gpio_get_value(CARD_DETECT);
|
||||
@ -153,16 +175,16 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
struct iomuxc_mux_ctl *muxctl;
|
||||
u32 sdhc1_mux_mode = MX25_PIN_MUX_MODE(0) | MX25_PIN_MUX_SION;
|
||||
static const iomux_v3_cfg_t sdhc1_pads[] = {
|
||||
NEW_PAD_CTRL(MX25_PAD_SD1_CMD__SD1_CMD, NO_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_SD1_CLK__SD1_CLK, NO_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_SD1_DATA0__SD1_DATA0, NO_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_SD1_DATA1__SD1_DATA1, NO_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_SD1_DATA2__SD1_DATA2, NO_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX25_PAD_SD1_DATA3__SD1_DATA3, NO_PAD_CTRL),
|
||||
};
|
||||
|
||||
muxctl = (struct iomuxc_mux_ctl *)IMX_IOPADMUX_BASE;
|
||||
writel(sdhc1_mux_mode, &muxctl->pad_sd1_cmd);
|
||||
writel(sdhc1_mux_mode, &muxctl->pad_sd1_clk);
|
||||
writel(sdhc1_mux_mode, &muxctl->pad_sd1_data0);
|
||||
writel(sdhc1_mux_mode, &muxctl->pad_sd1_data1);
|
||||
writel(sdhc1_mux_mode, &muxctl->pad_sd1_data2);
|
||||
writel(sdhc1_mux_mode, &muxctl->pad_sd1_data3);
|
||||
imx_iomux_v3_setup_multiple_pads(sdhc1_pads, ARRAY_SIZE(sdhc1_pads));
|
||||
|
||||
esdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC1_CLK);
|
||||
return fsl_esdhc_initialize(bis, &esdhc_cfg[0]);
|
||||
|
@ -28,8 +28,7 @@
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/mx35_pins.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/iomux-mx35.h>
|
||||
#include <i2c.h>
|
||||
#include <power/pmic.h>
|
||||
#include <fsl_pmic.h>
|
||||
@ -73,114 +72,88 @@ void dram_init_banksize(void)
|
||||
gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
|
||||
}
|
||||
|
||||
#define I2C_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN | PAD_CTL_ODE)
|
||||
|
||||
static void setup_iomux_i2c(void)
|
||||
{
|
||||
int pad;
|
||||
static const iomux_v3_cfg_t i2c1_pads[] = {
|
||||
NEW_PAD_CTRL(MX35_PAD_I2C1_CLK__I2C1_SCL, I2C_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX35_PAD_I2C1_DAT__I2C1_SDA, I2C_PAD_CTRL),
|
||||
};
|
||||
|
||||
/* setup pins for I2C1 */
|
||||
mxc_request_iomux(MX35_PIN_I2C1_CLK, MUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX35_PIN_I2C1_DAT, MUX_CONFIG_SION);
|
||||
|
||||
pad = (PAD_CTL_HYS_SCHMITZ | PAD_CTL_PKE_ENABLE \
|
||||
| PAD_CTL_PUE_PUD | PAD_CTL_ODE_OpenDrain);
|
||||
|
||||
mxc_iomux_set_pad(MX35_PIN_I2C1_CLK, pad);
|
||||
mxc_iomux_set_pad(MX35_PIN_I2C1_DAT, pad);
|
||||
imx_iomux_v3_setup_multiple_pads(i2c1_pads, ARRAY_SIZE(i2c1_pads));
|
||||
}
|
||||
|
||||
|
||||
static void setup_iomux_spi(void)
|
||||
{
|
||||
mxc_request_iomux(MX35_PIN_CSPI1_MOSI, MUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX35_PIN_CSPI1_MISO, MUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX35_PIN_CSPI1_SS0, MUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX35_PIN_CSPI1_SS1, MUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX35_PIN_CSPI1_SCLK, MUX_CONFIG_SION);
|
||||
static const iomux_v3_cfg_t spi_pads[] = {
|
||||
MX35_PAD_CSPI1_MOSI__CSPI1_MOSI,
|
||||
MX35_PAD_CSPI1_MISO__CSPI1_MISO,
|
||||
MX35_PAD_CSPI1_SS0__CSPI1_SS0,
|
||||
MX35_PAD_CSPI1_SS1__CSPI1_SS1,
|
||||
MX35_PAD_CSPI1_SCLK__CSPI1_SCLK,
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(spi_pads, ARRAY_SIZE(spi_pads));
|
||||
}
|
||||
|
||||
#define USBOTG_IN_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN | \
|
||||
PAD_CTL_DSE_LOW | PAD_CTL_SRE_SLOW)
|
||||
#define USBOTG_OUT_PAD_CTRL (PAD_CTL_DSE_LOW | PAD_CTL_SRE_SLOW)
|
||||
|
||||
static void setup_iomux_usbotg(void)
|
||||
{
|
||||
int in_pad, out_pad;
|
||||
static const iomux_v3_cfg_t usbotg_pads[] = {
|
||||
NEW_PAD_CTRL(MX35_PAD_USBOTG_PWR__USB_TOP_USBOTG_PWR,
|
||||
USBOTG_OUT_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX35_PAD_USBOTG_OC__USB_TOP_USBOTG_OC,
|
||||
USBOTG_IN_PAD_CTRL),
|
||||
};
|
||||
|
||||
/* Set up pins for USBOTG. */
|
||||
mxc_request_iomux(MX35_PIN_USBOTG_PWR,
|
||||
MUX_CONFIG_SION | MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_USBOTG_OC,
|
||||
MUX_CONFIG_SION | MUX_CONFIG_FUNC);
|
||||
|
||||
in_pad = PAD_CTL_DRV_3_3V | PAD_CTL_HYS_SCHMITZ | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_PUE_PUD | PAD_CTL_100K_PD | PAD_CTL_ODE_CMOS |
|
||||
PAD_CTL_DRV_NORMAL | PAD_CTL_SRE_SLOW;
|
||||
out_pad = PAD_CTL_DRV_3_3V | PAD_CTL_HYS_CMOS | PAD_CTL_PKE_NONE |
|
||||
PAD_CTL_ODE_CMOS | PAD_CTL_DRV_NORMAL | PAD_CTL_SRE_SLOW;
|
||||
|
||||
mxc_iomux_set_pad(MX35_PIN_USBOTG_PWR, out_pad);
|
||||
mxc_iomux_set_pad(MX35_PIN_USBOTG_OC, in_pad);
|
||||
imx_iomux_v3_setup_multiple_pads(usbotg_pads, ARRAY_SIZE(usbotg_pads));
|
||||
}
|
||||
|
||||
#define FEC_PAD_CTRL (PAD_CTL_DSE_LOW | PAD_CTL_SRE_SLOW)
|
||||
|
||||
static void setup_iomux_fec(void)
|
||||
{
|
||||
int pad;
|
||||
static const iomux_v3_cfg_t fec_pads[] = {
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_TX_CLK__FEC_TX_CLK, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_RX_CLK__FEC_RX_CLK, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_RX_DV__FEC_RX_DV, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_COL__FEC_COL, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_RDATA0__FEC_RDATA_0, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_TDATA0__FEC_TDATA_0, FEC_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_TX_EN__FEC_TX_EN, FEC_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_MDC__FEC_MDC, FEC_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_MDIO__FEC_MDIO, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_22K_UP),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_TX_ERR__FEC_TX_ERR, FEC_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_RX_ERR__FEC_RX_ERR, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_CRS__FEC_CRS, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_RDATA1__FEC_RDATA_1, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_TDATA1__FEC_TDATA_1, FEC_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_RDATA2__FEC_RDATA_2, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_TDATA2__FEC_TDATA_2, FEC_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_RDATA3__FEC_RDATA_3, FEC_PAD_CTRL |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN),
|
||||
NEW_PAD_CTRL(MX35_PAD_FEC_TDATA3__FEC_TDATA_3, FEC_PAD_CTRL),
|
||||
};
|
||||
|
||||
/* setup pins for FEC */
|
||||
mxc_request_iomux(MX35_PIN_FEC_TX_CLK, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RX_CLK, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RX_DV, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_COL, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RDATA0, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TDATA0, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TX_EN, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_MDC, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_MDIO, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TX_ERR, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RX_ERR, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_CRS, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RDATA1, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TDATA1, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RDATA2, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TDATA2, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_RDATA3, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_FEC_TDATA3, MUX_CONFIG_FUNC);
|
||||
|
||||
pad = (PAD_CTL_DRV_3_3V | PAD_CTL_PUE_PUD | PAD_CTL_ODE_CMOS | \
|
||||
PAD_CTL_DRV_NORMAL | PAD_CTL_SRE_SLOW);
|
||||
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_TX_CLK, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_RX_CLK, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_RX_DV, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_COL, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_RDATA0, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_TDATA0, pad | PAD_CTL_HYS_CMOS | \
|
||||
PAD_CTL_PKE_NONE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_TX_EN, pad | PAD_CTL_HYS_CMOS | \
|
||||
PAD_CTL_PKE_NONE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_MDC, pad | PAD_CTL_HYS_CMOS | \
|
||||
PAD_CTL_PKE_NONE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_MDIO, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_22K_PU);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_TX_ERR, pad | PAD_CTL_HYS_CMOS | \
|
||||
PAD_CTL_PKE_NONE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_RX_ERR, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_CRS, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_RDATA1, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_TDATA1, pad | PAD_CTL_HYS_CMOS | \
|
||||
PAD_CTL_PKE_NONE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_RDATA2, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_TDATA2, pad | PAD_CTL_HYS_CMOS | \
|
||||
PAD_CTL_PKE_NONE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_RDATA3, pad | PAD_CTL_HYS_SCHMITZ | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_100K_PD);
|
||||
mxc_iomux_set_pad(MX35_PIN_FEC_TDATA3, pad | PAD_CTL_HYS_CMOS | \
|
||||
PAD_CTL_PKE_NONE | PAD_CTL_100K_PD);
|
||||
imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
|
||||
}
|
||||
|
||||
int board_early_init_f(void)
|
||||
@ -262,8 +235,7 @@ int board_late_init(void)
|
||||
|
||||
if (pmic_detect()) {
|
||||
p = pmic_get("FSL_PMIC");
|
||||
mxc_request_iomux(MX35_PIN_WATCHDOG_RST, MUX_CONFIG_SION |
|
||||
MUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(MX35_PAD_WDOG_RST__WDOG_WDOG_B);
|
||||
|
||||
pmic_reg_read(p, REG_SETTING_0, &pmic_val);
|
||||
pmic_reg_write(p, REG_SETTING_0,
|
||||
@ -271,10 +243,9 @@ int board_late_init(void)
|
||||
pmic_reg_read(p, REG_MODE_0, &pmic_val);
|
||||
pmic_reg_write(p, REG_MODE_0, pmic_val | VGEN3EN);
|
||||
|
||||
mxc_request_iomux(MX35_PIN_COMPARE, MUX_CONFIG_GPIO);
|
||||
mxc_iomux_set_input(MUX_IN_GPIO1_IN_5, INPUT_CTL_PATH0);
|
||||
imx_iomux_v3_setup_pad(MX35_PAD_COMPARE__GPIO1_5);
|
||||
|
||||
gpio_direction_output(IMX_GPIO_NR(2, 5), 1);
|
||||
gpio_direction_output(IMX_GPIO_NR(1, 5), 1);
|
||||
}
|
||||
|
||||
val = mc9sdz60_reg_read(MC9SDZ60_REG_GPIO_1) | 0x04;
|
||||
@ -312,13 +283,17 @@ struct fsl_esdhc_cfg esdhc_cfg = {MMC_SDHC1_BASE_ADDR};
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
static const iomux_v3_cfg_t sdhc1_pads[] = {
|
||||
MX35_PAD_SD1_CMD__ESDHC1_CMD,
|
||||
MX35_PAD_SD1_CLK__ESDHC1_CLK,
|
||||
MX35_PAD_SD1_DATA0__ESDHC1_DAT0,
|
||||
MX35_PAD_SD1_DATA1__ESDHC1_DAT1,
|
||||
MX35_PAD_SD1_DATA2__ESDHC1_DAT2,
|
||||
MX35_PAD_SD1_DATA3__ESDHC1_DAT3,
|
||||
};
|
||||
|
||||
/* configure pins for SDHC1 only */
|
||||
mxc_request_iomux(MX35_PIN_SD1_CMD, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_SD1_CLK, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_SD1_DATA0, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_SD1_DATA1, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_SD1_DATA2, MUX_CONFIG_FUNC);
|
||||
mxc_request_iomux(MX35_PIN_SD1_DATA3, MUX_CONFIG_FUNC);
|
||||
imx_iomux_v3_setup_multiple_pads(sdhc1_pads, ARRAY_SIZE(sdhc1_pads));
|
||||
|
||||
esdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC1_CLK);
|
||||
return fsl_esdhc_initialize(bis, &esdhc_cfg);
|
||||
|
@ -24,8 +24,7 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/mx5x_pins.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/iomux-mx51.h>
|
||||
#include <asm/errno.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
@ -64,160 +63,103 @@ u32 get_board_rev(void)
|
||||
return rev;
|
||||
}
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN | PAD_CTL_DSE_HIGH)
|
||||
|
||||
static void setup_iomux_uart(void)
|
||||
{
|
||||
unsigned int pad = PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_DRV_HIGH;
|
||||
static const iomux_v3_cfg_t uart_pads[] = {
|
||||
MX51_PAD_UART1_RXD__UART1_RXD,
|
||||
MX51_PAD_UART1_TXD__UART1_TXD,
|
||||
NEW_PAD_CTRL(MX51_PAD_UART1_RTS__UART1_RTS, UART_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX51_PAD_UART1_CTS__UART1_CTS, UART_PAD_CTRL),
|
||||
};
|
||||
|
||||
mxc_request_iomux(MX51_PIN_UART1_RXD, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_UART1_RXD, pad | PAD_CTL_SRE_FAST);
|
||||
mxc_request_iomux(MX51_PIN_UART1_TXD, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_UART1_TXD, pad | PAD_CTL_SRE_FAST);
|
||||
mxc_request_iomux(MX51_PIN_UART1_RTS, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_UART1_RTS, pad);
|
||||
mxc_request_iomux(MX51_PIN_UART1_CTS, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_UART1_CTS, pad);
|
||||
imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
|
||||
}
|
||||
|
||||
static void setup_iomux_fec(void)
|
||||
{
|
||||
/*FEC_MDIO*/
|
||||
mxc_request_iomux(MX51_PIN_EIM_EB2 , IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX51_PIN_EIM_EB2 , 0x1FD);
|
||||
static const iomux_v3_cfg_t fec_pads[] = {
|
||||
NEW_PAD_CTRL(MX51_PAD_EIM_EB2__FEC_MDIO, PAD_CTL_HYS |
|
||||
PAD_CTL_PUS_22K_UP | PAD_CTL_ODE |
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST),
|
||||
MX51_PAD_NANDF_CS3__FEC_MDC,
|
||||
NEW_PAD_CTRL(MX51_PAD_EIM_CS3__FEC_RDATA3, MX51_PAD_CTRL_2),
|
||||
NEW_PAD_CTRL(MX51_PAD_EIM_CS2__FEC_RDATA2, MX51_PAD_CTRL_2),
|
||||
NEW_PAD_CTRL(MX51_PAD_EIM_EB3__FEC_RDATA1, MX51_PAD_CTRL_2),
|
||||
MX51_PAD_NANDF_D9__FEC_RDATA0,
|
||||
MX51_PAD_NANDF_CS6__FEC_TDATA3,
|
||||
MX51_PAD_NANDF_CS5__FEC_TDATA2,
|
||||
MX51_PAD_NANDF_CS4__FEC_TDATA1,
|
||||
MX51_PAD_NANDF_D8__FEC_TDATA0,
|
||||
MX51_PAD_NANDF_CS7__FEC_TX_EN,
|
||||
MX51_PAD_NANDF_CS2__FEC_TX_ER,
|
||||
MX51_PAD_NANDF_RDY_INT__FEC_TX_CLK,
|
||||
NEW_PAD_CTRL(MX51_PAD_NANDF_RB2__FEC_COL, MX51_PAD_CTRL_4),
|
||||
NEW_PAD_CTRL(MX51_PAD_NANDF_RB3__FEC_RX_CLK, MX51_PAD_CTRL_4),
|
||||
MX51_PAD_EIM_CS5__FEC_CRS,
|
||||
MX51_PAD_EIM_CS4__FEC_RX_ER,
|
||||
NEW_PAD_CTRL(MX51_PAD_NANDF_D11__FEC_RX_DV, MX51_PAD_CTRL_4),
|
||||
};
|
||||
|
||||
/*FEC_MDC*/
|
||||
mxc_request_iomux(MX51_PIN_NANDF_CS3, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_CS3, 0x2004);
|
||||
|
||||
/* FEC RDATA[3] */
|
||||
mxc_request_iomux(MX51_PIN_EIM_CS3, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX51_PIN_EIM_CS3, 0x180);
|
||||
|
||||
/* FEC RDATA[2] */
|
||||
mxc_request_iomux(MX51_PIN_EIM_CS2, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX51_PIN_EIM_CS2, 0x180);
|
||||
|
||||
/* FEC RDATA[1] */
|
||||
mxc_request_iomux(MX51_PIN_EIM_EB3, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX51_PIN_EIM_EB3, 0x180);
|
||||
|
||||
/* FEC RDATA[0] */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_D9, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_D9, 0x2180);
|
||||
|
||||
/* FEC TDATA[3] */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_CS6, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_CS6, 0x2004);
|
||||
|
||||
/* FEC TDATA[2] */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_CS5, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_CS5, 0x2004);
|
||||
|
||||
/* FEC TDATA[1] */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_CS4, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_CS4, 0x2004);
|
||||
|
||||
/* FEC TDATA[0] */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_D8, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_D8, 0x2004);
|
||||
|
||||
/* FEC TX_EN */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_CS7, IOMUX_CONFIG_ALT1);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_CS7, 0x2004);
|
||||
|
||||
/* FEC TX_ER */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_CS2, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_CS2, 0x2004);
|
||||
|
||||
/* FEC TX_CLK */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_RDY_INT, IOMUX_CONFIG_ALT1);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_RDY_INT, 0x2180);
|
||||
|
||||
/* FEC TX_COL */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_RB2, IOMUX_CONFIG_ALT1);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_RB2, 0x2180);
|
||||
|
||||
/* FEC RX_CLK */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_RB3, IOMUX_CONFIG_ALT1);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_RB3, 0x2180);
|
||||
|
||||
/* FEC RX_CRS */
|
||||
mxc_request_iomux(MX51_PIN_EIM_CS5, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX51_PIN_EIM_CS5, 0x180);
|
||||
|
||||
/* FEC RX_ER */
|
||||
mxc_request_iomux(MX51_PIN_EIM_CS4, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX51_PIN_EIM_CS4, 0x180);
|
||||
|
||||
/* FEC RX_DV */
|
||||
mxc_request_iomux(MX51_PIN_NANDF_D11, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX51_PIN_NANDF_D11, 0x2180);
|
||||
imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MXC_SPI
|
||||
static void setup_iomux_spi(void)
|
||||
{
|
||||
/* 000: Select mux mode: ALT0 mux port: MOSI of instance: ecspi1 */
|
||||
mxc_request_iomux(MX51_PIN_CSPI1_MOSI, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_CSPI1_MOSI, 0x105);
|
||||
static const iomux_v3_cfg_t spi_pads[] = {
|
||||
NEW_PAD_CTRL(MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI, PAD_CTL_HYS |
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_CSPI1_MISO__ECSPI1_MISO, PAD_CTL_HYS |
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_CSPI1_SS1__ECSPI1_SS1,
|
||||
MX51_GPIO_PAD_CTRL),
|
||||
MX51_PAD_CSPI1_SS0__ECSPI1_SS0,
|
||||
NEW_PAD_CTRL(MX51_PAD_CSPI1_RDY__ECSPI1_RDY, MX51_PAD_CTRL_2),
|
||||
NEW_PAD_CTRL(MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK, PAD_CTL_HYS |
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST),
|
||||
};
|
||||
|
||||
/* 000: Select mux mode: ALT0 mux port: MISO of instance: ecspi1. */
|
||||
mxc_request_iomux(MX51_PIN_CSPI1_MISO, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_CSPI1_MISO, 0x105);
|
||||
|
||||
/* de-select SS1 of instance: ecspi1. */
|
||||
mxc_request_iomux(MX51_PIN_CSPI1_SS1, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX51_PIN_CSPI1_SS1, 0x85);
|
||||
|
||||
/* 000: Select mux mode: ALT0 mux port: SS0 ecspi1 */
|
||||
mxc_request_iomux(MX51_PIN_CSPI1_SS0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_CSPI1_SS0, 0x185);
|
||||
|
||||
/* 000: Select mux mode: ALT0 mux port: RDY of instance: ecspi1. */
|
||||
mxc_request_iomux(MX51_PIN_CSPI1_RDY, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_CSPI1_RDY, 0x180);
|
||||
|
||||
/* 000: Select mux mode: ALT0 mux port: SCLK of instance: ecspi1. */
|
||||
mxc_request_iomux(MX51_PIN_CSPI1_SCLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_CSPI1_SCLK, 0x105);
|
||||
imx_iomux_v3_setup_multiple_pads(spi_pads, ARRAY_SIZE(spi_pads));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_USB_EHCI_MX5
|
||||
#define MX51EVK_USBH1_HUB_RST IOMUX_TO_GPIO(MX51_PIN_GPIO1_7) /* GPIO1_7 */
|
||||
#define MX51EVK_USBH1_STP IOMUX_TO_GPIO(MX51_PIN_USBH1_STP) /* GPIO1_27 */
|
||||
#define MX51EVK_USB_CLK_EN_B IOMUX_TO_GPIO(MX51_PIN_EIM_D18) /* GPIO2_1 */
|
||||
#define MX51EVK_USB_PHY_RESET IOMUX_TO_GPIO(MX51_PIN_EIM_D21) /* GPIO2_5 */
|
||||
|
||||
#define USBH1_PAD (PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH | \
|
||||
PAD_CTL_100K_PU | PAD_CTL_PUE_PULL | \
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_HYS_ENABLE)
|
||||
#define GPIO_PAD (PAD_CTL_DRV_HIGH | PAD_CTL_PKE_ENABLE | \
|
||||
PAD_CTL_SRE_FAST)
|
||||
#define NO_PAD (1 << 16)
|
||||
#define MX51EVK_USBH1_HUB_RST IMX_GPIO_NR(1, 7)
|
||||
#define MX51EVK_USBH1_STP IMX_GPIO_NR(1, 27)
|
||||
#define MX51EVK_USB_CLK_EN_B IMX_GPIO_NR(2, 2)
|
||||
#define MX51EVK_USB_PHY_RESET IMX_GPIO_NR(2, 5)
|
||||
|
||||
static void setup_usb_h1(void)
|
||||
{
|
||||
setup_iomux_usb_h1();
|
||||
static const iomux_v3_cfg_t usb_h1_pads[] = {
|
||||
MX51_PAD_USBH1_CLK__USBH1_CLK,
|
||||
MX51_PAD_USBH1_DIR__USBH1_DIR,
|
||||
MX51_PAD_USBH1_STP__USBH1_STP,
|
||||
MX51_PAD_USBH1_NXT__USBH1_NXT,
|
||||
MX51_PAD_USBH1_DATA0__USBH1_DATA0,
|
||||
MX51_PAD_USBH1_DATA1__USBH1_DATA1,
|
||||
MX51_PAD_USBH1_DATA2__USBH1_DATA2,
|
||||
MX51_PAD_USBH1_DATA3__USBH1_DATA3,
|
||||
MX51_PAD_USBH1_DATA4__USBH1_DATA4,
|
||||
MX51_PAD_USBH1_DATA5__USBH1_DATA5,
|
||||
MX51_PAD_USBH1_DATA6__USBH1_DATA6,
|
||||
MX51_PAD_USBH1_DATA7__USBH1_DATA7,
|
||||
|
||||
/* GPIO_1_7 for USBH1 hub reset */
|
||||
mxc_request_iomux(MX51_PIN_GPIO1_7, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_GPIO1_7, NO_PAD);
|
||||
NEW_PAD_CTRL(MX51_PAD_GPIO1_7__GPIO1_7, 0), /* H1 hub reset */
|
||||
MX51_PAD_EIM_D17__GPIO2_1,
|
||||
MX51_PAD_EIM_D21__GPIO2_5, /* PHY reset */
|
||||
};
|
||||
|
||||
/* GPIO_2_1 */
|
||||
mxc_request_iomux(MX51_PIN_EIM_D17, IOMUX_CONFIG_ALT1);
|
||||
mxc_iomux_set_pad(MX51_PIN_EIM_D17, GPIO_PAD);
|
||||
|
||||
/* GPIO_2_5 for USB PHY reset */
|
||||
mxc_request_iomux(MX51_PIN_EIM_D21, IOMUX_CONFIG_ALT1);
|
||||
mxc_iomux_set_pad(MX51_PIN_EIM_D21, GPIO_PAD);
|
||||
imx_iomux_v3_setup_multiple_pads(usb_h1_pads, ARRAY_SIZE(usb_h1_pads));
|
||||
}
|
||||
|
||||
int board_ehci_hcd_init(int port)
|
||||
{
|
||||
/* Set USBH1_STP to GPIO and toggle it */
|
||||
mxc_request_iomux(MX51_PIN_USBH1_STP, IOMUX_CONFIG_GPIO);
|
||||
mxc_iomux_set_pad(MX51_PIN_USBH1_STP, USBH1_PAD);
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX51_PAD_USBH1_STP__GPIO1_27,
|
||||
MX51_USBH_PAD_CTRL));
|
||||
|
||||
gpio_direction_output(MX51EVK_USBH1_STP, 0);
|
||||
gpio_direction_output(MX51EVK_USB_PHY_RESET, 0);
|
||||
@ -225,8 +167,7 @@ int board_ehci_hcd_init(int port)
|
||||
gpio_set_value(MX51EVK_USBH1_STP, 1);
|
||||
|
||||
/* Set back USBH1_STP to be function */
|
||||
mxc_request_iomux(MX51_PIN_USBH1_STP, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_USBH1_STP, USBH1_PAD);
|
||||
imx_iomux_v3_setup_pad(MX51_PAD_USBH1_STP__USBH1_STP);
|
||||
|
||||
/* De-assert USB PHY RESETB */
|
||||
gpio_set_value(MX51EVK_USB_PHY_RESET, 1);
|
||||
@ -328,7 +269,8 @@ static void power_init(void)
|
||||
VVIDEOEN | VAUDIOEN | VSDEN;
|
||||
pmic_reg_write(p, REG_MODE_1, val);
|
||||
|
||||
mxc_request_iomux(MX51_PIN_EIM_A20, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX51_PAD_EIM_A20__GPIO2_14,
|
||||
NO_PAD_CTRL));
|
||||
gpio_direction_output(IMX_GPIO_NR(2, 14), 0);
|
||||
|
||||
udelay(500);
|
||||
@ -342,9 +284,11 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
|
||||
int ret;
|
||||
|
||||
mxc_request_iomux(MX51_PIN_GPIO1_0, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX51_PAD_GPIO1_0__GPIO1_0,
|
||||
NO_PAD_CTRL));
|
||||
gpio_direction_input(IMX_GPIO_NR(1, 0));
|
||||
mxc_request_iomux(MX51_PIN_GPIO1_6, IOMUX_CONFIG_ALT0);
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX51_PAD_GPIO1_6__GPIO1_6,
|
||||
NO_PAD_CTRL));
|
||||
gpio_direction_input(IMX_GPIO_NR(1, 6));
|
||||
|
||||
if (cfg->esdhc_base == MMC_SDHC1_BASE_ADDR)
|
||||
@ -357,6 +301,40 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
static const iomux_v3_cfg_t sd1_pads[] = {
|
||||
NEW_PAD_CTRL(MX51_PAD_SD1_CMD__SD1_CMD, PAD_CTL_DSE_MAX |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_SD1_CLK__SD1_CLK, PAD_CTL_DSE_MAX |
|
||||
PAD_CTL_PUS_47K_UP | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_SD1_DATA0__SD1_DATA0, PAD_CTL_DSE_MAX |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_SD1_DATA1__SD1_DATA1, PAD_CTL_DSE_MAX |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_SD1_DATA2__SD1_DATA2, PAD_CTL_DSE_MAX |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_SD1_DATA3__SD1_DATA3, PAD_CTL_DSE_MAX |
|
||||
PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_GPIO1_0__SD1_CD, PAD_CTL_HYS),
|
||||
NEW_PAD_CTRL(MX51_PAD_GPIO1_1__SD1_WP, PAD_CTL_HYS),
|
||||
};
|
||||
|
||||
static const iomux_v3_cfg_t sd2_pads[] = {
|
||||
NEW_PAD_CTRL(MX51_PAD_SD2_CMD__SD2_CMD,
|
||||
PAD_CTL_DSE_MAX | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_SD2_CLK__SD2_CLK,
|
||||
PAD_CTL_DSE_MAX | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_SD2_DATA0__SD2_DATA0,
|
||||
PAD_CTL_DSE_MAX | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_SD2_DATA1__SD2_DATA1,
|
||||
PAD_CTL_DSE_MAX | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_SD2_DATA2__SD2_DATA2,
|
||||
PAD_CTL_DSE_MAX | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_SD2_DATA3__SD2_DATA3,
|
||||
PAD_CTL_DSE_MAX | PAD_CTL_SRE_FAST),
|
||||
NEW_PAD_CTRL(MX51_PAD_GPIO1_6__GPIO1_6, PAD_CTL_HYS),
|
||||
NEW_PAD_CTRL(MX51_PAD_GPIO1_5__GPIO1_5, PAD_CTL_HYS),
|
||||
};
|
||||
|
||||
u32 index;
|
||||
s32 status = 0;
|
||||
|
||||
@ -367,98 +345,12 @@ int board_mmc_init(bd_t *bis)
|
||||
index++) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
mxc_request_iomux(MX51_PIN_SD1_CMD,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX51_PIN_SD1_CLK,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX51_PIN_SD1_DATA0,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX51_PIN_SD1_DATA1,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX51_PIN_SD1_DATA2,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX51_PIN_SD1_DATA3,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD1_CMD,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_DRV_VOT_HIGH |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU |
|
||||
PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_SRE_FAST);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD1_CLK,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_DRV_VOT_HIGH |
|
||||
PAD_CTL_HYS_NONE | PAD_CTL_47K_PU |
|
||||
PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_SRE_FAST);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD1_DATA0,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_DRV_VOT_HIGH |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU |
|
||||
PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_SRE_FAST);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD1_DATA1,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_DRV_VOT_HIGH |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU |
|
||||
PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_SRE_FAST);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD1_DATA2,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_DRV_VOT_HIGH |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU |
|
||||
PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_SRE_FAST);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD1_DATA3,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_DRV_VOT_HIGH |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PD |
|
||||
PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_SRE_FAST);
|
||||
mxc_request_iomux(MX51_PIN_GPIO1_0,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_pad(MX51_PIN_GPIO1_0,
|
||||
PAD_CTL_HYS_ENABLE);
|
||||
mxc_request_iomux(MX51_PIN_GPIO1_1,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_pad(MX51_PIN_GPIO1_1,
|
||||
PAD_CTL_HYS_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(sd1_pads,
|
||||
ARRAY_SIZE(sd1_pads));
|
||||
break;
|
||||
case 1:
|
||||
mxc_request_iomux(MX51_PIN_SD2_CMD,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX51_PIN_SD2_CLK,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX51_PIN_SD2_DATA0,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX51_PIN_SD2_DATA1,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX51_PIN_SD2_DATA2,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX51_PIN_SD2_DATA3,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD2_CMD,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_22K_PU |
|
||||
PAD_CTL_SRE_FAST);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD2_CLK,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_22K_PU |
|
||||
PAD_CTL_SRE_FAST);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD2_DATA0,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_22K_PU |
|
||||
PAD_CTL_SRE_FAST);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD2_DATA1,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_22K_PU |
|
||||
PAD_CTL_SRE_FAST);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD2_DATA2,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_22K_PU |
|
||||
PAD_CTL_SRE_FAST);
|
||||
mxc_iomux_set_pad(MX51_PIN_SD2_DATA3,
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_22K_PU |
|
||||
PAD_CTL_SRE_FAST);
|
||||
mxc_request_iomux(MX51_PIN_SD2_CMD,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX51_PIN_GPIO1_6,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_pad(MX51_PIN_GPIO1_6,
|
||||
PAD_CTL_HYS_ENABLE);
|
||||
mxc_request_iomux(MX51_PIN_GPIO1_5,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_pad(MX51_PIN_GPIO1_5,
|
||||
PAD_CTL_HYS_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(sd2_pads,
|
||||
ARRAY_SIZE(sd2_pads));
|
||||
break;
|
||||
default:
|
||||
printf("Warning: you configured more ESDHC controller"
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <common.h>
|
||||
#include <linux/list.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/iomux-mx51.h>
|
||||
#include <linux/fb.h>
|
||||
#include <ipu_pixfmt.h>
|
||||
|
||||
@ -67,25 +67,25 @@ static struct fb_videomode const dvi = {
|
||||
void setup_iomux_lcd(void)
|
||||
{
|
||||
/* DI2_PIN15 */
|
||||
mxc_request_iomux(MX51_PIN_DI_GP4, IOMUX_CONFIG_ALT4);
|
||||
imx_iomux_v3_setup_pad(MX51_PAD_DI_GP4__DI2_PIN15);
|
||||
|
||||
/* Pad settings for MX51_PIN_DI2_DISP_CLK */
|
||||
mxc_iomux_set_pad(MX51_PIN_DI2_DISP_CLK, PAD_CTL_HYS_NONE |
|
||||
PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER |
|
||||
PAD_CTL_DRV_MAX | PAD_CTL_SRE_SLOW);
|
||||
/* Pad settings for DI2_DISP_CLK */
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_MAX | PAD_CTL_SRE_SLOW));
|
||||
|
||||
/* Turn on 3.3V voltage for LCD */
|
||||
mxc_request_iomux(MX51_PIN_CSI2_D12, IOMUX_CONFIG_ALT3);
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX51_PAD_CSI2_D12__GPIO4_9,
|
||||
NO_PAD_CTRL));
|
||||
gpio_direction_output(MX51EVK_LCD_3V3, 1);
|
||||
|
||||
/* Turn on 5V voltage for LCD */
|
||||
mxc_request_iomux(MX51_PIN_CSI2_D13, IOMUX_CONFIG_ALT3);
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX51_PAD_CSI2_D13__GPIO4_10,
|
||||
NO_PAD_CTRL));
|
||||
gpio_direction_output(MX51EVK_LCD_5V, 1);
|
||||
|
||||
/* Turn on GPIO backlight */
|
||||
mxc_request_iomux(MX51_PIN_DI1_D1_CS, IOMUX_CONFIG_ALT4);
|
||||
mxc_iomux_set_input(MX51_GPIO3_IPP_IND_G_IN_4_SELECT_INPUT,
|
||||
INPUT_CTL_PATH1);
|
||||
imx_iomux_v3_setup_pad(NEW_PAD_CTRL(MX51_PAD_DI1_D1_CS__GPIO3_4,
|
||||
NO_PAD_CTRL));
|
||||
gpio_direction_output(MX51EVK_LCD_BACKLIGHT, 1);
|
||||
}
|
||||
|
||||
|
@ -23,11 +23,10 @@
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/mx5x_pins.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/iomux-mx53.h>
|
||||
#include <asm/errno.h>
|
||||
#include <netdev.h>
|
||||
#include <mmc.h>
|
||||
@ -61,9 +60,42 @@ void dram_init_banksize(void)
|
||||
#ifdef CONFIG_NAND_MXC
|
||||
static void setup_iomux_nand(void)
|
||||
{
|
||||
static const iomux_v3_cfg_t nand_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_CS0__EMI_NANDF_CS_0,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_CS1__EMI_NANDF_CS_1,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_RB0__EMI_NANDF_RB_0,
|
||||
PAD_CTL_PUS_100K_UP),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_CLE__EMI_NANDF_CLE,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_ALE__EMI_NANDF_ALE,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_WP_B__EMI_NANDF_WP_B,
|
||||
PAD_CTL_PUS_100K_UP),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_RE_B__EMI_NANDF_RE_B,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_NANDF_WE_B__EMI_NANDF_WE_B,
|
||||
PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA0__EMI_NAND_WEIM_DA_0,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA1__EMI_NAND_WEIM_DA_1,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA2__EMI_NAND_WEIM_DA_2,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA3__EMI_NAND_WEIM_DA_3,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA4__EMI_NAND_WEIM_DA_4,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA5__EMI_NAND_WEIM_DA_5,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA6__EMI_NAND_WEIM_DA_6,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA7__EMI_NAND_WEIM_DA_7,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
};
|
||||
|
||||
u32 i, reg;
|
||||
#define M4IF_GENP_WEIM_MM_MASK 0x00000001
|
||||
#define WEIM_GCR2_MUX16_BYP_GRANT_MASK 0x00001000
|
||||
|
||||
reg = __raw_readl(M4IF_BASE_ADDR + 0xc);
|
||||
reg &= ~M4IF_GENP_WEIM_MM_MASK;
|
||||
@ -74,48 +106,7 @@ static void setup_iomux_nand(void)
|
||||
__raw_writel(reg, WEIM_BASE_ADDR + i);
|
||||
}
|
||||
|
||||
mxc_request_iomux(MX53_PIN_NANDF_CS0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_NANDF_CS0, PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_NANDF_CS1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_NANDF_CS1, PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_NANDF_RB0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_NANDF_RB0, PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_100K_PU);
|
||||
mxc_request_iomux(MX53_PIN_NANDF_CLE, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_NANDF_CLE, PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_NANDF_ALE, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_NANDF_ALE, PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_NANDF_WP_B, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_NANDF_WP_B, PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_100K_PU);
|
||||
mxc_request_iomux(MX53_PIN_NANDF_RE_B, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_NANDF_RE_B, PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_NANDF_WE_B, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_NANDF_WE_B, PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA0, PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_100K_PU | PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA1, PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_100K_PU | PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA2, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA2, PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_100K_PU | PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA3, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA3, PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_100K_PU | PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA4, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA4, PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_100K_PU | PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA5, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA5, PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_100K_PU | PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA6, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA6, PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_100K_PU | PAD_CTL_DRV_HIGH);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA7, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA7, PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_100K_PU | PAD_CTL_DRV_HIGH);
|
||||
imx_iomux_v3_setup_multiple_pads(nand_pads, ARRAY_SIZE(nand_pads));
|
||||
}
|
||||
#else
|
||||
static void setup_iomux_nand(void)
|
||||
@ -123,24 +114,17 @@ static void setup_iomux_nand(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
|
||||
|
||||
static void setup_iomux_uart(void)
|
||||
{
|
||||
/* UART1 RXD */
|
||||
mxc_request_iomux(MX53_PIN_ATA_DMACK, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DMACK,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
mxc_iomux_set_input(MX53_UART1_IPP_UART_RXD_MUX_SELECT_INPUT, 0x3);
|
||||
static const iomux_v3_cfg_t uart_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DMACK__UART1_RXD_MUX, UART_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DIOW__UART1_TXD_MUX, UART_PAD_CTRL),
|
||||
};
|
||||
|
||||
/* UART1 TXD */
|
||||
mxc_request_iomux(MX53_PIN_ATA_DIOW, IOMUX_CONFIG_ALT3);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DIOW,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
@ -154,9 +138,9 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
|
||||
int ret;
|
||||
|
||||
mxc_request_iomux(MX53_PIN_GPIO_1, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_GPIO_1__GPIO1_1);
|
||||
gpio_direction_input(IMX_GPIO_NR(1, 1));
|
||||
mxc_request_iomux(MX53_PIN_GPIO_4, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_GPIO_4__GPIO1_4);
|
||||
gpio_direction_input(IMX_GPIO_NR(1, 4));
|
||||
|
||||
if (cfg->esdhc_base == MMC_SDHC1_BASE_ADDR)
|
||||
@ -167,8 +151,36 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define SD_CMD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP)
|
||||
#define SD_CLK_PAD_CTRL (PAD_CTL_PUS_47K_UP | PAD_CTL_DSE_HIGH)
|
||||
#define SD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_DSE_HIGH)
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
static const iomux_v3_cfg_t sd1_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CMD__ESDHC1_CMD, SD_CMD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CLK__ESDHC1_CLK, SD_CLK_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA0__ESDHC1_DAT0, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA1__ESDHC1_DAT1, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA2__ESDHC1_DAT2, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA3__ESDHC1_DAT3, SD_PAD_CTRL),
|
||||
};
|
||||
|
||||
static const iomux_v3_cfg_t sd2_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_SD2_CMD__ESDHC2_CMD, SD_CMD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD2_CLK__ESDHC2_CLK, SD_CLK_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD2_DATA0__ESDHC2_DAT0, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD2_DATA1__ESDHC2_DAT1, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD2_DATA2__ESDHC2_DAT2, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD2_DATA3__ESDHC2_DAT3, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA12__ESDHC2_DAT4, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA13__ESDHC2_DAT5, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA14__ESDHC2_DAT6, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA15__ESDHC2_DAT7, SD_PAD_CTRL),
|
||||
};
|
||||
|
||||
u32 index;
|
||||
s32 status = 0;
|
||||
|
||||
@ -178,56 +190,12 @@ int board_mmc_init(bd_t *bis)
|
||||
for (index = 0; index < CONFIG_SYS_FSL_ESDHC_NUM; index++) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
mxc_request_iomux(MX53_PIN_SD1_CMD, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_CLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA0,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA1,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA2,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA3,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_CMD, 0x1E4);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_CLK, 0xD4);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA0, 0x1D4);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA1, 0x1D4);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA2, 0x1D4);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA3, 0x1D4);
|
||||
imx_iomux_v3_setup_multiple_pads(sd1_pads,
|
||||
ARRAY_SIZE(sd1_pads));
|
||||
break;
|
||||
case 1:
|
||||
mxc_request_iomux(MX53_PIN_SD2_CMD,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX53_PIN_SD2_CLK,
|
||||
IOMUX_CONFIG_ALT0 | IOMUX_CONFIG_SION);
|
||||
mxc_request_iomux(MX53_PIN_SD2_DATA0,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD2_DATA1,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD2_DATA2,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD2_DATA3,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA12,
|
||||
IOMUX_CONFIG_ALT2);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA13,
|
||||
IOMUX_CONFIG_ALT2);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA14,
|
||||
IOMUX_CONFIG_ALT2);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA15,
|
||||
IOMUX_CONFIG_ALT2);
|
||||
|
||||
mxc_iomux_set_pad(MX53_PIN_SD2_CMD, 0x1E4);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD2_CLK, 0xD4);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD2_DATA0, 0x1D4);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD2_DATA1, 0x1D4);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD2_DATA2, 0x1D4);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD2_DATA3, 0x1D4);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA12, 0x1D4);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA13, 0x1D4);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA14, 0x1D4);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA15, 0x1D4);
|
||||
imx_iomux_v3_setup_multiple_pads(sd2_pads,
|
||||
ARRAY_SIZE(sd2_pads));
|
||||
break;
|
||||
default:
|
||||
printf("Warning: you configured more ESDHC controller"
|
||||
@ -244,85 +212,70 @@ int board_mmc_init(bd_t *bis)
|
||||
|
||||
static void weim_smc911x_iomux(void)
|
||||
{
|
||||
static const iomux_v3_cfg_t weim_smc911x_pads[] = {
|
||||
/* Data bus */
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D16__EMI_WEIM_D_16,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D17__EMI_WEIM_D_17,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D18__EMI_WEIM_D_18,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D19__EMI_WEIM_D_19,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D20__EMI_WEIM_D_20,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D21__EMI_WEIM_D_21,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D22__EMI_WEIM_D_22,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D23__EMI_WEIM_D_23,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D24__EMI_WEIM_D_24,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D25__EMI_WEIM_D_25,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D26__EMI_WEIM_D_26,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D27__EMI_WEIM_D_27,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D28__EMI_WEIM_D_28,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D29__EMI_WEIM_D_29,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D30__EMI_WEIM_D_30,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_D31__EMI_WEIM_D_31,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
|
||||
/* Address lines */
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA0__EMI_NAND_WEIM_DA_0,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA1__EMI_NAND_WEIM_DA_1,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA2__EMI_NAND_WEIM_DA_2,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA3__EMI_NAND_WEIM_DA_3,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA4__EMI_NAND_WEIM_DA_4,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA5__EMI_NAND_WEIM_DA_5,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_EIM_DA6__EMI_NAND_WEIM_DA_6,
|
||||
PAD_CTL_PKE | PAD_CTL_DSE_HIGH),
|
||||
|
||||
/* other EIM signals for ethernet */
|
||||
MX53_PAD_EIM_OE__EMI_WEIM_OE,
|
||||
MX53_PAD_EIM_RW__EMI_WEIM_RW,
|
||||
MX53_PAD_EIM_CS1__EMI_WEIM_CS_1,
|
||||
};
|
||||
|
||||
/* ETHERNET_INT as GPIO2_31 */
|
||||
mxc_request_iomux(MX53_PIN_EIM_EB3, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_EIM_EB3__GPIO2_31);
|
||||
gpio_direction_input(ETHERNET_INT);
|
||||
|
||||
/* Data bus */
|
||||
mxc_request_iomux(MX53_PIN_EIM_D16, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D16, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D17, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D17, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D18, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D18, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D19, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D19, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D20, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D20, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D21, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D21, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D22, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D22, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D23, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D23, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D24, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D24, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D25, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D25, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D26, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D26, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D27, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D27, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D28, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D28, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D29, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D29, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D30, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D30, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_D31, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_D31, 0xA4);
|
||||
|
||||
/* Address lines */
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA0, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA1, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA2, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA2, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA3, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA3, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA4, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA4, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA5, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA5, 0xA4);
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA6, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_EIM_DA6, 0xA4);
|
||||
|
||||
/* other EIM signals for ethernet */
|
||||
mxc_request_iomux(MX53_PIN_EIM_OE, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_EIM_RW, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_EIM_CS1, IOMUX_CONFIG_ALT0);
|
||||
/* WEIM bus */
|
||||
imx_iomux_v3_setup_multiple_pads(weim_smc911x_pads,
|
||||
ARRAY_SIZE(weim_smc911x_pads));
|
||||
}
|
||||
|
||||
static void weim_cs1_settings(void)
|
||||
|
@ -23,11 +23,10 @@
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/mx5x_pins.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/iomux-mx53.h>
|
||||
#include <asm/errno.h>
|
||||
#include <asm/imx-common/boot_mode.h>
|
||||
#include <netdev.h>
|
||||
@ -49,69 +48,42 @@ int dram_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
|
||||
|
||||
static void setup_iomux_uart(void)
|
||||
{
|
||||
/* UART1 RXD */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D11, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D11,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
mxc_iomux_set_input(MX53_UART1_IPP_UART_RXD_MUX_SELECT_INPUT, 0x1);
|
||||
static const iomux_v3_cfg_t uart_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT11__UART1_RXD_MUX, UART_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT10__UART1_TXD_MUX, UART_PAD_CTRL),
|
||||
};
|
||||
|
||||
/* UART1 TXD */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D10, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D10,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
|
||||
}
|
||||
|
||||
#define I2C_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_HYS | PAD_CTL_ODE)
|
||||
|
||||
static void setup_i2c(unsigned int port_number)
|
||||
{
|
||||
static const iomux_v3_cfg_t i2c1_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT8__I2C1_SDA, I2C_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT9__I2C1_SCL, I2C_PAD_CTRL),
|
||||
};
|
||||
|
||||
static const iomux_v3_cfg_t i2c2_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_ROW3__I2C2_SDA, I2C_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_KEY_COL3__I2C2_SCL, I2C_PAD_CTRL),
|
||||
};
|
||||
|
||||
switch (port_number) {
|
||||
case 0:
|
||||
/* i2c1 SDA */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D8,
|
||||
IOMUX_CONFIG_ALT5 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_input(MX53_I2C1_IPP_SDA_IN_SELECT_INPUT,
|
||||
INPUT_CTL_PATH0);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D8,
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_100K_PU | PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
/* i2c1 SCL */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D9,
|
||||
IOMUX_CONFIG_ALT5 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_input(MX53_I2C1_IPP_SCL_IN_SELECT_INPUT,
|
||||
INPUT_CTL_PATH0);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D9,
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_100K_PU | PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(i2c1_pads,
|
||||
ARRAY_SIZE(i2c1_pads));
|
||||
break;
|
||||
case 1:
|
||||
/* i2c2 SDA */
|
||||
mxc_request_iomux(MX53_PIN_KEY_ROW3,
|
||||
IOMUX_CONFIG_ALT4 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_input(MX53_I2C2_IPP_SDA_IN_SELECT_INPUT,
|
||||
INPUT_CTL_PATH0);
|
||||
mxc_iomux_set_pad(MX53_PIN_KEY_ROW3,
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_100K_PU | PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
|
||||
/* i2c2 SCL */
|
||||
mxc_request_iomux(MX53_PIN_KEY_COL3,
|
||||
IOMUX_CONFIG_ALT4 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_input(MX53_I2C2_IPP_SCL_IN_SELECT_INPUT,
|
||||
INPUT_CTL_PATH0);
|
||||
mxc_iomux_set_pad(MX53_PIN_KEY_COL3,
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_100K_PU | PAD_CTL_HYS_ENABLE |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(i2c2_pads,
|
||||
ARRAY_SIZE(i2c2_pads));
|
||||
break;
|
||||
default:
|
||||
printf("Warning: Wrong I2C port number\n");
|
||||
@ -160,54 +132,26 @@ void power_init(void)
|
||||
|
||||
static void setup_iomux_fec(void)
|
||||
{
|
||||
/*FEC_MDIO*/
|
||||
mxc_request_iomux(MX53_PIN_FEC_MDIO, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_MDIO,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_22K_PU | PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
mxc_iomux_set_input(MX53_FEC_FEC_MDI_SELECT_INPUT, 0x1);
|
||||
static const iomux_v3_cfg_t fec_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_MDIO__FEC_MDIO, PAD_CTL_HYS |
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PUS_22K_UP | PAD_CTL_ODE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_MDC__FEC_MDC, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RXD1__FEC_RDATA_1,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RXD0__FEC_RDATA_0,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TXD1__FEC_TDATA_1, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TXD0__FEC_TDATA_0, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TX_EN__FEC_TX_EN, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_REF_CLK__FEC_TX_CLK,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RX_ER__FEC_RX_ER,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_CRS_DV__FEC_RX_DV,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
};
|
||||
|
||||
/*FEC_MDC*/
|
||||
mxc_request_iomux(MX53_PIN_FEC_MDC, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_MDC, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC RXD1 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RXD1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RXD1,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RXD0 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RXD0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RXD0,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC TXD1 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TXD1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TXD1, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TXD0 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TXD0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TXD0, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TX_EN */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TX_EN, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TX_EN, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TX_CLK */
|
||||
mxc_request_iomux(MX53_PIN_FEC_REF_CLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_REF_CLK,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RX_ER */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RX_ER, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RX_ER,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC CRS */
|
||||
mxc_request_iomux(MX53_PIN_FEC_CRS_DV, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_CRS_DV,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
@ -221,9 +165,9 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
|
||||
int ret;
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA11, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_EIM_DA11__GPIO3_11);
|
||||
gpio_direction_input(IMX_GPIO_NR(3, 11));
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA13, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_EIM_DA13__GPIO3_13);
|
||||
gpio_direction_input(IMX_GPIO_NR(3, 13));
|
||||
|
||||
if (cfg->esdhc_base == MMC_SDHC1_BASE_ADDR)
|
||||
@ -234,8 +178,38 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define SD_CMD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP)
|
||||
#define SD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_DSE_HIGH)
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
static const iomux_v3_cfg_t sd1_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CMD__ESDHC1_CMD, SD_CMD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CLK__ESDHC1_CLK, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA0__ESDHC1_DAT0, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA1__ESDHC1_DAT1, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA2__ESDHC1_DAT2, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA3__ESDHC1_DAT3, SD_PAD_CTRL),
|
||||
MX53_PAD_EIM_DA13__GPIO3_13,
|
||||
};
|
||||
|
||||
static const iomux_v3_cfg_t sd2_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_RESET_B__ESDHC3_CMD,
|
||||
SD_CMD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_IORDY__ESDHC3_CLK, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA8__ESDHC3_DAT0, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA9__ESDHC3_DAT1, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA10__ESDHC3_DAT2, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA11__ESDHC3_DAT3, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA0__ESDHC3_DAT4, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA1__ESDHC3_DAT5, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA2__ESDHC3_DAT6, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA3__ESDHC3_DAT7, SD_PAD_CTRL),
|
||||
MX53_PAD_EIM_DA11__GPIO3_11,
|
||||
};
|
||||
|
||||
u32 index;
|
||||
s32 status = 0;
|
||||
|
||||
@ -245,109 +219,12 @@ int board_mmc_init(bd_t *bis)
|
||||
for (index = 0; index < CONFIG_SYS_FSL_ESDHC_NUM; index++) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
mxc_request_iomux(MX53_PIN_SD1_CMD, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_CLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA0,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA1,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA2,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA3,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA13,
|
||||
IOMUX_CONFIG_ALT1);
|
||||
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_CMD,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_CLK,
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU |
|
||||
PAD_CTL_DRV_HIGH);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA0,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA1,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA2,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA3,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
imx_iomux_v3_setup_multiple_pads(sd1_pads,
|
||||
ARRAY_SIZE(sd1_pads));
|
||||
break;
|
||||
case 1:
|
||||
mxc_request_iomux(MX53_PIN_ATA_RESET_B,
|
||||
IOMUX_CONFIG_ALT2);
|
||||
mxc_request_iomux(MX53_PIN_ATA_IORDY,
|
||||
IOMUX_CONFIG_ALT2);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA8,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA9,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA10,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA11,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA0,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA1,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA2,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA3,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA11,
|
||||
IOMUX_CONFIG_ALT1);
|
||||
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_RESET_B,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_IORDY,
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU |
|
||||
PAD_CTL_DRV_HIGH);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA8,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA9,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA10,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA11,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA0,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA1,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA2,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA3,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(sd2_pads,
|
||||
ARRAY_SIZE(sd2_pads));
|
||||
break;
|
||||
default:
|
||||
printf("Warning: you configured more ESDHC controller"
|
||||
|
@ -24,11 +24,10 @@
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/mx5x_pins.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/iomux-mx53.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/errno.h>
|
||||
#include <asm/imx-common/mx5_video.h>
|
||||
@ -82,86 +81,51 @@ u32 get_board_rev(void)
|
||||
return (get_cpu_rev() & ~(0xF << 8)) | (rev & 0xF) << 8;
|
||||
}
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
|
||||
|
||||
static void setup_iomux_uart(void)
|
||||
{
|
||||
/* UART1 RXD */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D11, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D11,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
mxc_iomux_set_input(MX53_UART1_IPP_UART_RXD_MUX_SELECT_INPUT, 0x1);
|
||||
static const iomux_v3_cfg_t uart_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT11__UART1_RXD_MUX, UART_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT10__UART1_TXD_MUX, UART_PAD_CTRL),
|
||||
};
|
||||
|
||||
/* UART1 TXD */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D10, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D10,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_USB_EHCI_MX5
|
||||
int board_ehci_hcd_init(int port)
|
||||
{
|
||||
/* request VBUS power enable pin, GPIO7_8 */
|
||||
mxc_request_iomux(MX53_PIN_ATA_DA_2, IOMUX_CONFIG_ALT1);
|
||||
gpio_direction_output(IOMUX_TO_GPIO(MX53_PIN_ATA_DA_2), 1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_PATA_DA_2__GPIO7_8);
|
||||
gpio_direction_output(IMX_GPIO_NR(7, 8), 1);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void setup_iomux_fec(void)
|
||||
{
|
||||
/*FEC_MDIO*/
|
||||
mxc_request_iomux(MX53_PIN_FEC_MDIO, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_MDIO,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_22K_PU | PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
mxc_iomux_set_input(MX53_FEC_FEC_MDI_SELECT_INPUT, 0x1);
|
||||
static const iomux_v3_cfg_t fec_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_MDIO__FEC_MDIO, PAD_CTL_HYS |
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PUS_22K_UP | PAD_CTL_ODE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_MDC__FEC_MDC, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RXD1__FEC_RDATA_1,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RXD0__FEC_RDATA_0,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TXD1__FEC_TDATA_1, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TXD0__FEC_TDATA_0, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TX_EN__FEC_TX_EN, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_REF_CLK__FEC_TX_CLK,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RX_ER__FEC_RX_ER,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_CRS_DV__FEC_RX_DV,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
};
|
||||
|
||||
/*FEC_MDC*/
|
||||
mxc_request_iomux(MX53_PIN_FEC_MDC, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_MDC, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC RXD1 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RXD1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RXD1,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RXD0 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RXD0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RXD0,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC TXD1 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TXD1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TXD1, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TXD0 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TXD0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TXD0, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TX_EN */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TX_EN, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TX_EN, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TX_CLK */
|
||||
mxc_request_iomux(MX53_PIN_FEC_REF_CLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_REF_CLK,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RX_ER */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RX_ER, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RX_ER,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC CRS */
|
||||
mxc_request_iomux(MX53_PIN_FEC_CRS_DV, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_CRS_DV,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
@ -175,9 +139,9 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
|
||||
int ret;
|
||||
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA11, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_EIM_DA11__GPIO3_11);
|
||||
gpio_direction_input(IMX_GPIO_NR(3, 11));
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA13, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_EIM_DA13__GPIO3_13);
|
||||
gpio_direction_input(IMX_GPIO_NR(3, 13));
|
||||
|
||||
if (cfg->esdhc_base == MMC_SDHC1_BASE_ADDR)
|
||||
@ -188,8 +152,38 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define SD_CMD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP)
|
||||
#define SD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_DSE_HIGH)
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
static const iomux_v3_cfg_t sd1_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CMD__ESDHC1_CMD, SD_CMD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CLK__ESDHC1_CLK, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA0__ESDHC1_DAT0, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA1__ESDHC1_DAT1, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA2__ESDHC1_DAT2, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA3__ESDHC1_DAT3, SD_PAD_CTRL),
|
||||
MX53_PAD_EIM_DA13__GPIO3_13,
|
||||
};
|
||||
|
||||
static const iomux_v3_cfg_t sd2_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_RESET_B__ESDHC3_CMD,
|
||||
SD_CMD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_IORDY__ESDHC3_CLK, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA8__ESDHC3_DAT0, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA9__ESDHC3_DAT1, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA10__ESDHC3_DAT2, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA11__ESDHC3_DAT3, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA0__ESDHC3_DAT4, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA1__ESDHC3_DAT5, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA2__ESDHC3_DAT6, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_PATA_DATA3__ESDHC3_DAT7, SD_PAD_CTRL),
|
||||
MX53_PAD_EIM_DA11__GPIO3_11,
|
||||
};
|
||||
|
||||
u32 index;
|
||||
s32 status = 0;
|
||||
|
||||
@ -199,109 +193,12 @@ int board_mmc_init(bd_t *bis)
|
||||
for (index = 0; index < CONFIG_SYS_FSL_ESDHC_NUM; index++) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
mxc_request_iomux(MX53_PIN_SD1_CMD, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_CLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA0,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA1,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA2,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA3,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA13,
|
||||
IOMUX_CONFIG_ALT1);
|
||||
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_CMD,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_CLK,
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU |
|
||||
PAD_CTL_DRV_HIGH);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA0,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA1,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA2,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA3,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
imx_iomux_v3_setup_multiple_pads(sd1_pads,
|
||||
ARRAY_SIZE(sd1_pads));
|
||||
break;
|
||||
case 1:
|
||||
mxc_request_iomux(MX53_PIN_ATA_RESET_B,
|
||||
IOMUX_CONFIG_ALT2);
|
||||
mxc_request_iomux(MX53_PIN_ATA_IORDY,
|
||||
IOMUX_CONFIG_ALT2);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA8,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA9,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA10,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA11,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA0,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA1,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA2,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_ATA_DATA3,
|
||||
IOMUX_CONFIG_ALT4);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA11,
|
||||
IOMUX_CONFIG_ALT1);
|
||||
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_RESET_B,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_IORDY,
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU |
|
||||
PAD_CTL_DRV_HIGH);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA8,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA9,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA10,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA11,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA0,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA1,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA2,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_ATA_DATA3,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(sd2_pads,
|
||||
ARRAY_SIZE(sd2_pads));
|
||||
break;
|
||||
default:
|
||||
printf("Warning: you configured more ESDHC controller"
|
||||
@ -316,28 +213,17 @@ int board_mmc_init(bd_t *bis)
|
||||
}
|
||||
#endif
|
||||
|
||||
#define I2C_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
|
||||
|
||||
static void setup_iomux_i2c(void)
|
||||
{
|
||||
/* I2C1 SDA */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D8,
|
||||
IOMUX_CONFIG_ALT5 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_input(MX53_I2C1_IPP_SDA_IN_SELECT_INPUT,
|
||||
INPUT_CTL_PATH0);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D8,
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
/* I2C1 SCL */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D9,
|
||||
IOMUX_CONFIG_ALT5 | IOMUX_CONFIG_SION);
|
||||
mxc_iomux_set_input(MX53_I2C1_IPP_SCL_IN_SELECT_INPUT,
|
||||
INPUT_CTL_PATH0);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D9,
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_100K_PU | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_PUE_PULL |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
static const iomux_v3_cfg_t i2c1_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT8__I2C1_SDA, I2C_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT9__I2C1_SCL, I2C_PAD_CTRL),
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(i2c1_pads, ARRAY_SIZE(i2c1_pads));
|
||||
}
|
||||
|
||||
static int power_init(void)
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <common.h>
|
||||
#include <linux/list.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/iomux-mx53.h>
|
||||
#include <linux/fb.h>
|
||||
#include <ipu_pixfmt.h>
|
||||
|
||||
@ -63,42 +63,46 @@ static struct fb_videomode const seiko_wvga = {
|
||||
|
||||
void setup_iomux_lcd(void)
|
||||
{
|
||||
mxc_request_iomux(MX53_PIN_DI0_DISP_CLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DI0_PIN15, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DI0_PIN2, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DI0_PIN3, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT0, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT1, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT2, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT3, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT4, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT5, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT6, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT7, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT8, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT9, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT10, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT11, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT12, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT13, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT14, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT15, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT16, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT17, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT18, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT19, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT20, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT21, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT22, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_DISP0_DAT23, IOMUX_CONFIG_ALT0);
|
||||
static const iomux_v3_cfg_t lcd_pads[] = {
|
||||
MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK,
|
||||
MX53_PAD_DI0_PIN15__IPU_DI0_PIN15,
|
||||
MX53_PAD_DI0_PIN2__IPU_DI0_PIN2,
|
||||
MX53_PAD_DI0_PIN3__IPU_DI0_PIN3,
|
||||
MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0,
|
||||
MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1,
|
||||
MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2,
|
||||
MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3,
|
||||
MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4,
|
||||
MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5,
|
||||
MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6,
|
||||
MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7,
|
||||
MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8,
|
||||
MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9,
|
||||
MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10,
|
||||
MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11,
|
||||
MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12,
|
||||
MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13,
|
||||
MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14,
|
||||
MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15,
|
||||
MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16,
|
||||
MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17,
|
||||
MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18,
|
||||
MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19,
|
||||
MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20,
|
||||
MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21,
|
||||
MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22,
|
||||
MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23,
|
||||
};
|
||||
|
||||
imx_iomux_v3_setup_multiple_pads(lcd_pads, ARRAY_SIZE(lcd_pads));
|
||||
|
||||
/* Turn on GPIO backlight */
|
||||
mxc_request_iomux(MX53_PIN_EIM_D24, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_EIM_D24__GPIO3_24);
|
||||
gpio_direction_output(MX53LOCO_LCD_POWER, 1);
|
||||
|
||||
/* Turn on display contrast */
|
||||
mxc_request_iomux(MX53_PIN_GPIO_1, IOMUX_CONFIG_ALT1);
|
||||
gpio_direction_output(IOMUX_TO_GPIO(MX53_PIN_GPIO_1), 1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_GPIO_1__GPIO1_1);
|
||||
gpio_direction_output(IMX_GPIO_NR(1, 1), 1);
|
||||
}
|
||||
|
||||
int board_video_skip(void)
|
||||
|
@ -23,11 +23,10 @@
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/mx5x_pins.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/crm_regs.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/iomux-mx53.h>
|
||||
#include <asm/errno.h>
|
||||
#include <netdev.h>
|
||||
#include <mmc.h>
|
||||
@ -56,76 +55,41 @@ void dram_init_banksize(void)
|
||||
gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
|
||||
}
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_ODE)
|
||||
|
||||
static void setup_iomux_uart(void)
|
||||
{
|
||||
/* UART1 RXD */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D11, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D11,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
mxc_iomux_set_input(MX53_UART1_IPP_UART_RXD_MUX_SELECT_INPUT, 0x1);
|
||||
static const iomux_v3_cfg_t uart_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT11__UART1_RXD_MUX, UART_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_CSI0_DAT10__UART1_TXD_MUX, UART_PAD_CTRL),
|
||||
};
|
||||
|
||||
/* UART1 TXD */
|
||||
mxc_request_iomux(MX53_PIN_CSI0_D10, IOMUX_CONFIG_ALT2);
|
||||
mxc_iomux_set_pad(MX53_PIN_CSI0_D10,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU |
|
||||
PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads));
|
||||
}
|
||||
|
||||
static void setup_iomux_fec(void)
|
||||
{
|
||||
/*FEC_MDIO*/
|
||||
mxc_request_iomux(MX53_PIN_FEC_MDIO, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_MDIO,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_22K_PU | PAD_CTL_ODE_OPENDRAIN_ENABLE);
|
||||
mxc_iomux_set_input(MX53_FEC_FEC_MDI_SELECT_INPUT, 0x1);
|
||||
static const iomux_v3_cfg_t fec_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_MDIO__FEC_MDIO, PAD_CTL_HYS |
|
||||
PAD_CTL_DSE_HIGH | PAD_CTL_PUS_22K_UP | PAD_CTL_ODE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_MDC__FEC_MDC, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RXD1__FEC_RDATA_1,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RXD0__FEC_RDATA_0,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TXD1__FEC_TDATA_1, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TXD0__FEC_TDATA_0, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_TX_EN__FEC_TX_EN, PAD_CTL_DSE_HIGH),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_REF_CLK__FEC_TX_CLK,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_RX_ER__FEC_RX_ER,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
NEW_PAD_CTRL(MX53_PAD_FEC_CRS_DV__FEC_RX_DV,
|
||||
PAD_CTL_HYS | PAD_CTL_PKE),
|
||||
};
|
||||
|
||||
/*FEC_MDC*/
|
||||
mxc_request_iomux(MX53_PIN_FEC_MDC, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_MDC, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC RXD1 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RXD1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RXD1,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RXD0 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RXD0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RXD0,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC TXD1 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TXD1, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TXD1, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TXD0 */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TXD0, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TXD0, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TX_EN */
|
||||
mxc_request_iomux(MX53_PIN_FEC_TX_EN, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_TX_EN, PAD_CTL_DRV_HIGH);
|
||||
|
||||
/* FEC TX_CLK */
|
||||
mxc_request_iomux(MX53_PIN_FEC_REF_CLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_REF_CLK,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC RX_ER */
|
||||
mxc_request_iomux(MX53_PIN_FEC_RX_ER, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_RX_ER,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
|
||||
/* FEC CRS */
|
||||
mxc_request_iomux(MX53_PIN_FEC_CRS_DV, IOMUX_CONFIG_ALT0);
|
||||
mxc_iomux_set_pad(MX53_PIN_FEC_CRS_DV,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_PKE_ENABLE);
|
||||
imx_iomux_v3_setup_multiple_pads(fec_pads, ARRAY_SIZE(fec_pads));
|
||||
}
|
||||
|
||||
#ifdef CONFIG_FSL_ESDHC
|
||||
@ -135,13 +99,28 @@ struct fsl_esdhc_cfg esdhc_cfg[1] = {
|
||||
|
||||
int board_mmc_getcd(struct mmc *mmc)
|
||||
{
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA13, IOMUX_CONFIG_ALT1);
|
||||
imx_iomux_v3_setup_pad(MX53_PAD_EIM_DA13__GPIO3_13);
|
||||
gpio_direction_input(IMX_GPIO_NR(3, 13));
|
||||
return !gpio_get_value(IMX_GPIO_NR(3, 13));
|
||||
}
|
||||
|
||||
#define SD_CMD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_DSE_HIGH | \
|
||||
PAD_CTL_PUS_100K_UP)
|
||||
#define SD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_DSE_HIGH)
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
static const iomux_v3_cfg_t sd1_pads[] = {
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CMD__ESDHC1_CMD, SD_CMD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_CLK__ESDHC1_CLK, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA0__ESDHC1_DAT0, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA1__ESDHC1_DAT1, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA2__ESDHC1_DAT2, SD_PAD_CTRL),
|
||||
NEW_PAD_CTRL(MX53_PAD_SD1_DATA3__ESDHC1_DAT3, SD_PAD_CTRL),
|
||||
MX53_PAD_EIM_DA13__GPIO3_13,
|
||||
};
|
||||
|
||||
u32 index;
|
||||
s32 status = 0;
|
||||
|
||||
@ -150,43 +129,8 @@ int board_mmc_init(bd_t *bis)
|
||||
for (index = 0; index < CONFIG_SYS_FSL_ESDHC_NUM; index++) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
mxc_request_iomux(MX53_PIN_SD1_CMD, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_CLK, IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA0,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA1,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA2,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_SD1_DATA3,
|
||||
IOMUX_CONFIG_ALT0);
|
||||
mxc_request_iomux(MX53_PIN_EIM_DA13,
|
||||
IOMUX_CONFIG_ALT1);
|
||||
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_CMD,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_100K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_CLK,
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU |
|
||||
PAD_CTL_DRV_HIGH);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA0,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA1,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA2,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
mxc_iomux_set_pad(MX53_PIN_SD1_DATA3,
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_DRV_HIGH |
|
||||
PAD_CTL_PUE_PULL | PAD_CTL_PKE_ENABLE |
|
||||
PAD_CTL_HYS_ENABLE | PAD_CTL_47K_PU);
|
||||
imx_iomux_v3_setup_multiple_pads(sd1_pads,
|
||||
ARRAY_SIZE(sd1_pads));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -35,17 +35,16 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \
|
||||
PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
|
@ -35,17 +35,16 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \
|
||||
PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
@ -179,7 +178,10 @@ static int mx6sabre_rev(void)
|
||||
* i.MX6Q ARD RevB: 0x02
|
||||
*/
|
||||
struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
|
||||
int reg = readl(&ocotp->gp1);
|
||||
struct fuse_bank *bank = &ocotp->bank[4];
|
||||
struct fuse_bank4_regs *fuse =
|
||||
(struct fuse_bank4_regs *)bank->fuse_regs;
|
||||
int reg = readl(&fuse->gp1);
|
||||
int ret;
|
||||
|
||||
switch (reg >> 8 & 0x0F) {
|
||||
|
@ -45,29 +45,25 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \
|
||||
PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
|
||||
#define SPI_PAD_CTRL (PAD_CTL_HYS | \
|
||||
PAD_CTL_PUS_100K_DOWN | PAD_CTL_SPEED_MED | \
|
||||
#define SPI_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST)
|
||||
|
||||
#define BUTTON_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
#define BUTTON_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
|
||||
#define I2C_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \
|
||||
#define I2C_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \
|
||||
PAD_CTL_ODE | PAD_CTL_SRE_FAST)
|
||||
|
||||
int dram_init(void)
|
||||
|
@ -34,17 +34,16 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \
|
||||
PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \
|
||||
PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
|
||||
PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
|
||||
PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
#define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
@ -166,6 +165,7 @@ int board_mmc_getcd(struct mmc *mmc)
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
s32 status = 0;
|
||||
int i;
|
||||
|
||||
/*
|
||||
@ -196,15 +196,15 @@ int board_mmc_init(bd_t *bis)
|
||||
break;
|
||||
default:
|
||||
printf("Warning: you configured more USDHC controllers"
|
||||
"(%d) than supported by the board\n", i + 1);
|
||||
return 0;
|
||||
}
|
||||
"(%d) then supported by the board (%d)\n",
|
||||
i + 1, CONFIG_SYS_FSL_USDHC_NUM);
|
||||
return status;
|
||||
}
|
||||
|
||||
if (fsl_esdhc_initialize(bis, &usdhc_cfg[i]))
|
||||
printf("Warning: failed to initialize mmc dev %d\n", i);
|
||||
status |= fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
28
board/freescale/mx6slevk/Makefile
Normal file
28
board/freescale/mx6slevk/Makefile
Normal file
@ -0,0 +1,28 @@
|
||||
# (C) Copyright 2013 Freescale Semiconductor, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/config.mk
|
||||
|
||||
LIB = $(obj)lib$(BOARD).o
|
||||
|
||||
COBJS := mx6slevk.o
|
||||
|
||||
SRCS := $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
|
||||
$(LIB): $(obj).depend $(OBJS)
|
||||
$(call cmd_link_o_target, $(OBJS))
|
||||
|
||||
#########################################################################
|
||||
|
||||
# defines $(obj).depend target
|
||||
include $(SRCTREE)/rules.mk
|
||||
|
||||
sinclude $(obj).depend
|
||||
|
||||
#########################################################################
|
118
board/freescale/mx6slevk/imximage.cfg
Normal file
118
board/freescale/mx6slevk/imximage.cfg
Normal file
@ -0,0 +1,118 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Refer docs/README.imxmage for more details about how-to configure
|
||||
* and create imximage boot image
|
||||
*
|
||||
* The syntax is taken as close as possible with the kwbimage
|
||||
*/
|
||||
|
||||
/* image version */
|
||||
|
||||
IMAGE_VERSION 2
|
||||
|
||||
/*
|
||||
* Boot Device : one of
|
||||
* spi, sd (the board has no nand neither onenand)
|
||||
*/
|
||||
|
||||
BOOT_FROM sd
|
||||
|
||||
/*
|
||||
* Device Configuration Data (DCD)
|
||||
*
|
||||
* Each entry must have the format:
|
||||
* Addr-type Address Value
|
||||
*
|
||||
* where:
|
||||
* Addr-type register length (1,2 or 4 bytes)
|
||||
* Address absolute address of the register
|
||||
* value value to be stored in the register
|
||||
*/
|
||||
DATA 4 0x020c4018 0x00260324
|
||||
|
||||
DATA 4 0x020c4068 0xffffffff
|
||||
DATA 4 0x020c406c 0xffffffff
|
||||
DATA 4 0x020c4070 0xffffffff
|
||||
DATA 4 0x020c4074 0xffffffff
|
||||
DATA 4 0x020c4078 0xffffffff
|
||||
DATA 4 0x020c407c 0xffffffff
|
||||
DATA 4 0x020c4080 0xffffffff
|
||||
|
||||
DATA 4 0x020e0344 0x00003030
|
||||
DATA 4 0x020e0348 0x00003030
|
||||
DATA 4 0x020e034c 0x00003030
|
||||
DATA 4 0x020e0350 0x00003030
|
||||
DATA 4 0x020e030c 0x00000030
|
||||
DATA 4 0x020e0310 0x00000030
|
||||
DATA 4 0x020e0314 0x00000030
|
||||
DATA 4 0x020e0318 0x00000030
|
||||
DATA 4 0x020e0300 0x00000030
|
||||
DATA 4 0x020e031c 0x00000030
|
||||
DATA 4 0x020e0338 0x00000028
|
||||
DATA 4 0x020e0320 0x00000030
|
||||
DATA 4 0x020e032c 0x00000000
|
||||
DATA 4 0x020e033c 0x00000008
|
||||
DATA 4 0x020e0340 0x00000008
|
||||
DATA 4 0x020e05c4 0x00000030
|
||||
DATA 4 0x020e05cc 0x00000030
|
||||
DATA 4 0x020e05d4 0x00000030
|
||||
DATA 4 0x020e05d8 0x00000030
|
||||
DATA 4 0x020e05ac 0x00000030
|
||||
DATA 4 0x020e05c8 0x00000030
|
||||
DATA 4 0x020e05b0 0x00020000
|
||||
DATA 4 0x020e05b4 0x00000000
|
||||
DATA 4 0x020e05c0 0x00020000
|
||||
DATA 4 0x020e05d0 0x00080000
|
||||
|
||||
DATA 4 0x021b001c 0x00008000
|
||||
DATA 4 0x021b085c 0x1b4700c7
|
||||
DATA 4 0x021b0800 0xa1390003
|
||||
DATA 4 0x021b0890 0x00300000
|
||||
DATA 4 0x021b08b8 0x00000800
|
||||
DATA 4 0x021b081c 0x33333333
|
||||
DATA 4 0x021b0820 0x33333333
|
||||
DATA 4 0x021b0824 0x33333333
|
||||
DATA 4 0x021b0828 0x33333333
|
||||
DATA 4 0x021b082c 0xf3333333
|
||||
DATA 4 0x021b0830 0xf3333333
|
||||
DATA 4 0x021b0834 0xf3333333
|
||||
DATA 4 0x021b0838 0xf3333333
|
||||
DATA 4 0x021b0848 0x4241444a
|
||||
DATA 4 0x021b0850 0x3030312b
|
||||
DATA 4 0x021b083c 0x20000000
|
||||
DATA 4 0x021b0840 0x00000000
|
||||
DATA 4 0x021b08c0 0x24911492
|
||||
DATA 4 0x021b08b8 0x00000800
|
||||
DATA 4 0x021b000c 0x33374133
|
||||
DATA 4 0x021b0004 0x00020024
|
||||
DATA 4 0x021b0010 0x00100A82
|
||||
DATA 4 0x021b0014 0x00000093
|
||||
DATA 4 0x021b0018 0x00001688
|
||||
DATA 4 0x021b002c 0x0f9f26d2
|
||||
DATA 4 0x021b0030 0x0000020e
|
||||
DATA 4 0x021b0038 0x00190778
|
||||
DATA 4 0x021b0008 0x00000000
|
||||
DATA 4 0x021b0040 0x0000004f
|
||||
DATA 4 0x021b0000 0xc3110000
|
||||
DATA 4 0x021b001c 0x003f8030
|
||||
DATA 4 0x021b001c 0xff0a8030
|
||||
DATA 4 0x021b001c 0x82018030
|
||||
DATA 4 0x021b001c 0x04028030
|
||||
DATA 4 0x021b001c 0x02038030
|
||||
DATA 4 0x021b001c 0xff0a8038
|
||||
DATA 4 0x021b001c 0x82018038
|
||||
DATA 4 0x021b001c 0x04028038
|
||||
DATA 4 0x021b001c 0x02038038
|
||||
DATA 4 0x021b0800 0xa1310003
|
||||
DATA 4 0x021b0020 0x00001800
|
||||
DATA 4 0x021b0818 0x00000000
|
||||
DATA 4 0x021b08b8 0x00000800
|
||||
DATA 4 0x021b0004 0x00025564
|
||||
DATA 4 0x021b0404 0x00011006
|
||||
DATA 4 0x021b001c 0x00000000
|
102
board/freescale/mx6slevk/mx6slevk.c
Normal file
102
board/freescale/mx6slevk/mx6slevk.c
Normal file
@ -0,0 +1,102 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* Author: Fabio Estevam <fabio.estevam@freescale.com>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/iomux.h>
|
||||
#include <asm/arch/imx-regs.h>
|
||||
#include <asm/arch/mx6-pins.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/gpio.h>
|
||||
#include <asm/imx-common/iomux-v3.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/sizes.h>
|
||||
#include <common.h>
|
||||
#include <fsl_esdhc.h>
|
||||
#include <mmc.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
|
||||
PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
#define USDHC_PAD_CTRL (PAD_CTL_PUS_22K_UP | \
|
||||
PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
|
||||
PAD_CTL_SRE_FAST | PAD_CTL_HYS)
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static iomux_v3_cfg_t const uart1_pads[] = {
|
||||
MX6_PAD_UART1_TXD__UART1_TXD | MUX_PAD_CTRL(UART_PAD_CTRL),
|
||||
MX6_PAD_UART1_RXD__UART1_RXD | MUX_PAD_CTRL(UART_PAD_CTRL),
|
||||
};
|
||||
|
||||
static iomux_v3_cfg_t const usdhc2_pads[] = {
|
||||
MX6_PAD_SD2_CLK__USDHC2_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
|
||||
MX6_PAD_SD2_CMD__USDHC2_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
|
||||
MX6_PAD_SD2_DAT0__USDHC2_DAT0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
|
||||
MX6_PAD_SD2_DAT1__USDHC2_DAT1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
|
||||
MX6_PAD_SD2_DAT2__USDHC2_DAT2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
|
||||
MX6_PAD_SD2_DAT3__USDHC2_DAT3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
|
||||
};
|
||||
|
||||
static void setup_iomux_uart(void)
|
||||
{
|
||||
imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
|
||||
}
|
||||
|
||||
static struct fsl_esdhc_cfg usdhc_cfg[1] = {
|
||||
{USDHC2_BASE_ADDR},
|
||||
};
|
||||
|
||||
int board_mmc_getcd(struct mmc *mmc)
|
||||
{
|
||||
return 1; /* Assume boot SD always present */
|
||||
}
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
{
|
||||
imx_iomux_v3_setup_multiple_pads(usdhc2_pads, ARRAY_SIZE(usdhc2_pads));
|
||||
|
||||
usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
|
||||
return fsl_esdhc_initialize(bis, &usdhc_cfg[0]);
|
||||
}
|
||||
|
||||
int board_early_init_f(void)
|
||||
{
|
||||
setup_iomux_uart();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
/* address of boot parameters */
|
||||
gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 get_board_rev(void)
|
||||
{
|
||||
return get_cpu_rev();
|
||||
}
|
||||
|
||||
int checkboard(void)
|
||||
{
|
||||
puts("Board: MX6SLEVK\n");
|
||||
|
||||
return 0;
|
||||
}
|
36
board/freescale/titanium/Makefile
Normal file
36
board/freescale/titanium/Makefile
Normal file
@ -0,0 +1,36 @@
|
||||
#
|
||||
# Copyright (C) 2007, Guennadi Liakhovetski <lg@denx.de>
|
||||
#
|
||||
# (C) Copyright 2011 Freescale Semiconductor, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/config.mk
|
||||
|
||||
LIB = $(obj)lib$(BOARD).o
|
||||
|
||||
COBJS := titanium.o
|
||||
|
||||
SRCS := $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
|
||||
$(LIB): $(obj).depend $(OBJS)
|
||||
$(call cmd_link_o_target, $(OBJS))
|
||||
|
||||
#########################################################################
|
||||
|
||||
# defines $(obj).depend target
|
||||
include $(SRCTREE)/rules.mk
|
||||
|
||||
sinclude $(obj).depend
|
||||
|
||||
#########################################################################
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user