Merge branch 'master' of git://git.denx.de/u-boot-video
[oweals/u-boot.git] / board / csb226 / csb226.c
index bf9b4f840d2b42da546756d50d870d2b1ce12437..6eed9ad676f6593da1aa9f747ae74ab395a48d5a 100644 (file)
  */
 
 #include <common.h>
+#include <netdev.h>
 #include <asm/arch/pxa-regs.h>
+#include <asm/io.h>
+
+DECLARE_GLOBAL_DATA_PTR;
 
 #ifdef CONFIG_SHOW_BOOT_PROGRESS
 # define SHOW_BOOT_PROGRESS(arg)        show_boot_progress(arg)
@@ -65,13 +69,11 @@ int misc_init_r(void)
 
 int board_init (void)
 {
-       DECLARE_GLOBAL_DATA_PTR;
-
        /* memory and cpu-speed are setup before relocation */
        /* so we do _nothing_ here */
 
        /* arch number of CSB226 board */
-       gd->bd->bi_arch_number = 216;
+       gd->bd->bi_arch_number = MACH_TYPE_CSB226;
 
        /* adress of boot parameters */
        gd->bd->bi_boot_params = 0xa0000100;
@@ -88,8 +90,6 @@ int board_init (void)
 
 int dram_init (void)
 {
-       DECLARE_GLOBAL_DATA_PTR;
-
        gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
        gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
 
@@ -109,23 +109,23 @@ void csb226_set_led(int led, int state)
        switch(led) {
 
                case 0: if (state==1) {
-                               GPCR0 |= CSB226_USER_LED0;
+                               writel(readl(GPCR0) | CSB226_USER_LED0, GPCR0);
                        } else if (state==0) {
-                               GPSR0 |= CSB226_USER_LED0;
+                               writel(readl(GPSR0) | CSB226_USER_LED0, GPSR0);
                        }
                        break;
 
                case 1: if (state==1) {
-                               GPCR0 |= CSB226_USER_LED1;
+                               writel(readl(GPCR0) | CSB226_USER_LED1, GPCR0);
                        } else if (state==0) {
-                               GPSR0 |= CSB226_USER_LED1;
+                               writel(readl(GPSR0) | CSB226_USER_LED1, GPSR0);
                        }
                        break;
 
                case 2: if (state==1) {
-                               GPCR0 |= CSB226_USER_LED2;
+                               writel(readl(GPCR0) | CSB226_USER_LED2, GPCR0);
                        } else if (state==0) {
-                               GPSR0 |= CSB226_USER_LED2;
+                               writel(readl(GPSR0) | CSB226_USER_LED2, GPSR0);
                        }
                        break;
        }
@@ -153,3 +153,14 @@ void show_boot_progress (int status)
 
        return;
 }
+
+#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