]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/mpl/vcma9/vcma9.c
Add generic support for samsung s3c2440
[karo-tx-uboot.git] / board / mpl / vcma9 / vcma9.c
index 0d2003d2fc3ae89822d6b1915df9ef6223310ebc..978e6fdeff9d9dae12780f2308dab37ee12851bc 100644 (file)
@@ -26,7 +26,9 @@
  */
 
 #include <common.h>
-#include <s3c2410.h>
+#include <netdev.h>
+#include <asm/arch/s3c24x0_cpu.h>
+#include <stdio_dev.h>
 #include <i2c.h>
 
 #include "vcma9.h"
@@ -71,46 +73,48 @@ static inline void delay(unsigned long loops)
 
 int board_init(void)
 {
-       S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
-       S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
+       struct s3c24x0_clock_power * const clk_power =
+                                       s3c24x0_get_base_clock_power();
+       struct s3c24x0_gpio * const gpio = s3c24x0_get_base_gpio();
 
        /* to reduce PLL lock time, adjust the LOCKTIME register */
-       clk_power->LOCKTIME = 0xFFFFFF;
+       clk_power->locktime = 0xFFFFFF;
 
        /* configure MPLL */
-       clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV);
+       clk_power->mpllcon = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV);
 
        /* some delay between MPLL and UPLL */
        delay (4000);
 
        /* configure UPLL */
-       clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV);
+       clk_power->upllcon = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV);
 
        /* some delay between MPLL and UPLL */
        delay (8000);
 
        /* set up the I/O ports */
-       gpio->GPACON = 0x007FFFFF;
-       gpio->GPBCON = 0x002AAAAA;
-       gpio->GPBUP = 0x000002BF;
-       gpio->GPCCON = 0xAAAAAAAA;
-       gpio->GPCUP = 0x0000FFFF;
-       gpio->GPDCON = 0xAAAAAAAA;
-       gpio->GPDUP = 0x0000FFFF;
-       gpio->GPECON = 0xAAAAAAAA;
-       gpio->GPEUP = 0x000037F7;
-       gpio->GPFCON = 0x00000000;
-       gpio->GPFUP = 0x00000000;
-       gpio->GPGCON = 0xFFEAFF5A;
-       gpio->GPGUP = 0x0000F0DC;
-       gpio->GPHCON = 0x0028AAAA;
-       gpio->GPHUP = 0x00000656;
+       gpio->gpacon = 0x007FFFFF;
+       gpio->gpbcon = 0x002AAAAA;
+       gpio->gpbup = 0x000002BF;
+       gpio->gpccon = 0xAAAAAAAA;
+       gpio->gpcup = 0x0000FFFF;
+       gpio->gpdcon = 0xAAAAAAAA;
+       gpio->gpdup = 0x0000FFFF;
+       gpio->gpecon = 0xAAAAAAAA;
+       gpio->gpeup = 0x000037F7;
+       gpio->gpfcon = 0x00000000;
+       gpio->gpfup = 0x00000000;
+       gpio->gpgcon = 0xFFEAFF5A;
+       gpio->gpgup = 0x0000F0DC;
+       gpio->gphcon = 0x0028AAAA;
+       gpio->gphup = 0x00000656;
 
        /* setup correct IRQ modes for NIC */
-       gpio->EXTINT2 = (gpio->EXTINT2 & ~(7<<8)) | (4<<8); /* rising edge mode */
+       /* rising edge mode */
+       gpio->extint2 = (gpio->extint2 & ~(7<<8)) | (4<<8);
 
        /* select USB port 2 to be host or device (fix to host for now) */
-       gpio->MISCCR |= 0x08;
+       gpio->misccr |= 0x08;
 
        /* init serial */
        gd->baudrate = CONFIG_BAUDRATE;
@@ -132,7 +136,7 @@ int board_init(void)
 /*
  * NAND flash initialization.
  */
-#if (CONFIG_COMMANDS & CFG_CMD_NAND)
+#if defined(CONFIG_CMD_NAND)
 extern ulong
 nand_probe(ulong physadr);
 
@@ -172,7 +176,7 @@ static inline void NF_Init(void)
 void
 nand_init(void)
 {
-       S3C2410_NAND * const nand = S3C2410_GetBase_NAND();
+       struct s3c2410_nand * const nand = s3c2410_get_base_nand();
 
        NF_Init();
 #ifdef DEBUG
@@ -188,21 +192,21 @@ nand_init(void)
 
 static u8 Get_PLD_ID(void)
 {
-       VCMA9_PLD * const pld = VCMA9_GetBase_PLD();
+       VCMA9_PLD * const pld = VCMA9_get_base_PLD();
 
        return(pld->ID);
 }
 
 static u8 Get_PLD_BOARD(void)
 {
-       VCMA9_PLD * const pld = VCMA9_GetBase_PLD();
+       VCMA9_PLD * const pld = VCMA9_get_base_PLD();
 
        return(pld->BOARD);
 }
 
 static u8 Get_PLD_SDRAM(void)
 {
-       VCMA9_PLD * const pld = VCMA9_GetBase_PLD();
+       VCMA9_PLD * const pld = VCMA9_get_base_PLD();
 
        return(pld->SDRAM);
 }
@@ -288,11 +292,11 @@ int dram_init(void)
 
 int checkboard(void)
 {
-       unsigned char s[50];
+       char s[50];
        int i;
        backup_t *b = (backup_t *) s;
 
-       i = getenv_r("serial#", s, 32);
+       i = getenv_f("serial#", s, 32);
        if ((i < 0) || strncmp (s, "VCMA9", 5)) {
                get_backup_values (b);
                if (strncmp (b->signature, "MPL\0", 4) != 0) {
@@ -310,13 +314,10 @@ int checkboard(void)
 }
 
 
-extern void mem_test_reloc(void);
-
 int last_stage_init(void)
 {
-       mem_test_reloc();
        checkboard();
-       show_stdio_dev();
+       stdio_print_current_devices();
        check_env();
        return 0;
 }
@@ -337,10 +338,10 @@ int overwrite_console(void)
 ************************************************************************/
 void print_vcma9_info(void)
 {
-       unsigned char s[50];
+       char s[50];
        int i;
 
-       if ((i = getenv_r("serial#", s, 32)) < 0) {
+       if ((i = getenv_f("serial#", s, 32)) < 0) {
                puts ("### No HW ID - assuming VCMA9");
                printf("i %d", i*24);
        } else {
@@ -348,3 +349,14 @@ void print_vcma9_info(void)
                Show_VCMA9_Info(s, &s[6]);
        }
 }
+
+#ifdef CONFIG_CMD_NET
+int board_eth_init(bd_t *bis)
+{
+       int rc = 0;
+#ifdef CONFIG_CS8900
+       rc = cs8900_initialize(0, CONFIG_CS8900_BASE);
+#endif
+       return rc;
+}
+#endif