2 * DB1200/PB1200 / DB1550 / DB1300 board support.
4 * These 4 boards can reliably be supported in a single kernel image.
7 #include <asm/mach-au1x00/au1000.h>
8 #include <asm/mach-db1x00/bcsr.h>
10 int __init db1200_board_setup(void);
11 int __init db1200_dev_setup(void);
12 int __init db1300_board_setup(void);
13 int __init db1300_dev_setup(void);
14 int __init db1550_board_setup(void);
15 int __init db1550_dev_setup(void);
16 int __init db1550_pci_setup(void);
18 static const char *board_type_str(void)
20 switch (BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI))) {
21 case BCSR_WHOAMI_PB1200_DDR1:
22 case BCSR_WHOAMI_PB1200_DDR2:
24 case BCSR_WHOAMI_DB1200:
26 case BCSR_WHOAMI_DB1300:
28 case BCSR_WHOAMI_DB1550:
35 const char *get_system_type(void)
37 return board_type_str();
40 void __init board_setup(void)
44 switch (alchemy_get_cputype()) {
45 case ALCHEMY_CPU_AU1550:
46 ret = db1550_board_setup();
48 case ALCHEMY_CPU_AU1200:
49 ret = db1200_board_setup();
51 case ALCHEMY_CPU_AU1300:
52 ret = db1300_board_setup();
55 pr_err("unsupported CPU on board\n");
59 panic("cannot initialize board support\n");
62 int __init db1235_arch_init(void)
64 if (BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI)) == BCSR_WHOAMI_DB1550)
65 return db1550_pci_setup();
68 arch_initcall(db1235_arch_init);
70 int __init db1235_dev_init(void)
72 switch (BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI))) {
73 case BCSR_WHOAMI_PB1200_DDR1:
74 case BCSR_WHOAMI_PB1200_DDR2:
75 case BCSR_WHOAMI_DB1200:
76 return db1200_dev_setup();
77 case BCSR_WHOAMI_DB1300:
78 return db1300_dev_setup();
79 case BCSR_WHOAMI_DB1550:
80 return db1550_dev_setup();
84 device_initcall(db1235_dev_init);