From: Lubomir Popov <lpopov@mm-sol.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] OMAP5: Add support for the SOM5_EVB board (OMAP5430-based)
Date: Mon, 01 Apr 2013 17:06:16 +0300 [thread overview]
Message-ID: <51599458.1000505@mm-sol.com> (raw)
Signed-off-by: Lubomir Popov <lpopov@mm-sol.com>
---
The som5_evb is an evaluation board for the APM-5 - a OMAP5430-based SOM (system
On a Module) designed by MMS and manufactured under license by Jorjin Technologies.
arch/arm/include/asm/mach-types.h | 13 ++
board/mms/som5_evb/Makefile | 49 +++++
board/mms/som5_evb/s5evb_mux_data.h | 376 +++++++++++++++++++++++++++++++++++
board/mms/som5_evb/som5_evb.c | 200 +++++++++++++++++++
boards.cfg | 1 +
include/configs/omap5_som5_evb.h | 336 +++++++++++++++++++++++++++++++
6 files changed, 975 insertions(+)
create mode 100644 board/mms/som5_evb/Makefile
create mode 100644 board/mms/som5_evb/s5evb_mux_data.h
create mode 100644 board/mms/som5_evb/som5_evb.c
create mode 100644 include/configs/omap5_som5_evb.h
diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h
index a676b6d..236fa17 100644
--- a/arch/arm/include/asm/mach-types.h
+++ b/arch/arm/include/asm/mach-types.h
@@ -1107,6 +1107,7 @@ extern unsigned int __machine_arch_type;
#define MACH_TYPE_OMAP5_SEVM 3777
#define MACH_TYPE_ARMADILLO_800EVA 3863
#define MACH_TYPE_KZM9G 4140
+#define MACH_TYPE_SOM5_EVB 4545
#ifdef CONFIG_ARCH_EBSA110
# ifdef machine_arch_type
@@ -14248,6 +14249,18 @@ extern unsigned int __machine_arch_type;
# define machine_is_kzm9g() (0)
#endif
+#ifdef CONFIG_MACH_SOM5_EVB
+# ifdef machine_arch_type
+# undef machine_arch_type
+# define machine_arch_type __machine_arch_type
+# else
+# define machine_arch_type MACH_TYPE_SOM5_EVB
+# endif
+# define machine_is_som5_evb() (machine_arch_type == MACH_TYPE_SOM5_EVB)
+#else
+# define machine_is_som5_evb() (0)
+#endif
+
/*
* These have not yet been registered
*/
diff --git a/board/mms/som5_evb/Makefile b/board/mms/som5_evb/Makefile
new file mode 100644
index 0000000..248e5cc
--- /dev/null
+++ b/board/mms/som5_evb/Makefile
@@ -0,0 +1,49 @@
+#
+# (C) Copyright 2000, 2001, 2002
+# Wolfgang Denk, DENX Software Engineering, wd at 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 $(TOPDIR)/config.mk
+
+LIB = $(obj)lib$(BOARD).o
+
+COBJS := som5_evb.o
+
+SRCS := $(COBJS:.o=.c)
+OBJS := $(addprefix $(obj),$(COBJS))
+
+$(LIB): $(obj).depend $(OBJS)
+ $(call cmd_link_o_target, $(OBJS))
+
+clean:
+ rm -f $(OBJS)
+
+distclean: clean
+ rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/mms/som5_evb/s5evb_mux_data.h b/board/mms/som5_evb/s5evb_mux_data.h
new file mode 100644
index 0000000..791a4ad
--- /dev/null
+++ b/board/mms/som5_evb/s5evb_mux_data.h
@@ -0,0 +1,376 @@
+/*
+ * Copyright (C) 2013 MM Solutions AD, <www.mm-sol.com>
+ *
+ * Lubomir Popov <lpopov@mm-sol.com> <l-popov@ti.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#ifndef _SOM5_EVB_MUX_DATA_H
+#define _SOM5_EVB_MUX_DATA_H
+
+#include <asm/arch/mux_omap5.h>
+
+const struct pad_conf_entry core_padconf_array_essential[] = {
+
+ {EMMC_CLK, (PTU | IEN | M0)}, /* EMMC_CLK */
+ {EMMC_CMD, (PTU | IEN | M0)}, /* EMMC_CMD */
+ {EMMC_DATA0, (PTU | IEN | M0)}, /* EMMC_DATA0 */
+ {EMMC_DATA1, (PTU | IEN | M0)}, /* EMMC_DATA1 */
+ {EMMC_DATA2, (PTU | IEN | M0)}, /* EMMC_DATA2 */
+ {EMMC_DATA3, (PTU | IEN | M0)}, /* EMMC_DATA3 */
+ {EMMC_DATA4, (PTU | IEN | M0)}, /* EMMC_DATA4 */
+ {EMMC_DATA5, (PTU | IEN | M0)}, /* EMMC_DATA5 */
+ {EMMC_DATA6, (PTU | IEN | M0)}, /* EMMC_DATA6 */
+ {EMMC_DATA7, (PTU | IEN | M0)}, /* EMMC_DATA7 */
+
+ {SDCARD_CLK, (PTU | IEN | M0)}, /* SDCARD_CLK */
+ {SDCARD_CMD, (PTU | IEN | M0)}, /* SDCARD_CMD */
+ {SDCARD_DATA0, (PTU | IEN | M0)}, /* SDCARD_DATA0 */
+ {SDCARD_DATA1, (PTU | IEN | M0)}, /* SDCARD_DATA1 */
+ {SDCARD_DATA2, (PTU | IEN | M0)}, /* SDCARD_DATA2 */
+ {SDCARD_DATA3, (PTU | IEN | M0)}, /* SDCARD_DATA3 */
+
+ {UART3_RX_IRRX, (PTU | IEN | M0)},/* UART3_RX_IRRX */
+ {UART3_TX_IRTX, (M0)}, /* UART3_TX_IRTX */
+
+ {HSI2_CAREADY, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_CLK */
+ {HSI2_ACREADY, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_NXT */
+ {HSI2_CAWAKE, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_DIR */
+ {HSI2_ACWAKE, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_STP */
+ {HSI2_CAFLAG, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_DATA0 */
+ {HSI2_CADATA, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_DATA1 */
+ {HSI2_ACFLAG, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_DATA2 */
+ {HSI2_ACDATA, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_DATA3 */
+ {UART2_RTS, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_DATA4 */
+ {UART2_CTS, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_DATA5 */
+ {UART2_RX, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_DATA6 */
+ {UART2_TX, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M3)}, /* USBB1_ULPIPHY_DATA7 */
+
+ {USBB2_HSIC_STROBE, (PTU | IEN | M0)}, /* USBB2_HSIC_STROBE */
+ {USBB2_HSIC_DATA, (PTU | IEN | M0)}, /* USBB2_HSIC_DATA */
+
+ {USBB3_HSIC_STROBE, (PTU | IEN | M0)}, /* USBB3_HSIC_STROBE */
+ {USBB3_HSIC_DATA, (PTU | IEN | M0)}, /* USBB3_HSIC_DATA */
+
+ {USBD0_HS_DP, (IEN | M0)}, /* USBD0_HS_DP */
+ {USBD0_HS_DM, (IEN | M0)}, /* USBD0_HS_DM */
+ {USBD0_SS_RX, (IEN | M0)}, /* USBD0_SS_RX (LP: WTF is this for?) */
+
+};
+
+const struct pad_conf_entry wkup_padconf_array_essential[] = {
+
+ {SR_PMIC_SCL, (PTU | IEN | M0)}, /* SR_PMIC_SCL */
+ {SR_PMIC_SDA, (PTU | IEN | M0)}, /* SR_PMIC_SDA */
+
+ {SYS_32K, (IEN | M0)}, /* SYS_32K */
+
+};
+
+const struct pad_conf_entry core_padconf_array_non_essential[] = {
+#if 0
+/* GPMC is actually not useable directly as we don't have
+ the GPMC_NOE_NRE signal available, and some external logic
+ shall be needed. Anyway, M4 is the reset default.
+*/
+ {C2C_DATAIN0, (IEN | M4)}, /* GPMC_AD0 */
+ {C2C_DATAIN1, (IEN | M4)}, /* GPMC_AD1 */
+ {C2C_DATAIN2, (IEN | M4)}, /* GPMC_AD2 */
+ {C2C_DATAIN3, (IEN | M4)}, /* GPMC_AD3 */
+ {C2C_DATAIN4, (IEN | M4)}, /* GPMC_AD4 */
+ {C2C_DATAIN5, (IEN | M4)}, /* GPMC_AD5 */
+ {C2C_DATAIN6, (IEN | M4)}, /* GPMC_AD6 */
+ {C2C_DATAIN7, (IEN | M4)}, /* GPMC_AD7 */
+ {C2C_CLKIN1, (IEN | M4)}, /* GPMC_CLK */
+ {C2C_CLKIN0, (M5)}, /* GPMC_NBE1 */
+ {C2C_CLKOUT0, (M4)}, /* GPMC_NADV_ALE */
+ {C2C_CLKOUT1, (M4)}, /* GPMC_NBE0_CLE */
+ {C2C_DATAOUT0, (IEN | M4)}, /* GPMC_AD8 */
+ {C2C_DATAOUT1, (IEN | M4)}, /* GPMC_AD9 */
+ {C2C_DATAOUT2, (IEN | M4)}, /* GPMC_AD10 */
+ {C2C_DATAOUT3, (IEN | M4)}, /* GPMC_AD11 */
+ {C2C_DATAOUT4, (IEN | M4)}, /* GPMC_AD12 */
+ {C2C_DATAOUT5, (IEN | M4)}, /* GPMC_AD13 */
+ {C2C_DATAOUT6, (IEN | M4)}, /* GPMC_AD14 */
+ {C2C_DATAOUT7, (IEN | M4)}, /* GPMC_AD15 */
+ {C2C_DATA8, (M4)}, /* GPMC_A16 */
+ {C2C_DATA9, (M4)}, /* GPMC_A17 */
+ {C2C_DATA10, (M4)}, /* GPMC_A18 */
+ {C2C_DATA11, (M4)}, /* GPMC_A19 */
+ {C2C_DATA12, (M4)}, /* GPMC_A20 */
+ {C2C_DATA13, (M4)}, /* GPMC_A21 */
+ {C2C_DATA14, (M4)}, /* GPMC_A22 */
+ {C2C_DATA15, (M4)}, /* GPMC_A23 */
+ {LLIA_WAKEREQOUT, (PTU | IEN | M4)}, /* GPMC_WAIT0 */
+ {UART1_RTS, (M4)}, /* GPMC_NCS7 */
+#else
+/* Test in GPIO mode. Convention: left (odd) pins on connector are
+ outputs (initialized to PD), right (even) pins are inputs with PU.
+*/
+ {C2C_DATAIN0, (IEN | PTU | M6)}, /* GPIO2_37 In J201:06 */
+ {C2C_DATAIN1, (IEN | PTU | M6)}, /* GPIO2_38 In J201:04 */
+ {C2C_DATAIN2, (IEN | PTU | M6)}, /* GPIO2_39 In J201:10 */
+ {C2C_DATAIN3, (IEN | PTU | M6)}, /* GPIO2_40 In J201:08 */
+ {C2C_DATAIN4, (IEN | PTU | M6)}, /* GPIO2_41 In J201:16 */
+ {C2C_DATAIN5, (IEN | PTU | M6)}, /* GPIO2_42 In J201:12 */
+ {C2C_DATAIN6, (IEN | PTU | M6)}, /* GPIO2_43 In J201:20 */
+ {C2C_DATAIN7, (IEN | PTU | M6)}, /* GPIO2_44 In J201:18 */
+ {C2C_CLKIN1, (PTD | M6)}, /* GPIO2_36 Out J201:03 */
+ {C2C_CLKIN0, (PTD | M6)}, /* GPIO2_35 Out J201:11 */
+ {C2C_CLKOUT0, (PTD | M6)}, /* GPIO2_33 Out J201:17 */
+ {C2C_CLKOUT1, (PTD | M6)}, /* GPIO2_34 Out J201:09 */
+ {C2C_DATAOUT0, (PTD | M6)}, /* GPIO2_56 Out J201:31 */
+ {C2C_DATAOUT1, (PTD | M6)}, /* GPIO2_57 Out J201:23 */
+ {C2C_DATAOUT2, (PTD | M6)}, /* GPIO2_58 Out J201:25 */
+ {C2C_DATAOUT3, (PTD | M6)}, /* GPIO2_59 Out J201:15 */
+ {C2C_DATAOUT4, (PTD | M6)}, /* GPIO2_60 Out J201:29 */
+ {C2C_DATAOUT5, (PTD | M6)}, /* GPIO2_61 Out J201:21 */
+ {C2C_DATAOUT6, (IEN | PTU | M6)}, /* GPIO2_62 In J201:22 */
+ {C2C_DATAOUT7, (IEN | PTU | M6)}, /* GPIO2_63 In J201:24 */
+ {C2C_DATA8, (IEN | PTU | M6)}, /* GPIO4_113 In J201:32 */
+ {C2C_DATA9, (IEN | PTU | M6)}, /* GPIO4_114 In J201:30 */
+ {C2C_DATA10, (IEN | PTU | M6)}, /* GPIO4_115 In J201:36 */
+ {C2C_DATA11, (IEN | PTU | M6)}, /* GPIO4_116 In J201:26 */
+ {C2C_DATA12, (PTD | M6)}, /* GPIO4_117 Out J201:35 */
+ {C2C_DATA13, (PTD | M6)}, /* GPIO4_118 Out J201:33 */
+ {C2C_DATA14, (IEN | PTU | M6)}, /* GPIO4_119 In J201:38 */
+ {C2C_DATA15, (IEN | PTU | M6)}, /* GPIO4_120 In J201:34 */
+ {LLIA_WAKEREQOUT, (PTD | M6)}, /* GPIO2_45 Out J201:07 */
+ {UART1_RTS, (PTD | M6)}, /* GPIO3_75 Out J201:37 */
+#endif
+ {LLIB_WAKEREQOUT, (PTU | IEN | M6)}, /* GPIO2_32 In I/O Exp Int */
+
+ {HSI1_ACREADY, (PTD | M6)}, /* GPIO3_64 Out J701:28 */
+ {HSI1_CAREADY, (PTD | M6)}, /* GPIO3_65 Out J701:26 */
+ {HSI1_ACWAKE, (PTD | M6)}, /* GPIO3_66 Out J801:25 */
+ {HSI1_CAWAKE, (PTU | IEN | M6)}, /* GPIO3_67 In SDcard:CD */
+ {HSI1_ACFLAG, (PTU | IEN | M6)}, /* GPIO3_68 In J801:22 */
+ {HSI1_ACDATA, (PTD | M6)}, /* GPIO3_69 Out J801:21 */
+ {HSI1_CAFLAG, (PTU | IEN | M6)}, /* GPIO3_70 In J801:32 */
+ {HSI1_CADATA, (PTD | M6)}, /* GPIO3_71 Out J801:29 */
+ {UART1_TX, (PTU | IEN | M6)}, /* GPIO3_72 In J801:26 */
+ {UART1_CTS, (PTD | M6)}, /* GPIO3_73 Out J801:31 */
+ {UART1_RX, (PTU | IEN | M6)}, /* GPIO3_74 In J801:30 */
+
+ {USBB1_HSIC_STROBE, (PTU | IEN | M6)}, /* GPIO3_92 In NU */
+ {USBB1_HSIC_DATA, (PTU | IEN | M6)}, /* GPIO3_93 In NU */
+
+ {TIMER10_PWM_EVT, (PTD | M6)}, /* GPIO6_188 Out J802:11 */
+ {DSIPORTA_TE0, (PTU | IEN | M6)}, /* GPIO6_189 In J802:26 */
+ {DSIPORTA_LANE0X, (IEN | M0)}, /* DSIPORTA_LANE0X J704 */
+ {DSIPORTA_LANE0Y, (IEN | M0)}, /* DSIPORTA_LANE0Y J704 */
+ {DSIPORTA_LANE1X, (IEN | M0)}, /* DSIPORTA_LANE1X J704 */
+ {DSIPORTA_LANE1Y, (IEN | M0)}, /* DSIPORTA_LANE1Y J704 */
+ {DSIPORTA_LANE2X, (IEN | M0)}, /* DSIPORTA_LANE2X J704 */
+ {DSIPORTA_LANE2Y, (IEN | M0)}, /* DSIPORTA_LANE2Y J704 */
+ {DSIPORTA_LANE3X, (IEN | M0)}, /* DSIPORTA_LANE3X J704 */
+ {DSIPORTA_LANE3Y, (IEN | M0)}, /* DSIPORTA_LANE3Y J704 */
+ {DSIPORTA_LANE4X, (IEN | M0)}, /* DSIPORTA_LANE4X J704 */
+ {DSIPORTA_LANE4Y, (IEN | M0)}, /* DSIPORTA_LANE4Y J704 */
+
+ {TIMER9_PWM_EVT, (PTU | IEN | M6)}, /* GPIO6_190 In J802:12 */
+ {DSIPORTC_TE0, (PTD | M6)}, /* GPIO6_191 Out J802:15 */
+ {DSIPORTC_LANE0X, (IEN | M0)}, /* DSIPORTC_LANE0X J702 */
+ {DSIPORTC_LANE0Y, (IEN | M0)}, /* DSIPORTC_LANE0Y J702 */
+ {DSIPORTC_LANE1X, (IEN | M0)}, /* DSIPORTC_LANE1X J702 */
+ {DSIPORTC_LANE1Y, (IEN | M0)}, /* DSIPORTC_LANE1Y J702 */
+ {DSIPORTC_LANE2X, (IEN | M0)}, /* DSIPORTC_LANE2X J702 */
+ {DSIPORTC_LANE2Y, (IEN | M0)}, /* DSIPORTC_LANE2Y J702 */
+ {DSIPORTC_LANE3X, (IEN | M0)}, /* DSIPORTC_LANE3X J702 */
+ {DSIPORTC_LANE3Y, (IEN | M0)}, /* DSIPORTC_LANE3Y J702 */
+ {DSIPORTC_LANE4X, (IEN | M0)}, /* DSIPORTC_LANE4X J702 */
+ {DSIPORTC_LANE4Y, (IEN | M0)}, /* DSIPORTC_LANE4Y J702 */
+
+ {RFBI_HSYNC0, (M4)}, /* KBD_COL5 (Out) HOME */
+ {RFBI_TE_VSYNC0, (PTD | M6)}, /* GPIO6_161 Out J704:24 3D_MODE_EN */
+ {RFBI_WE, (PTD | M5)}, /* DRM_EMU2 (Out) */
+ {RFBI_CS0, (PTD | M5)}, /* DRM_EMU3 (Out) */
+ {RFBI_RE, (M4)}, /* KBD_COL4 (Out) SEND */
+ {RFBI_A0, (PTU | IEN | M6)}, /* GPIO6_165 In SH2_SENS_INT */
+ {RFBI_DATA0, (PTD | M5)}, /* DRM_EMU4 (Out) */
+ {RFBI_DATA1, (PTD | M5)}, /* DRM_EMU5 (Out) */
+ {RFBI_DATA2, (PTD | M5)}, /* DRM_EMU6 (Out) */
+ {RFBI_DATA3, (PTD | M6)}, /* GPIO6_169 Out J704:22 3D_LCD_BANK_SEL */
+ {RFBI_DATA4, (PTU | IEN | M6)}, /* GPIO6_170 In TEMP_ALERT on SOM (OD) */
+ {RFBI_DATA5, (PTU | IEN | M6)}, /* GPIO6_171 In J802:30 */
+ {RFBI_DATA6, (PTD | M6)}, /* GPIO6_172 Out LAN9730 nRESET */
+ {RFBI_DATA7, (PTD | M6)}, /* GPIO6_173 Out USB4640 nRESET */
+ {RFBI_DATA8, (M4)}, /* KBD_COL3 (Out) VOL- */
+ {RFBI_DATA9, (PTD | M6)}, /* GPIO6_175 Out MCLK_1E */
+ {RFBI_DATA10, (PTD | M6)}, /* GPIO6_176 Out MCLK_2E */
+ {RFBI_DATA11, (PTD | M6)}, /* GPIO6_177 Out MCLK_3E */
+ {RFBI_DATA12, (PTD | M6)}, /* GPIO6_178 Out J703:25 CAM_SUBPM_EN */
+ {RFBI_DATA13, (PTU | IEN | M6)}, /* GPIO6_179 In J704:27 TSCR_INT (OD) */
+ {RFBI_DATA14, (M4)}, /* KBD_COL7 (Out) SEARCH */
+ {RFBI_DATA15, (M4)}, /* KBD_COL6 (Out) END */
+
+ {GPIO6_182, (PTU | IEN | M6)}, /* GPIO6_182 In J802:28 */
+ {GPIO6_183, (PTD | M6)}, /* GPIO6_183 Out J704:25 nLCD_RESET */
+ {GPIO6_184, (M4)}, /* KBD_COL2 (Out) VOL+ */
+ {GPIO6_185, (PTU | IEN | M6)}, /* GPIO6_185 In J802:32 */
+ {GPIO6_186, (PTD | M6)}, /* GPIO6_186 Out J802:25 */
+ {GPIO6_187, (PTU | IEN | M4)}, /* KBD_ROW2 (In) All btns*/
+#if 0
+ {MCSPI2_CS0, (M0)}, /* MCSPI2_CS0 J802:31 */
+ {MCSPI2_CLK, (IEN | M0)}, /* MCSPI2_CLK J802:23 */
+ {MCSPI2_SIMO, (IEN | M0)}, /* MCSPI2_SIMO J802:29 */
+ {MCSPI2_SOMI, (PTU | IEN | M0)}, /* MCSPI2_SOMI J802:18 */
+#else
+ {MCSPI2_CS0, (PTD | M6)}, /* GPIO7_196 Out J802:31 */
+ {MCSPI2_CLK, (PTD | M6)}, /* GPIO7_197 Out J802:23 */
+ {MCSPI2_SIMO, (PTD | M6)}, /* GPIO7_198 Out J802:29 */
+ {MCSPI2_SOMI, (PTU | IEN | M6)}, /* GPIO7_199 In J802:18 */
+#endif
+ {I2C4_SCL, (IEN | PTU | M0)}, /* I2C4_SCL */
+ {I2C4_SDA, (IEN | PTU | M0)}, /* I2C4_SDA */
+
+ {HDMI_CEC, (IEN | M0)}, /* HDMI_CEC */
+ {HDMI_HPD, (PTD | IEN | M0)}, /* HDMI_HPD */
+ {HDMI_DDC_SCL, (IEN | M0)}, /* HDMI_DDC_SCL */
+ {HDMI_DDC_SDA, (IEN | M0)}, /* HDMI_DDC_SDA */
+
+ {CSIPORTA_LANE0X, (IEN | M0)}, /* CSIPORTA_LANE0X */
+ {CSIPORTA_LANE0Y, (IEN | M0)}, /* CSIPORTA_LANE0Y */
+ {CSIPORTA_LANE1Y, (IEN | M0)}, /* CSIPORTA_LANE1Y */
+ {CSIPORTA_LANE1X, (IEN | M0)}, /* CSIPORTA_LANE1X */
+ {CSIPORTA_LANE2Y, (IEN | M0)}, /* CSIPORTA_LANE2Y */
+ {CSIPORTA_LANE2X, (IEN | M0)}, /* CSIPORTA_LANE2X */
+ {CSIPORTA_LANE3X, (IEN | M0)}, /* CSIPORTA_LANE3X */
+ {CSIPORTA_LANE3Y, (IEN | M0)}, /* CSIPORTA_LANE3Y */
+ {CSIPORTA_LANE4X, (IEN | M0)}, /* CSIPORTA_LANE4X */
+ {CSIPORTA_LANE4Y, (IEN | M0)}, /* CSIPORTA_LANE4Y */
+
+ {CSIPORTB_LANE0X, (IEN | M0)}, /* CSIPORTB_LANE0X */
+ {CSIPORTB_LANE0Y, (IEN | M0)}, /* CSIPORTB_LANE0Y */
+ {CSIPORTB_LANE1Y, (IEN | M0)}, /* CSIPORTB_LANE1Y */
+ {CSIPORTB_LANE1X, (IEN | M0)}, /* CSIPORTB_LANE1X */
+ {CSIPORTB_LANE2Y, (IEN | M0)}, /* CSIPORTB_LANE2Y */
+ {CSIPORTB_LANE2X, (IEN | M0)}, /* CSIPORTB_LANE2X */
+
+ {CSIPORTC_LANE0Y, (IEN | M0)}, /* CSIPORTC_LANE0Y */
+ {CSIPORTC_LANE0X, (IEN | M0)}, /* CSIPORTC_LANE0X */
+ {CSIPORTC_LANE1Y, (IEN | M0)}, /* CSIPORTC_LANE1Y */
+ {CSIPORTC_LANE1X, (IEN | M0)}, /* CSIPORTC_LANE1X */
+
+ {CAM_SHUTTER, (M0)}, /* CAM_SHUTTER/224 J701:22 */
+ {CAM_STROBE, (M0)}, /* CAM_STROBE/225 J701:24 */
+ {CAM_GLOBALRESET, (IEN | M0)}, /* CAM_GLOBALRESET/226 J701:20 */
+ {TIMER11_PWM_EVT, (PTD | M6)}, /* GPIO8_227 Out J703:26 PRIMARY_5M_RESET_N */
+ {TIMER5_PWM_EVT, (PTD | M6)}, /* GPIO8_228 Out J703:28 SECONDARY_5M_RESET_N */
+ {TIMER6_PWM_EVT, (PTD | M6)}, /* GPIO8_229 Out J701:18 */
+ {TIMER8_PWM_EVT, (PTD | M6)}, /* GPIO8_230 Out J701:16 */
+
+ {I2C3_SCL, (IEN | PTU | M0)}, /* I2C3_SCL */
+ {I2C3_SDA, (IEN | PTU | M0)}, /* I2C3_SDA */
+
+ {GPIO8_233, (PTD | M6)}, /* GPIO8_233 Out J701:25 */
+
+ {ABE_CLKS, (IEN | M0)}, /* ABE_CLKS */
+ {ABEDMIC_DIN1, (PTD | M6)}, /* GPIO4_97 Out J801:13 */
+ {ABEDMIC_DIN2, (PTU | IEN | M6)}, /* GPIO4_98 In J801:12 */
+ {ABEDMIC_DIN3, (PTD | M6)}, /* GPIO4_99 Out J801:11 */
+ {ABEDMIC_CLK1, (PTU | IEN | M6)}, /* GPIO4_100 In J801:14 */
+
+ {ABEDMIC_CLK2, (IEN | M1)}, /* ABEMCBSP1_FSX BT Aud */
+ {ABEDMIC_CLK3, (M1)}, /* ABEMCBSP1_DX BT Aud */
+ {ABESLIMBUS1_CLOCK, (IEN | M1)}, /* ABEMCBSP1_CLKX BT Aud */
+ {ABESLIMBUS1_DATA, (IEN | M1)}, /* ABEMCBSP1_DR BT Aud */
+
+ {ABEMCBSP2_DR, (IEN | M0)}, /* ABEMCBSP2_DR FM Aud */
+ {ABEMCBSP2_DX, (M0)}, /* ABEMCBSP2_DX FM Aud */
+ {ABEMCBSP2_FSX, (IEN | M0)}, /* ABEMCBSP2_FSX FM Aud */
+ {ABEMCBSP2_CLKX, (IEN | M0)}, /* ABEMCBSP2_CLKX FM Aud */
+
+ {ABEMCPDM_UL_DATA, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M0)}, /* ABEMCPDM_UL_DATA */
+ {ABEMCPDM_DL_DATA, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M0)}, /* ABEMCPDM_DL_DATA */
+ {ABEMCPDM_FRAME, (PTU | IEN | OFF_EN | OFF_PD | OFF_IN | M0)}, /* ABEMCPDM_FRAME */
+ {ABEMCPDM_LB_CLK, (PTD | IEN | OFF_EN | OFF_PD | OFF_IN | M0)}, /* ABEMCPDM_LB_CLK */
+
+ {WLSDIO_CLK, (PTU | IEN | M0)}, /* WLSDIO_CLK */
+ {WLSDIO_CMD, (PTU | IEN | M0)}, /* WLSDIO_CMD */
+ {WLSDIO_DATA0, (PTU | IEN | M0)}, /* WLSDIO_DATA0 */
+ {WLSDIO_DATA1, (PTU | IEN | M0)}, /* WLSDIO_DATA1 */
+ {WLSDIO_DATA2, (PTU | IEN | M0)}, /* WLSDIO_DATA2 */
+ {WLSDIO_DATA3, (PTU | IEN | M0)}, /* WLSDIO_DATA3 */
+
+ {UART5_RX, (PTU | IEN | M0)}, /* UART5_RX BT HCI */
+ {UART5_TX, (M0)}, /* UART5_TX BT HCI */
+ {UART5_CTS, (PTU | IEN | M0)}, /* UART5_CTS BT HCI */
+ {UART5_RTS, (M0)}, /* UART5_RTS BT HCI */
+
+ {I2C2_SCL, (IEN | M0)}, /* I2C2_SCL */
+ {I2C2_SDA, (IEN | M0)}, /* I2C2_SDA */
+
+ {MCSPI1_CLK, (PTD | M6)}, /* GPIO5_140 Out WLAN EN */
+ {MCSPI1_SOMI, (PTD | M6)}, /* GPIO5_141 Out J802:17 */
+ {MCSPI1_SIMO, (PTD | M6)}, /* GPIO5_142 Out BT EN */
+ {MCSPI1_CS0, (PTD | M6)}, /* GPIO5_143 Out BT Wkup */
+ {MCSPI1_CS1, (PTD | IEN | M6)}, /* GPIO5_144 In Host WU */
+
+ {I2C5_SCL, (IEN | PTU | M0)}, /* I2C5_SCL */
+ {I2C5_SDA, (IEN | PTU | M0)}, /* I2C5_SDA */
+
+ {PERSLIMBUS2_CLOCK, (PTD | M6)}, /* GPIO5_145 Out AUDPWRON*/
+ {PERSLIMBUS2_DATA, (PTD | M6)}, /* GPIO5_146 Out J802:27 */
+ {UART6_TX, (PTD | M6)}, /* GPIO5_149 Out J802:13 */
+ {UART6_RX, (PTU | IEN | M6)}, /* GPIO5_150 In J802:20 */
+ {UART6_CTS, (PTU | IEN | M6)}, /* GPIO5_151 In J802:21 EXCEPTION TO RULE, SHORT WITH PIN 23 */
+ {UART6_RTS, (PTD | M6)}, /* GPIO5_152 Out J802:19 */
+ {UART3_CTS_RCTX, (PTD | IEN | M6)}, /* GPIO5_153 In J802:14 or SATA_ACTLED Out (M1). PTD! */
+ {UART3_RTS_IRSD, (PTU | IEN | M6)}, /* GPIO5_154 In J802:16 */
+
+ {I2C1_PMIC_SCL, (PTU | IEN | M0)}, /* I2C1_PMIC_SCL */
+ {I2C1_PMIC_SDA, (PTU | IEN | M0)}, /* I2C1_PMIC_SDA */
+
+};
+
+const struct pad_conf_entry wkup_padconf_array_non_essential[] = {
+
+ {LLIA_WAKEREQIN, (PTU | IEN | M6)}, /* GPIO1_WK14 In J201:19 */
+ {LLIB_WAKEREQIN, (PTU | IEN | M6)}, /* GPIO1_WK15 In J801:18 */
+ {DRM_EMU0, (PTU | IEN | M0)}, /* DRM_EMU0 */
+ {DRM_EMU1, (PTU | IEN | M0)}, /* DRM_EMU1 */
+ {JTAG_NTRST, (IEN | M0)}, /* JTAG_NTRST */
+ {JTAG_TCK, (IEN | M0)}, /* JTAG_TCK */
+ {JTAG_RTCK, (M0)}, /* JTAG_RTCK */
+ {JTAG_TMSC, (IEN | M0)}, /* JTAG_TMSC */
+ {JTAG_TDI, (IEN | M0)}, /* JTAG_TDI */
+ {JTAG_TDO, (M0)}, /* JTAG_TDO */
+ {FREF_CLK_IOREQ, (PTU | IEN | M6)}, /* GPIO1_WK13 In ETH_WAKE */
+ {FREF_CLK0_OUT, (M0)}, /* FREF_CLK0_OUT */
+ {FREF_CLK1_OUT, (M0)}, /* FREF_CLK1_OUT */
+ {FREF_CLK2_OUT, (M0)}, /* FREF_CLK2_OUT */
+ {FREF_CLK2_REQ, (PTU | IEN | M6)}, /* GPIO1_WK9 In WiLink Int */
+ {FREF_CLK1_REQ, (PTU | IEN | M6)}, /* GPIO1_WK8 In SH2_MSP_INT */
+ {SYS_NRESPWRON, (IEN | M0)}, /* SYS_NRESPWRON */
+ {SYS_NRESWARM, (PTU | IEN | M0)}, /* SYS_NRESWARM */
+ {SYS_PWR_REQ, (M0)}, /* SYS_PWR_REQ */
+ {SYS_NIRQ1, (PTU | IEN | M0)}, /* SYS_NIRQ1 */
+ {SYS_NIRQ2, (PTU | IEN | M0)}, /* SYS_NIRQ2 */
+ {SYS_BOOT0, (IEN | M0)}, /* SYS_BOOT0 */
+ {SYS_BOOT1, (IEN | M0)}, /* SYS_BOOT1 */
+ {SYS_BOOT2, (IEN | M0)}, /* SYS_BOOT2 */
+ {SYS_BOOT3, (IEN | M0)}, /* SYS_BOOT3 */
+ {SYS_BOOT4, (IEN | M0)}, /* SYS_BOOT4 */
+ {SYS_BOOT5, (IEN | M0)}, /* SYS_BOOT5 */
+
+};
+
+#endif /* _SOM5_EVB_MUX_DATA_H */
+
diff --git a/board/mms/som5_evb/som5_evb.c b/board/mms/som5_evb/som5_evb.c
new file mode 100644
index 0000000..a84672e
--- /dev/null
+++ b/board/mms/som5_evb/som5_evb.c
@@ -0,0 +1,200 @@
+/*
+ * Copyright (C) 2013 MM Solutions AD, <www.mm-sol.com>
+ *
+ * 02/2013 Derived from OMAP5 EVM and modified for the SOM5 EVB
+ * by Lubomir Popov <lpopov@mm-sol.com> <l-popov@ti.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+#include <common.h>
+#include <twl6035.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/arch/mmc_host_def.h>
+#include <asm/gpio.h>
+#include <asm/omap_common.h>
+
+#include "s5evb_mux_data.h"
+
+#ifdef CONFIG_USB_EHCI
+#include <usb.h>
+#include <asm/arch/ehci.h>
+#include <asm/ehci-omap.h>
+#endif
+
+DECLARE_GLOBAL_DATA_PTR;
+
+const struct omap_sysinfo sysinfo = {
+ "Board: MM Solutions SOM5 EVB\n"
+};
+
+/**
+ * @brief board_init
+ *
+ * @return 0
+ */
+int board_init(void)
+{
+ gpmc_init();
+ gd->bd->bi_arch_number = MACH_TYPE_SOM5_EVB;
+ gd->bd->bi_boot_params = (0x80000000 + 0x100); /* boot param addr */
+
+ return 0;
+}
+
+int board_eth_init(bd_t *bis)
+{
+ return 0;
+}
+
+/**
+ * @brief misc_init_r - Configure SOM5 EVB board specific features
+ * such as power configurations, ethernet initialization as phase2
+ * of boot sequence
+ *
+ * @return 0
+ */
+int misc_init_r(void)
+{
+#ifdef CONFIG_TWL6035_POWER
+ twl6035_init_settings();
+#ifdef CONFIG_TWL6035_AUDPWR
+ /* Useful for measuring voltages around the codec.
+ * Works with a TWL604x only.
+ */
+ twl6035_audio_power(1); /* Power on 2.1 V SMPS, enable 32 kHz */
+ udelay(1000); /* Allow ramp-up */
+ /* Start TWL6040 internal power on sequence: */
+ gpio_request(CONFIG_OMAP_AUDPWRON_GPIO, "AUDPWRON");
+ gpio_direction_output(CONFIG_OMAP_AUDPWRON_GPIO, 1);
+#endif
+#ifdef CONFIG_BB_CHRG
+ /* Board has a 3 V super-cap for BB */
+ twl6035_enable_bb_charge(BB_HIGH_ICHRG | BB_VSEL_3V0 | BB_CHRG_EN);
+#endif
+#endif /* CONFIG_TWL6035_POWER */
+#ifdef CONFIG_SYSCLK_OUT_EN
+ /* Enable FREF_XTAL_CLK output (19.2 MHz).
+ * Used as Audio MCLK; for measurement only.
+ * TODO: Use proper defines
+ * control_ckobuffer
+ */
+ writel(0x10000000, 0x4ae0cdb4);
+#endif
+ return 0;
+}
+
+void set_muxconf_regs_essential(void)
+{
+ do_set_mux(CONTROL_PADCONF_CORE, core_padconf_array_essential,
+ sizeof(core_padconf_array_essential) /
+ sizeof(struct pad_conf_entry));
+
+ do_set_mux(CONTROL_PADCONF_WKUP, wkup_padconf_array_essential,
+ sizeof(wkup_padconf_array_essential) /
+ sizeof(struct pad_conf_entry));
+
+ /* Set the MSECURE Mode for GPIO234 pin */
+ if (get_device_type() == DEVICE_GP) {
+ u32 msecure_pad = CONTROL_PADCONF_CORE + GPIO8_234;
+ writew((readw(msecure_pad) & ~M7) | M1, msecure_pad);
+ }
+#ifdef CONFIG_I2C_INTERNAL_PULLUPS
+ /* Enable internal I2C-compatible pullups on all buses
+ * TODO: Replace this ugly hardcoding with proper defines (omap.h)
+ * control_smart3io_padconf_0, control_i2c_0
+ */
+ writel(0x00554000, 0x4a002dc0); /* First set drive strength */
+ writel(0, 0x4a002e04); /* Now enable pull-ups */
+#endif
+}
+
+void set_muxconf_regs_non_essential(void)
+{
+ do_set_mux(CONTROL_PADCONF_CORE, core_padconf_array_non_essential,
+ sizeof(core_padconf_array_non_essential) /
+ sizeof(struct pad_conf_entry));
+
+ do_set_mux(CONTROL_PADCONF_WKUP, wkup_padconf_array_non_essential,
+ sizeof(wkup_padconf_array_non_essential) /
+ sizeof(struct pad_conf_entry));
+}
+
+#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_GENERIC_MMC)
+int board_mmc_init(bd_t *bis)
+{
+ omap_mmc_init(0, 0, 0, -1, -1);
+ omap_mmc_init(1, 0, 0, -1, -1);
+ return 0;
+}
+#endif
+
+#ifdef CONFIG_USB_EHCI
+
+#define USB_HOST_HS_CLKCTRL_MASK 0x0100D7C0 /* CM_L3INIT_USB_HOST_HS_CLKCTRL */
+#define USB_TLL_HS_CLKCTRL_MASK 0x00000700 /* CM_L3INIT_USB_TLL_HS_CLKCTRL */
+
+static struct omap_usbhs_board_data usbhs_bdata = {
+ .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, /* USBB1: ULPI PHY TUSB1210 */
+ .port_mode[1] = OMAP_EHCI_PORT_MODE_HSIC, /* USBB2: HSIC USB4640 hub */
+ .port_mode[2] = OMAP_EHCI_PORT_MODE_HSIC, /* USBB3: HSIC LAN9730 Ethernet ctrl */
+};
+
+int ehci_hcd_init(int index, struct ehci_hccr **hccr, struct ehci_hcor **hcor)
+{
+ int ret;
+
+ /* Enbale all 3 USB ports UHH, UTMI and HSIC clocks */
+ setbits_le32((*prcm)->cm_l3init_hsusbhost_clkctrl,
+ USB_HOST_HS_CLKCTRL_MASK);
+
+ /* Enbale all 3 USB host ports TLL clocks */
+ setbits_le32((*prcm)->cm_l3init_hsusbtll_clkctrl,
+ USB_TLL_HS_CLKCTRL_MASK);
+
+ /* USBB1 ULPI PHY uses OMAP FREF_CLK0_OUT. Must turn it on.
+ * TODO: Replace this ugly hardcoding with proper defines
+ */
+ writel(0x0100, 0x4ae0a310);
+ udelay(1000); /* Let PHY PLL lock */
+
+ ret = omap_ehci_hcd_init(&usbhs_bdata, hccr, hcor);
+ if (ret < 0)
+ return ret;
+
+ return 0;
+}
+
+int ehci_hcd_stop(void)
+{
+ int ret;
+
+ ret = omap_ehci_hcd_stop();
+
+ clrbits_le32((*prcm)->cm_l3init_hsusbhost_clkctrl,
+ USB_HOST_HS_CLKCTRL_MASK);
+ clrbits_le32((*prcm)->cm_l3init_hsusbtll_clkctrl,
+ USB_TLL_HS_CLKCTRL_MASK);
+
+ /* TODO: Replace this ugly hardcoding with proper defines
+ */
+ writel(0, 0x4ae0a310); /* Stop FREF_CLK0_OUT */
+ return ret;
+}
+#endif /* CONFIG_USB_EHCI */
+
diff --git a/boards.cfg b/boards.cfg
index 5fc70be..337dc42 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -292,6 +292,7 @@ twister arm armv7 twister technex
nokia_rx51 arm armv7 rx51 nokia omap3
omap4_panda arm armv7 panda ti omap4
omap4_sdp4430 arm armv7 sdp4430 ti omap4
+omap5_som5_evb arm armv7 som5_evb mms omap5
omap5_evm arm armv7 omap5_evm ti omap5
dra7xx_evm arm armv7 dra7xx ti omap5
s5p_goni arm armv7 goni samsung s5pc1xx
diff --git a/include/configs/omap5_som5_evb.h b/include/configs/omap5_som5_evb.h
new file mode 100644
index 0000000..46a9c0c
--- /dev/null
+++ b/include/configs/omap5_som5_evb.h
@@ -0,0 +1,336 @@
+/*
+ * Copyright (C) 2013 MM Solutions AD, <www.mm-sol.com>
+ *
+ * 02/2013 Derived from OMAP5 EVM and modified for the SOM5 EVB
+ * by Lubomir Popov <lpopov@mm-sol.com> <l-popov@ti.com>
+ *
+ * Configuration settings for the MMS SOM5 (APM-5) Evaluation Board.
+ *
+ * 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 __CONFIG_H
+#define __CONFIG_H
+
+/*
+ * High Level Configuration Options
+ */
+#define CONFIG_ARMV7 /* This is an ARM V7 CPU core */
+#define CONFIG_OMAP /* in a TI OMAP core */
+#define CONFIG_OMAP54XX /* which is a 54XX */
+#define CONFIG_OMAP5430 /* which is in a 5430 */
+#define CONFIG_SOM5EVB /* working with the SOM5 EVB */
+/* Machine type for Linux */
+#define CONFIG_MACH_TYPE MACH_TYPE_SOM5_EVB
+
+#define CONFIG_OMAP_GPIO
+
+/* Get CPU defs */
+#include <asm/arch/cpu.h>
+#include <asm/arch/omap.h>
+
+/* Display CPU and Board Info */
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_DISPLAY_BOARDINFO
+
+/* Clock Defines */
+#define V_OSCK 19200000 /* Clock output from T2 */
+#define V_SCLK V_OSCK
+/* Enable all clocks: */
+/*#define CONFIG_SYS_CLOCKS_ENABLE_ALL*/
+
+#define CONFIG_SYS_ENABLE_PADS_ALL /* Enable all PADS for now */
+
+#define CONFIG_MISC_INIT_R
+
+#define CONFIG_OF_LIBFDT
+#define CONFIG_CMD_BOOTZ
+
+#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
+#define CONFIG_SETUP_MEMORY_TAGS
+#define CONFIG_INITRD_TAG
+
+/*
+ * Size of malloc() pool
+ * Total Size Environment - 128k
+ * Malloc - add 256k
+ */
+#define CONFIG_ENV_SIZE (128 << 10)
+#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (256 << 10))
+/* Vector Base */
+#define CONFIG_SYS_CA15_VECTOR_BASE SRAM_ROM_VECT_BASE
+
+/*
+ * Hardware drivers
+ */
+
+/*
+ * serial port - NS16550 compatible
+ */
+#define V_NS16550_CLK 48000000
+
+#define CONFIG_SYS_NS16550
+#define CONFIG_SYS_NS16550_SERIAL
+#define CONFIG_SYS_NS16550_REG_SIZE (-4)
+#define CONFIG_SYS_NS16550_CLK V_NS16550_CLK
+#define CONFIG_CONS_INDEX 3
+#define CONFIG_SYS_NS16550_COM3 UART3_BASE
+
+#define CONFIG_BAUDRATE 115200
+#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, \
+ 57600, 115200}
+
+/* I2C */
+#define CONFIG_HARD_I2C
+#define CONFIG_SYS_I2C_SPEED 100000
+#define CONFIG_SYS_I2C_SLAVE 0x00 /* Own slave addr */
+#define CONFIG_DRIVER_OMAP54XX_I2C
+#define CONFIG_I2C_MULTI_BUS
+/* MUST be defined if external pullups are not populated: */
+#define CONFIG_I2C_INTERNAL_PULLUPS
+/* Define to use Repeated Start by i2c_read (otherwise Stop-Start
+ * shall be used between the address and data phases):
+ */
+#undef CONFIG_I2C_REPEATED_START
+/* Used by i2c mm/mw; needed for correct write to EEPROM: */
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10
+
+/* TWL6035 */
+#ifndef CONFIG_SPL_BUILD
+#define CONFIG_TWL6035_POWER
+/* Undef to disable forced PWM mode for the 1.8 V SMPS: */
+#define CONFIG_TWL6035_SMPS7_FPWM
+/* Following define enables testing of the TWL6040 audio codec power
+ * supply environment: the PMIC 2.1 V SMPS, and the codec's internal
+ * REF, NCP and HS/LS LDOs. Undef to disable powering up codec. */
+#define CONFIG_TWL6035_AUDPWR
+
+#ifdef CONFIG_TWL6035_AUDPWR
+#define CONFIG_OMAP_AUDPWRON_GPIO 145
+#endif
+/* Undef to disable BB (super-cap) charging: */
+#define CONFIG_BB_CHRG
+#endif /* CONFIG_SPL_BUILD */
+
+/* For Audio MCLK test/measurement only; enables the
+ * OMAP5 FREF_XTAL_CLK output: */
+#define CONFIG_SYSCLK_OUT_EN
+
+/* MMC */
+#define CONFIG_GENERIC_MMC
+#define CONFIG_MMC
+#define CONFIG_OMAP_HSMMC
+#define CONFIG_DOS_PARTITION
+
+/* MMC ENV related defines */
+#define CONFIG_ENV_IS_NOWHERE
+#ifdef CONFIG_ENV_IS_IN_MMC
+#define CONFIG_SYS_MMC_ENV_DEV 1 /* SLOT2: eMMC(1) */
+#define CONFIG_ENV_OFFSET 0xE0000
+#define CONFIG_CMD_SAVEENV
+#endif
+
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+
+/* Flash */
+#define CONFIG_SYS_NO_FLASH
+
+/* Cache */
+#define CONFIG_SYS_CACHELINE_SIZE 64
+#define CONFIG_SYS_CACHELINE_SHIFT 6
+
+/* USB UHH support options */
+#define CONFIG_CMD_USB
+#define CONFIG_USB_HOST
+#define CONFIG_USB_EHCI
+#define CONFIG_USB_EHCI_OMAP
+#define CONFIG_USB_ULPI
+#define CONFIG_USB_ULPI_VIEWPORT_OMAP
+#define CONFIG_USB_STORAGE
+#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3
+
+/* No signals to reset external PHYs on this board: */
+/*#define CONFIG_OMAP_EHCI_PHY1_RESET_GPIO xxx */
+
+/* Due to HSIC connect ussues, device reset is required upon
+ * applying port power. A GPIO is needed per HSIC device:
+ */
+#define CONFIG_OMAP_HSIC_PORT2_RESET_GPIO 173 /* Combo hub */
+#define CONFIG_OMAP_HSIC_PORT3_RESET_GPIO 172 /* Ethernet Ctrlr */
+
+/* USB Networking options */
+
+#define CONFIG_USB_HOST_ETHER
+#define CONFIG_USB_ETHER_SMSC95XX
+
+/* Commands to include */
+#include <config_cmd_default.h>
+
+/* Enabled commands */
+#define CONFIG_CMD_NET /* bootp, tftpboot, rarpboot */
+#define CONFIG_CMD_NFS /* NFS support */
+#define CONFIG_CMD_DHCP /* DHCP support */
+#define CONFIG_CMD_PING /* PING support */
+#define CONFIG_NET_MULTI
+
+#define CONFIG_CMD_EXT2 /* EXT2 support */
+#define CONFIG_CMD_FAT /* FAT support */
+#define CONFIG_CMD_I2C /* I2C serial bus support */
+#define CONFIG_CMD_MMC /* MMC support */
+#define CONFIG_CMD_GPIO /* GPIO support */
+
+/* Disabled commands */
+#undef CONFIG_CMD_FPGA /* FPGA configuration Support */
+#undef CONFIG_CMD_IMLS /* List all found images */
+
+/*
+ * Environment setup
+ */
+#define CONFIG_BOOTDELAY 3
+
+#define CONFIG_ENV_OVERWRITE
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "usbethaddr=9e:77:39:1b:c4:2d\0" \
+ "loadaddr=0x82000000\0" \
+ "console=ttyO2,115200n8\0" \
+ "usbtty=cdc_acm\0" \
+ "vram=16M\0" \
+ "mmcdev=0\0" \
+ "mmcroot=/dev/mmcblk0p2 rw\0" \
+ "mmcrootfstype=ext3 rootwait\0" \
+ "mmcargs=setenv bootargs console=${console} " \
+ "vram=${vram} " \
+ "root=${mmcroot} " \
+ "rootfstype=${mmcrootfstype}\0" \
+ "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
+ "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
+ "source ${loadaddr}\0" \
+ "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
+ "mmcboot=echo Booting from mmc${mmcdev} ...; " \
+ "run mmcargs; " \
+ "bootm ${loadaddr}\0" \
+
+#define CONFIG_BOOTCOMMAND \
+ "mmc dev ${mmcdev}; " \
+ "if mmc rescan ; then " \
+ "if run loadbootscript; then " \
+ "run bootscript; " \
+ "else " \
+ "if run loaduimage; then " \
+ "run mmcboot; " \
+ "fi; " \
+ "fi; " \
+ "fi "
+
+#define CONFIG_AUTO_COMPLETE 1
+
+/*
+ * Miscellaneous configurable options
+ */
+
+#define CONFIG_SYS_PROMPT "SOM5_EVB # "
+
+#define CONFIG_SYS_LONGHELP /* undef to save memory */
+#define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */
+#define CONFIG_SYS_CBSIZE 256
+/* Print Buffer Size */
+#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \
+ sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_MAXARGS 16
+/* Boot Argument Buffer Size */
+#define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE)
+
+/*
+ * memtest setup
+ */
+#define CONFIG_SYS_MEMTEST_START 0xb8000000
+#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + (256 << 20))
+/* Undef following two for simple mtest */
+#define CONFIG_SYS_ALT_MEMTEST
+#define CONFIG_SYS_MEMTEST_SCRATCH 0x81000000
+
+/* Default load address */
+#define CONFIG_SYS_LOAD_ADDR 0x80000000
+
+/* Use General purpose timer 1 */
+#define CONFIG_SYS_TIMERBASE GPT2_BASE
+#define CONFIG_SYS_PTV 2 /* Divisor: 2^(PTV+1) => 8 */
+#define CONFIG_SYS_HZ 1000
+
+/*
+ * SDRAM Memory Map
+ * Even though we use two CS all the memory
+ * is mapped to one contiguous block
+ */
+#define CONFIG_NR_DRAM_BANKS 1
+
+#define CONFIG_SYS_SDRAM_BASE 0x80000000
+
+#define CONFIG_SYS_INIT_SP_ADDR (NON_SECURE_SRAM_END - \
+ GENERATED_GBL_DATA_SIZE)
+
+#define CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
+
+/* Defines for SDRAM init */
+#ifndef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
+#define CONFIG_SYS_AUTOMATIC_SDRAM_DETECTION
+#define CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
+#endif
+
+/* Defines for SPL */
+#define CONFIG_SPL
+#define CONFIG_SPL_FRAMEWORK
+#define CONFIG_SPL_TEXT_BASE 0x40300350
+#define CONFIG_SPL_MAX_SIZE 0x19000 /* 100K */
+#define CONFIG_SPL_STACK CONFIG_SYS_INIT_SP_ADDR
+#define CONFIG_SPL_DISPLAY_PRINT
+
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x300 /* address 0x60000 */
+#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS 0x200 /* 256 KB */
+#define CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION 1
+#define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME "u-boot.img"
+
+#define CONFIG_SPL_LIBCOMMON_SUPPORT
+#define CONFIG_SPL_LIBDISK_SUPPORT
+#define CONFIG_SPL_I2C_SUPPORT
+#define CONFIG_SPL_MMC_SUPPORT
+#define CONFIG_SPL_FAT_SUPPORT
+#define CONFIG_SPL_LIBGENERIC_SUPPORT
+#define CONFIG_SPL_SERIAL_SUPPORT
+#define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/omap-common/u-boot-spl.lds"
+
+/*
+ * 64 bytes before this address should be set aside for u-boot.img's
+ * header. That is 0x80E7FFC0--0x80E80000 should not be used for any
+ * other needs.
+ */
+#define CONFIG_SYS_TEXT_BASE 0x80E80000
+
+/*
+ * BSS and malloc area 64MB into memory to allow enough
+ * space for the kernel at the beginning of memory
+ */
+#define CONFIG_SPL_BSS_START_ADDR 0x84000000
+#define CONFIG_SPL_BSS_MAX_SIZE 0x100000 /* 1 MB */
+#define CONFIG_SYS_SPL_MALLOC_START 0x84100000
+#define CONFIG_SYS_SPL_MALLOC_SIZE 0x100000 /* 1 MB */
+#define CONFIG_SPL_GPIO_SUPPORT
+
+#endif /* __CONFIG_H */
--
1.7.9.5
next reply other threads:[~2013-04-01 14:06 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-01 14:06 Lubomir Popov [this message]
2013-04-25 19:01 ` [U-Boot] [PATCH] OMAP5: Add support for the SOM5_EVB board (OMAP5430-based) Tom Rini
2013-04-26 15:59 ` Lubomir Popov
2013-05-13 19:37 ` Tom Rini
2013-05-14 10:24 ` Lubomir Popov
2013-05-14 14:52 ` Tom Rini
2013-05-14 16:09 ` Lubomir Popov
2013-05-14 16:41 ` Tom Rini
2013-05-14 19:42 ` Lubomir Popov
2013-05-14 20:36 ` Tom Rini
2013-05-15 5:11 ` Sricharan R
2013-05-15 7:55 ` Lubomir Popov
2013-05-15 9:04 ` Sricharan R
2013-05-15 10:46 ` Lubomir Popov
2013-05-15 11:25 ` Sricharan R
2013-05-15 13:10 ` Lubomir Popov
2013-05-15 13:43 ` Tom Rini
2013-05-15 14:31 ` Lubomir Popov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51599458.1000505@mm-sol.com \
--to=lpopov@mm-sol.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.