summaryrefslogtreecommitdiffstats
path: root/arch/mips/alchemy/devboards/db1235.c
diff options
context:
space:
mode:
authorManuel Lauss2012-09-14 14:47:10 +0200
committerRalf Baechle2012-10-11 11:11:20 +0200
commit24e8c1a611a706f51d4d9dc39b2c9977e25a54c4 (patch)
tree91696346623fb7693b290730d65d2208fa47b88a /arch/mips/alchemy/devboards/db1235.c
parentMIPS: Alchemy: Single kernel for DB1200/1300/1550 (diff)
downloadkernel-qcow2-linux-24e8c1a611a706f51d4d9dc39b2c9977e25a54c4.tar.gz
kernel-qcow2-linux-24e8c1a611a706f51d4d9dc39b2c9977e25a54c4.tar.xz
kernel-qcow2-linux-24e8c1a611a706f51d4d9dc39b2c9977e25a54c4.zip
MIPS: Alchemy: merge PB1550 support into DB1550 code
The PB1550 is more or less a DB1550 without the PCI IDE controller, a more complicated (read: configurable) Flash setup and some other minor changes. Like the DB1550 it can be automatically detected by reading the CPLD ID register bits. This patch adds PB1550 detection and setup to the DB1550 code. Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/4337/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/alchemy/devboards/db1235.c')
-rw-r--r--arch/mips/alchemy/devboards/db1235.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/mips/alchemy/devboards/db1235.c b/arch/mips/alchemy/devboards/db1235.c
index 15003eb1f840..c76a90f78664 100644
--- a/arch/mips/alchemy/devboards/db1235.c
+++ b/arch/mips/alchemy/devboards/db1235.c
@@ -13,7 +13,7 @@ int __init db1300_board_setup(void);
int __init db1300_dev_setup(void);
int __init db1550_board_setup(void);
int __init db1550_dev_setup(void);
-int __init db1550_pci_setup(void);
+int __init db1550_pci_setup(int);
static const char *board_type_str(void)
{
@@ -27,6 +27,9 @@ static const char *board_type_str(void)
return "DB1300";
case BCSR_WHOAMI_DB1550:
return "DB1550";
+ case BCSR_WHOAMI_PB1550_SDR:
+ case BCSR_WHOAMI_PB1550_DDR:
+ return "PB1550";
default:
return "(unknown)";
}
@@ -61,8 +64,13 @@ void __init board_setup(void)
int __init db1235_arch_init(void)
{
- if (BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI)) == BCSR_WHOAMI_DB1550)
- return db1550_pci_setup();
+ int id = BCSR_WHOAMI_BOARD(bcsr_read(BCSR_WHOAMI));
+ if (id == BCSR_WHOAMI_DB1550)
+ return db1550_pci_setup(0);
+ else if ((id == BCSR_WHOAMI_PB1550_SDR) ||
+ (id == BCSR_WHOAMI_PB1550_DDR))
+ return db1550_pci_setup(1);
+
return 0;
}
arch_initcall(db1235_arch_init);
@@ -77,6 +85,8 @@ int __init db1235_dev_init(void)
case BCSR_WHOAMI_DB1300:
return db1300_dev_setup();
case BCSR_WHOAMI_DB1550:
+ case BCSR_WHOAMI_PB1550_SDR:
+ case BCSR_WHOAMI_PB1550_DDR:
return db1550_dev_setup();
}
return 0;