aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Bohan <mbohan@quicinc.com>2009-12-29 15:03:56 -0800
committerMichael Bohan <mbohan@quicinc.com>2010-01-21 09:49:59 -0800
commitb2aef503ffbaa453021e587dbb482e553378f66d (patch)
treef5d8497e598388c79393d25a6f8189125a1cfc1a
parenta7be71db697d8d8712f0fb0708917828082a72b2 (diff)
downloadlk-b2aef503ffbaa453021e587dbb482e553378f66d.tar.gz
[platform/msm7x30]: Reconfigure EBI2 to add support for Ethernet
Set EBI2 CS5 to 'SMEM' and also increase the read / write waitstates for CS5. The added waitstates are required to interact with the SMC9221 Ethernet controller properly. The SMC9221 is only onboard the msm7x30 SURF and Fluid. This configuration should be benign on the FFA.
-rw-r--r--platform/msm7x30/ebi.c46
-rw-r--r--platform/msm7x30/platform.c3
-rw-r--r--platform/msm7x30/rules.mk3
3 files changed, 51 insertions, 1 deletions
diff --git a/platform/msm7x30/ebi.c b/platform/msm7x30/ebi.c
new file mode 100644
index 00000000..d8394312
--- /dev/null
+++ b/platform/msm7x30/ebi.c
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2010, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <reg.h>
+
+#define EBI2_CHIP_SELECT_CFG0 0xA0000000
+#define EBI2_XMEM_CS5_CFG0 0xA001001C
+
+void ebi2_init(void)
+{
+ uint32_t val;
+
+ /* Configure CS 5 and 6 for Eth and FPGA */
+ val = readl(EBI2_CHIP_SELECT_CFG0);
+ val |= 0xB01;
+ writel(val, EBI2_CHIP_SELECT_CFG0);
+
+ /* Add waitstates for SMC9221 access */
+ writel(0x330707FF, EBI2_XMEM_CS5_CFG0);
+}
+
diff --git a/platform/msm7x30/platform.c b/platform/msm7x30/platform.c
index 672d2590..ecb7b2c7 100644
--- a/platform/msm7x30/platform.c
+++ b/platform/msm7x30/platform.c
@@ -42,6 +42,8 @@ void platform_init_timer();
void uart3_clock_init(void);
void uart_init(void);
+void ebi2_init(void);
+
struct fbcon_config *lcdc_init(void);
void platform_early_init(void)
@@ -59,6 +61,7 @@ void platform_init(void)
dprintf(INFO, "platform_init()\n");
acpu_clock_init();
+ ebi2_init();
}
void display_init(void)
diff --git a/platform/msm7x30/rules.mk b/platform/msm7x30/rules.mk
index 237c4699..9ab88159 100644
--- a/platform/msm7x30/rules.mk
+++ b/platform/msm7x30/rules.mk
@@ -18,7 +18,8 @@ OBJS += \
$(LOCAL_DIR)/interrupts.o \
$(LOCAL_DIR)/gpio.o \
$(LOCAL_DIR)/acpuclock.o \
- $(LOCAL_DIR)/lcdc.o
+ $(LOCAL_DIR)/lcdc.o \
+ $(LOCAL_DIR)/ebi.o
LINKER_SCRIPT += $(BUILDDIR)/system-onesegment.ld