]>
git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - arch/mips/alchemy/devboards/db1xxx.c
2 * Alchemy DB/PB1xxx board support.
6 #include <asm/mach-au1x00/au1000.h>
7 #include <asm/mach-db1x00/bcsr.h>
9 int __init
db1000_board_setup(void);
10 int __init
db1000_dev_setup(void);
11 int __init
db1500_pci_setup(void);
12 int __init
db1200_board_setup(void);
13 int __init
db1200_dev_setup(void);
14 int __init
db1300_board_setup(void);
15 int __init
db1300_dev_setup(void);
16 int __init
db1550_board_setup(void);
17 int __init
db1550_dev_setup(void);
18 int __init
db1550_pci_setup(int);
20 static const char *board_type_str(void)
22 switch (BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI
))) {
23 case BCSR_WHOAMI_DB1000
:
25 case BCSR_WHOAMI_DB1500
:
27 case BCSR_WHOAMI_DB1100
:
29 case BCSR_WHOAMI_PB1500
:
30 case BCSR_WHOAMI_PB1500R2
:
32 case BCSR_WHOAMI_PB1100
:
34 case BCSR_WHOAMI_PB1200_DDR1
:
35 case BCSR_WHOAMI_PB1200_DDR2
:
37 case BCSR_WHOAMI_DB1200
:
39 case BCSR_WHOAMI_DB1300
:
41 case BCSR_WHOAMI_DB1550
:
43 case BCSR_WHOAMI_PB1550_SDR
:
44 case BCSR_WHOAMI_PB1550_DDR
:
51 const char *get_system_type(void)
53 return board_type_str();
56 void __init
board_setup(void)
60 switch (alchemy_get_cputype()) {
61 case ALCHEMY_CPU_AU1000
:
62 case ALCHEMY_CPU_AU1500
:
63 case ALCHEMY_CPU_AU1100
:
64 ret
= db1000_board_setup();
66 case ALCHEMY_CPU_AU1550
:
67 ret
= db1550_board_setup();
69 case ALCHEMY_CPU_AU1200
:
70 ret
= db1200_board_setup();
72 case ALCHEMY_CPU_AU1300
:
73 ret
= db1300_board_setup();
76 pr_err("unsupported CPU on board\n");
80 panic("cannot initialize board support");
83 static int __init
db1xxx_arch_init(void)
85 int id
= BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI
));
86 if (id
== BCSR_WHOAMI_DB1550
)
87 return db1550_pci_setup(0);
88 else if ((id
== BCSR_WHOAMI_PB1550_SDR
) ||
89 (id
== BCSR_WHOAMI_PB1550_DDR
))
90 return db1550_pci_setup(1);
91 else if ((id
== BCSR_WHOAMI_DB1500
) || (id
== BCSR_WHOAMI_PB1500
) ||
92 (id
== BCSR_WHOAMI_PB1500R2
))
93 return db1500_pci_setup();
97 arch_initcall(db1xxx_arch_init
);
99 static int __init
db1xxx_dev_init(void)
101 mips_set_machine_name(board_type_str());
102 switch (BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI
))) {
103 case BCSR_WHOAMI_DB1000
:
104 case BCSR_WHOAMI_DB1500
:
105 case BCSR_WHOAMI_DB1100
:
106 case BCSR_WHOAMI_PB1500
:
107 case BCSR_WHOAMI_PB1500R2
:
108 case BCSR_WHOAMI_PB1100
:
109 return db1000_dev_setup();
110 case BCSR_WHOAMI_PB1200_DDR1
:
111 case BCSR_WHOAMI_PB1200_DDR2
:
112 case BCSR_WHOAMI_DB1200
:
113 return db1200_dev_setup();
114 case BCSR_WHOAMI_DB1300
:
115 return db1300_dev_setup();
116 case BCSR_WHOAMI_DB1550
:
117 case BCSR_WHOAMI_PB1550_SDR
:
118 case BCSR_WHOAMI_PB1550_DDR
:
119 return db1550_dev_setup();
123 device_initcall(db1xxx_dev_init
);