[U-Boot] [PATCH v3 1/6] arm: mvf600: Add Vybrid MVF600 CPU support

2013-05-21 Thread Alison Wang
This patch adds generic codes to support Freescale's Vybrid MVF600 CPU.

It aligns Vybrid MVF600 platform with i.MX platform. As there are
some differences between MVF600 and i.MX platforms, the specific
codes are in the arch/arm/cpu/armv7/mvf600 directory.

Signed-off-by: Alison Wang b18...@freescale.com
---
Changes in v3:
- Rename the common functions and enums
- Move the structure definitions to imx-regs.h  

Changes in v2:
- Remove vybrid-common directory
- Rename directory name 'vybrid' to 'mvf600'
- Add generic.c file
- Rewrite get_reset_cause() to make it readable
- Remove reset_cpu(), and use the function in imx_watchdog.c
- Rewrite timer.c file
- Use vybrid_get_clock(VYBRID_UART_CLK) instead of vybrid_get_uartclk()
- Remove lowlevel_init.S, and add clock_init() in board_early_init_f()
- Remove useless CONFIG_SYS_ defines
- Move CONFIG_MACH_TYPE to board configuration file
- Define C structures and access C structures to set/read registers
- Remove useless errata
- Remove useless macros
- Rename directory 'arch-vybrid' to 'arch-mvf600'

 Makefile|   2 +-
 arch/arm/cpu/armv7/mvf600/Makefile  |  42 +++
 arch/arm/cpu/armv7/mvf600/generic.c | 324 ++
 arch/arm/cpu/armv7/mvf600/timer.c   | 103 +++
 arch/arm/include/asm/arch-mvf600/clock.h|  39 +++
 arch/arm/include/asm/arch-mvf600/crm_regs.h | 225 +++
 arch/arm/include/asm/arch-mvf600/imx-regs.h | 411 
 arch/arm/include/asm/arch-mvf600/mvf_pins.h |  92 +++
 8 files changed, 1237 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/cpu/armv7/mvf600/Makefile
 create mode 100644 arch/arm/cpu/armv7/mvf600/generic.c
 create mode 100644 arch/arm/cpu/armv7/mvf600/timer.c
 create mode 100644 arch/arm/include/asm/arch-mvf600/clock.h
 create mode 100644 arch/arm/include/asm/arch-mvf600/crm_regs.h
 create mode 100644 arch/arm/include/asm/arch-mvf600/imx-regs.h
 create mode 100644 arch/arm/include/asm/arch-mvf600/mvf_pins.h

diff --git a/Makefile b/Makefile
index c52f0f1..9df2138 100644
--- a/Makefile
+++ b/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 mxs))
+ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35 mxs mvf600))
 LIBS-y += arch/$(ARCH)/imx-common/libimx-common.o
 endif
 
