SAMSUNG: SMDKC100: Adds ethernet support.
authorNaveen Krishna CH <ch.naveen@samsung.com>
Fri, 5 Mar 2010 08:16:05 +0000 (17:16 +0900)
committertrix <trix@windriver.com>
Sat, 13 Mar 2010 14:11:17 +0000 (08:11 -0600)
Add setup for ethernet on SMDKC100, allowing kernel/ramdisk to be
loaded over tftp.

The preinit function will configure GPIO (GPK0CON) & SROMC to look
for environment in SROM Bank 3.

Signed-off-by: Naveen Krishna Ch <ch.naveen@samsung.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
board/samsung/smdkc100/smdkc100.c
include/configs/smdkc100.h

index 15a1a27..fb466c6 100644 (file)
  */
 
 #include <common.h>
+#include <asm/io.h>
+#include <asm/arch/smc.h>
+#include <asm/arch/gpio.h>
+#include <netdev.h>
+
 DECLARE_GLOBAL_DATA_PTR;
 
+/*
+ * Miscellaneous platform dependent initialisations
+ */
+static void smc9115_pre_init(void)
+{
+       u32 smc_bw_conf, smc_bc_conf;
+
+       struct s5pc100_gpio *const gpio =
+               (struct s5pc100_gpio *)S5PC100_GPIO_BASE;
+
+       /* gpio configuration GPK0CON */
+       gpio_cfg_pin(&gpio->gpio_k0, CONFIG_ENV_SROM_BANK, GPIO_FUNC(2));
+
+       /* Ethernet needs bus width of 16 bits */
+       smc_bw_conf = SMC_DATA16_WIDTH(CONFIG_ENV_SROM_BANK);
+       smc_bc_conf = SMC_BC_TACS(0x0) | SMC_BC_TCOS(0x4) | SMC_BC_TACC(0xe)
+                       | SMC_BC_TCOH(0x1) | SMC_BC_TAH(0x4)
+                       | SMC_BC_TACP(0x6) | SMC_BC_PMC(0x0);
+
+       /* Select and configure the SROMC bank */
+       s5pc1xx_config_sromc(CONFIG_ENV_SROM_BANK, smc_bw_conf, smc_bc_conf);
+}
+
 int board_init(void)
 {
+       smc9115_pre_init();
+
        gd->bd->bi_arch_number = MACH_TYPE_SMDKC100;
        gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
 
@@ -49,3 +79,12 @@ int checkboard(void)
        return 0;
 }
 #endif
+
+int board_eth_init(bd_t *bis)
+{
+       int rc = 0;
+#ifdef CONFIG_SMC911X
+       rc = smc911x_initialize(0, CONFIG_SMC911X_BASE);
+#endif
+       return rc;
+}
index a8ba052..09bce6d 100644 (file)
@@ -83,7 +83,6 @@
 #undef CONFIG_CMD_FLASH
 #undef CONFIG_CMD_IMLS
 #undef CONFIG_CMD_NAND
-#undef CONFIG_CMD_NET
 
 #define CONFIG_CMD_CACHE
 #define CONFIG_CMD_REGINFO
 
 #define CONFIG_DOS_PARTITION           1
 
+/*
+ * Ethernet Contoller driver
+ */
+#ifdef CONFIG_CMD_NET
+#define CONFIG_NET_MULTI
+#define CONFIG_SMC911X         1       /* we have a SMC9115 on-board   */
+#define CONFIG_SMC911X_16_BIT  1       /* SMC911X_16_BIT Mode          */
+#define CONFIG_SMC911X_BASE    0x98800300      /* SMC911X Drive Base   */
+#define CONFIG_ENV_SROM_BANK   3       /* Select SROM Bank-3 for Ethernet*/
+#endif /* CONFIG_CMD_NET */
+
 #endif /* __CONFIG_H */