diff --git a/arch/arm/cpu/armv7/mvf600/Makefile 
b/arch/arm/cpu/armv7/mvf600/Makefile
new file mode 100644
index 000..9232cd4
--- /dev/null
+++ b/arch/arm/cpu/armv7/mvf600/Makefile
@@ -0,0 +1,42 @@
+#
+# 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.
+#
+# 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$(SOC).o
+
+COBJS  += generic.o
+COBJS  += timer.o
+
+SRCS   := $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS))
+
+all:   $(obj).depend $(LIB)
+
+$(LIB):$(OBJS)
+   $(call cmd_link_o_target, $(OBJS))
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/arch/arm/cpu/armv7/mvf600/generic.c 
b/arch/arm/cpu/armv7/mvf600/generic.c
new file mode 100644
index 000..f47ab1e
--- /dev/null
+++ b/arch/arm/cpu/armv7/mvf600/generic.c
@@ -0,0 +1,324 @@
+/*
+ * 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.
+ *
+ * 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

Re: [U-Boot] [PATCH v3 1/6] arm: mvf600: Add Vybrid MVF600 CPU support

2013-05-21 Thread Fabio Estevam

On 05/21/2013 06:02 AM, Alison Wang wrote:


+#ifdef CONFIG_MXC_OCOTP
+void enable_ocotp_clk(unsigned char enable)
+{
+   struct ccm_reg *ccm = (struct ccm_reg *)CCM_BASE_ADDR;
+   u32 reg;
+
+   reg = readl(ccm-ccgr6);
+   if (enable)
+   reg |= CCM_CCGR6_OCOTP_CTRL_MASK;
+   else
+   reg |= ~CCM_CCGR6_OCOTP_CTRL_MASK;


Don't you mean: reg = ~CCM_CCGR6_OCOTP_CTRL_MASK; ?


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 1/6] arm: mvf600: Add Vybrid MVF600 CPU support

2013-05-21 Thread Benoît Thébaudeau
Hi Alison,

On Tuesday, May 21, 2013 11:02:56 AM, Alison Wang wrote:
 This patch adds generic codes to support Freescale's Vybrid MVF600 CPU.
 
 It aligns Vybrid MVF600 platform with i.MX platform. As there are
 some differences between MVF600 and i.MX platforms, the specific
 codes are in the arch/arm/cpu/armv7/mvf600 directory.
 
 Signed-off-by: Alison Wang b18...@freescale.com
 ---
 Changes in v3:
 - Rename the common functions and enums
 - Move the structure definitions to imx-regs.h
 
 Changes in v2:
 - Remove vybrid-common directory
 - Rename directory name 'vybrid' to 'mvf600'
 - Add generic.c file
 - Rewrite get_reset_cause() to make it readable
 - Remove reset_cpu(), and use the function in imx_watchdog.c
 - Rewrite timer.c file
 - Use vybrid_get_clock(VYBRID_UART_CLK) instead of vybrid_get_uartclk()
 - Remove lowlevel_init.S, and add clock_init() in board_early_init_f()
 - Remove useless CONFIG_SYS_ defines
 - Move CONFIG_MACH_TYPE to board configuration file
 - Define C structures and access C structures to set/read registers
 - Remove useless errata
 - Remove useless macros
 - Rename directory 'arch-vybrid' to 'arch-mvf600'
 
  Makefile|   2 +-
  arch/arm/cpu/armv7/mvf600/Makefile  |  42 +++
  arch/arm/cpu/armv7/mvf600/generic.c | 324 ++
  arch/arm/cpu/armv7/mvf600/timer.c   | 103 +++
  arch/arm/include/asm/arch-mvf600/clock.h|  39 +++
  arch/arm/include/asm/arch-mvf600/crm_regs.h | 225 +++
  arch/arm/include/asm/arch-mvf600/imx-regs.h | 411
  
  arch/arm/include/asm/arch-mvf600/mvf_pins.h |  92 +++
  8 files changed, 1237 insertions(+), 1 deletion(-)
  create mode 100644 arch/arm/cpu/armv7/mvf600/Makefile
  create mode 100644 arch/arm/cpu/armv7/mvf600/generic.c
  create mode 100644 arch/arm/cpu/armv7/mvf600/timer.c
  create mode 100644 arch/arm/include/asm/arch-mvf600/clock.h
  create mode 100644 arch/arm/include/asm/arch-mvf600/crm_regs.h
  create mode 100644 arch/arm/include/asm/arch-mvf600/imx-regs.h
  create mode 100644 arch/arm/include/asm/arch-mvf600/mvf_pins.h

[...]

Since this includes support for OCOTP on this SoC, the following hunks should
also be added:


doc/README.mxc_ocotp:
---
 on MXC
 
 This IP can be found on the following SoCs:
+ - Vybrid MVF600,
  - i.MX6.
 
 Note that this IP is different from albeit similar to the IPs of the same name
---


doc/README.mvf600:
---
+U-Boot for Freescale Vybrid MVF600
+
+This file contains information for the port of U-Boot to the Freescale Vybrid
+MVF600 SoC.
+
+1. CONVENTIONS FOR FUSE ASSIGNMENTS
+---
+
+1.1 MAC Address: It is stored in fuse bank 4, with the 16 msbs in word 2 and 
the
+32 lsbs in word 3.
---


You can also add the definition of the fuses for UID if any, like uid_low/high
in struct fuse_bank0_regs in arch/arm/include/asm/arch-mx6/imx-regs.h.

Best regards,
Benoît
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 1/6] arm: mvf600: Add Vybrid MVF600 CPU support

2013-05-21 Thread Benoît Thébaudeau
Hi Alison,

On Tuesday, May 21, 2013 11:02:56 AM, Alison Wang wrote:

[...]

 diff --git a/arch/arm/include/asm/arch-mvf600/mvf_pins.h
 b/arch/arm/include/asm/arch-mvf600/mvf_pins.h
 new file mode 100644
 index 000..0fd89af
 --- /dev/null
 +++ b/arch/arm/include/asm/arch-mvf600/mvf_pins.h
 @@ -0,0 +1,92 @@
 +/*
 + * 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.
 + *
 + * 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_MVF_PINS_H__
 +#define __ASM_ARCH_MVF_PINS_H__
 +
 +#include asm/imx-common/iomux-v3.h
 +
 +enum {
 + MVF600_PAD_PTA6__RMII0_CLKIN= IOMUX_PAD(0x, 0x, 2, 
 0x, 0, 0),
 + MVF600_PAD_PTB4__UART1_TX   = IOMUX_PAD(0x0068, 0x0068, 2, 
 0x0380, 0, 0),
 + MVF600_PAD_PTB5__UART1_RX   = IOMUX_PAD(0x006C, 0x006C, 2, 
 0x037C, 0, 0),
 + MVF600_PAD_PTC1__RMII0_MDIO = IOMUX_PAD(0x00B8, 0x00B8, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC0__RMII0_MDC  = IOMUX_PAD(0x00B4, 0x00B4, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC2__RMII0_CRS_DV   = IOMUX_PAD(0x00BC, 0x00BC, 1, 
 0x, 0,
 0),
 + MVF600_PAD_PTC3__RMII0_RD1  = IOMUX_PAD(0x00C0, 0x00C0, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC4__RMII0_RD0  = IOMUX_PAD(0x00C4, 0x00C4, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC5__RMII0_RXER = IOMUX_PAD(0x00C8, 0x00C8, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC6__RMII0_TD1  = IOMUX_PAD(0x00CC, 0x00CC, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC7__RMII0_TD0  = IOMUX_PAD(0x00D0, 0x00D0, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC8__RMII0_TXEN = IOMUX_PAD(0x00D4, 0x00D4, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTA24__ESDHC1_CLK= IOMUX_PAD(0x0038, 0x0038, 5, 
 0x, 0, 0),
 + MVF600_PAD_PTA25__ESDHC1_CMD= IOMUX_PAD(0x003C, 0x003C, 5, 
 0x, 0, 0),
 + MVF600_PAD_PTA26__ESDHC1_DAT0   = IOMUX_PAD(0x0040, 0x0040, 5, 
 0x, 0,
 0),
 + MVF600_PAD_PTA27__ESDHC1_DAT1   = IOMUX_PAD(0x0044, 0x0044, 5, 
 0x, 0,
 0),
 + MVF600_PAD_PTA28__ESDHC1_DAT2   = IOMUX_PAD(0x0048, 0x0048, 5, 
 0x, 0,
 0),
 + MVF600_PAD_PTA29__ESDHC1_DAT3   = IOMUX_PAD(0x004C, 0x004C, 5, 
 0x, 0,
 0),
 + MVF600_PAD_DDR_A15__DDR_A_15= IOMUX_PAD(0x0220, 0x0220, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A14__DDR_A_14= IOMUX_PAD(0x0224, 0x0224, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A13__DDR_A_13= IOMUX_PAD(0x0228, 0x0228, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A12__DDR_A_12= IOMUX_PAD(0x022c, 0x022c, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A11__DDR_A_11= IOMUX_PAD(0x0230, 0x0230, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A10__DDR_A_10= IOMUX_PAD(0x0234, 0x0234, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A9__DDR_A_9  = IOMUX_PAD(0x0238, 0x0238, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A8__DDR_A_8  = IOMUX_PAD(0x023c, 0x023c, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A7__DDR_A_7  = IOMUX_PAD(0x0240, 0x0240, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A6__DDR_A_6  = IOMUX_PAD(0x0244, 0x0244, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A5__DDR_A_5  = IOMUX_PAD(0x0248, 0x0248, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A4__DDR_A_4  = IOMUX_PAD(0x024c, 0x024c, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A3__DDR_A_3  = IOMUX_PAD(0x0250, 0x0250, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A2__DDR_A_2  = IOMUX_PAD(0x0254, 0x0254, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A1__DDR_A_1  = IOMUX_PAD(0x0258, 0x0258, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_BA2__DDR_BA_2= IOMUX_PAD(0x0260, 0x0260, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_BA1__DDR_BA_1= IOMUX_PAD(0x0264, 0x0264, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_BA0__DDR_BA_0= IOMUX_PAD(0x0268, 0x0268, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_CAS__DDR_CAS_B   = IOMUX_PAD(0x026c, 0x026c, 0, 
 0x, 0,
 0),
 + MVF600_PAD_DDR_CKE__DDR_CKE_0   = IOMUX_PAD(0x0270, 0x0270, 0, 
 0x, 0,
 0),
 + MVF600_PAD_DDR_CLK__DDR_CLK_0   = IOMUX_PAD(0x0274, 0x0274, 0, 
 0x, 0,
 0),
 + MVF600_PAD_DDR_CS__DDR_CS_B_0   

Re: [U-Boot] [PATCH v3 1/6] arm: mvf600: Add Vybrid MVF600 CPU support

2013-05-21 Thread Wang Huan-B18965
Hi, Fabio,

 -Original Message-
 From: Estevam Fabio-R49496
 Sent: Tuesday, May 21, 2013 9:48 PM
 To: Wang Huan-B18965
 Cc: sba...@denx.de; u-boot@lists.denx.de; Liu Hui-R64343; Estevam Fabio-
 R49496
 Subject: Re: [PATCH v3 1/6] arm: mvf600: Add Vybrid MVF600 CPU support
 
 On 05/21/2013 06:02 AM, Alison Wang wrote:
 
  +#ifdef CONFIG_MXC_OCOTP
  +void enable_ocotp_clk(unsigned char enable) {
  +   struct ccm_reg *ccm = (struct ccm_reg *)CCM_BASE_ADDR;
  +   u32 reg;
  +
  +   reg = readl(ccm-ccgr6);
  +   if (enable)
  +   reg |= CCM_CCGR6_OCOTP_CTRL_MASK;
  +   else
  +   reg |= ~CCM_CCGR6_OCOTP_CTRL_MASK;
 
 Don't you mean: reg = ~CCM_CCGR6_OCOTP_CTRL_MASK; ?
[Alison Wang] Yes. I will change. Thanks.


Best Regards,
Alison Wang





___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 1/6] arm: mvf600: Add Vybrid MVF600 CPU support

2013-05-21 Thread Wang Huan-B18965
Hi, Benoit,

On Tuesday, May 21, 2013 11:02:56 AM, Alison Wang wrote:
 This patch adds generic codes to support Freescale's Vybrid MVF600 CPU.

 It aligns Vybrid MVF600 platform with i.MX platform. As there are
 some differences between MVF600 and i.MX platforms, the specific
 codes are in the arch/arm/cpu/armv7/mvf600 directory.

 Signed-off-by: Alison Wang b18...@freescale.com
 ---
 Changes in v3:
 - Rename the common functions and enums
 - Move the structure definitions to imx-regs.h

 Changes in v2:
 - Remove vybrid-common directory
 - Rename directory name 'vybrid' to 'mvf600'
 - Add generic.c file
 - Rewrite get_reset_cause() to make it readable
 - Remove reset_cpu(), and use the function in imx_watchdog.c
 - Rewrite timer.c file
 - Use vybrid_get_clock(VYBRID_UART_CLK) instead of vybrid_get_uartclk()
 - Remove lowlevel_init.S, and add clock_init() in board_early_init_f()
 - Remove useless CONFIG_SYS_ defines
 - Move CONFIG_MACH_TYPE to board configuration file
 - Define C structures and access C structures to set/read registers
 - Remove useless errata
 - Remove useless macros
 - Rename directory 'arch-vybrid' to 'arch-mvf600'

  Makefile|   2 +-
  arch/arm/cpu/armv7/mvf600/Makefile  |  42 +++
  arch/arm/cpu/armv7/mvf600/generic.c | 324 ++
  arch/arm/cpu/armv7/mvf600/timer.c   | 103 +++
  arch/arm/include/asm/arch-mvf600/clock.h|  39 +++
  arch/arm/include/asm/arch-mvf600/crm_regs.h | 225 +++
  arch/arm/include/asm/arch-mvf600/imx-regs.h | 411
  
  arch/arm/include/asm/arch-mvf600/mvf_pins.h |  92 +++
  8 files changed, 1237 insertions(+), 1 deletion(-)
  create mode 100644 arch/arm/cpu/armv7/mvf600/Makefile
  create mode 100644 arch/arm/cpu/armv7/mvf600/generic.c
  create mode 100644 arch/arm/cpu/armv7/mvf600/timer.c
  create mode 100644 arch/arm/include/asm/arch-mvf600/clock.h
  create mode 100644 arch/arm/include/asm/arch-mvf600/crm_regs.h
  create mode 100644 arch/arm/include/asm/arch-mvf600/imx-regs.h
  create mode 100644 arch/arm/include/asm/arch-mvf600/mvf_pins.h

[...]

Since this includes support for OCOTP on this SoC, the following hunks should
also be added:


doc/README.mxc_ocotp:
---
 on MXC

 This IP can be found on the following SoCs:
+ - Vybrid MVF600,
  - i.MX6.

 Note that this IP is different from albeit similar to the IPs of the same name
---


doc/README.mvf600:
---
+U-Boot for Freescale Vybrid MVF600
+
+This file contains information for the port of U-Boot to the Freescale Vybrid
+MVF600 SoC.
+
+1. CONVENTIONS FOR FUSE ASSIGNMENTS
+---
+
+1.1 MAC Address: It is stored in fuse bank 4, with the 16 msbs in word 2 and 
the
+32 lsbs in word 3.
---


You can also add the definition of the fuses for UID if any, like uid_low/high
in struct fuse_bank0_regs in arch/arm/include/asm/arch-mx6/imx-regs.h.

[Alison Wang] OK. I will add them. Thanks.

Best regards,
Alison Wang


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH v3 1/6] arm: mvf600: Add Vybrid MVF600 CPU support

2013-05-21 Thread Wang Huan-B18965
Hi, Benoit,

On Tuesday, May 21, 2013 11:02:56 AM, Alison Wang wrote:

[...]

 diff --git a/arch/arm/include/asm/arch-mvf600/mvf_pins.h
 b/arch/arm/include/asm/arch-mvf600/mvf_pins.h
 new file mode 100644
 index 000..0fd89af
 --- /dev/null
 +++ b/arch/arm/include/asm/arch-mvf600/mvf_pins.h
 @@ -0,0 +1,92 @@
 +/*
 + * 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.
 + *
 + * 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_MVF_PINS_H__
 +#define __ASM_ARCH_MVF_PINS_H__
 +
 +#include asm/imx-common/iomux-v3.h
 +
 +enum {
 + MVF600_PAD_PTA6__RMII0_CLKIN= IOMUX_PAD(0x, 0x, 2, 
 0x, 0, 0),
 + MVF600_PAD_PTB4__UART1_TX   = IOMUX_PAD(0x0068, 0x0068, 2, 
 0x0380, 0, 0),
 + MVF600_PAD_PTB5__UART1_RX   = IOMUX_PAD(0x006C, 0x006C, 2, 
 0x037C, 0, 0),
 + MVF600_PAD_PTC1__RMII0_MDIO = IOMUX_PAD(0x00B8, 0x00B8, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC0__RMII0_MDC  = IOMUX_PAD(0x00B4, 0x00B4, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC2__RMII0_CRS_DV   = IOMUX_PAD(0x00BC, 0x00BC, 1, 
 0x, 0,
 0),
 + MVF600_PAD_PTC3__RMII0_RD1  = IOMUX_PAD(0x00C0, 0x00C0, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC4__RMII0_RD0  = IOMUX_PAD(0x00C4, 0x00C4, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC5__RMII0_RXER = IOMUX_PAD(0x00C8, 0x00C8, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC6__RMII0_TD1  = IOMUX_PAD(0x00CC, 0x00CC, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC7__RMII0_TD0  = IOMUX_PAD(0x00D0, 0x00D0, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTC8__RMII0_TXEN = IOMUX_PAD(0x00D4, 0x00D4, 1, 
 0x, 0, 0),
 + MVF600_PAD_PTA24__ESDHC1_CLK= IOMUX_PAD(0x0038, 0x0038, 5, 
 0x, 0, 0),
 + MVF600_PAD_PTA25__ESDHC1_CMD= IOMUX_PAD(0x003C, 0x003C, 5, 
 0x, 0, 0),
 + MVF600_PAD_PTA26__ESDHC1_DAT0   = IOMUX_PAD(0x0040, 0x0040, 5, 
 0x, 0,
 0),
 + MVF600_PAD_PTA27__ESDHC1_DAT1   = IOMUX_PAD(0x0044, 0x0044, 5, 
 0x, 0,
 0),
 + MVF600_PAD_PTA28__ESDHC1_DAT2   = IOMUX_PAD(0x0048, 0x0048, 5, 
 0x, 0,
 0),
 + MVF600_PAD_PTA29__ESDHC1_DAT3   = IOMUX_PAD(0x004C, 0x004C, 5, 
 0x, 0,
 0),
 + MVF600_PAD_DDR_A15__DDR_A_15= IOMUX_PAD(0x0220, 0x0220, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A14__DDR_A_14= IOMUX_PAD(0x0224, 0x0224, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A13__DDR_A_13= IOMUX_PAD(0x0228, 0x0228, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A12__DDR_A_12= IOMUX_PAD(0x022c, 0x022c, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A11__DDR_A_11= IOMUX_PAD(0x0230, 0x0230, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A10__DDR_A_10= IOMUX_PAD(0x0234, 0x0234, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A9__DDR_A_9  = IOMUX_PAD(0x0238, 0x0238, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A8__DDR_A_8  = IOMUX_PAD(0x023c, 0x023c, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A7__DDR_A_7  = IOMUX_PAD(0x0240, 0x0240, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A6__DDR_A_6  = IOMUX_PAD(0x0244, 0x0244, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A5__DDR_A_5  = IOMUX_PAD(0x0248, 0x0248, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A4__DDR_A_4  = IOMUX_PAD(0x024c, 0x024c, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A3__DDR_A_3  = IOMUX_PAD(0x0250, 0x0250, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A2__DDR_A_2  = IOMUX_PAD(0x0254, 0x0254, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_A1__DDR_A_1  = IOMUX_PAD(0x0258, 0x0258, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_BA2__DDR_BA_2= IOMUX_PAD(0x0260, 0x0260, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_BA1__DDR_BA_1= IOMUX_PAD(0x0264, 0x0264, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_BA0__DDR_BA_0= IOMUX_PAD(0x0268, 0x0268, 0, 
 0x, 0, 0),
 + MVF600_PAD_DDR_CAS__DDR_CAS_B   = IOMUX_PAD(0x026c, 0x026c, 0, 
 0x, 0,
 0),
 + MVF600_PAD_DDR_CKE__DDR_CKE_0   = IOMUX_PAD(0x0270, 0x0270, 0, 
 0x, 0,
 0),
 + MVF600_PAD_DDR_CLK__DDR_CLK_0   = IOMUX_PAD(0x0274, 0x0274, 0, 
 0x, 0,
 0),
 + MVF600_PAD_DDR_CS__DDR_CS_B_0