diff options
Diffstat (limited to 'arch/mips/alchemy/devboards/db1300.c')
| -rw-r--r-- | arch/mips/alchemy/devboards/db1300.c | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/arch/mips/alchemy/devboards/db1300.c b/arch/mips/alchemy/devboards/db1300.c index 6167e73eef9c..1aed6be4de10 100644 --- a/arch/mips/alchemy/devboards/db1300.c +++ b/arch/mips/alchemy/devboards/db1300.c | |||
| @@ -26,12 +26,44 @@ | |||
| 26 | #include <asm/mach-au1x00/au1200fb.h> | 26 | #include <asm/mach-au1x00/au1200fb.h> |
| 27 | #include <asm/mach-au1x00/au1xxx_dbdma.h> | 27 | #include <asm/mach-au1x00/au1xxx_dbdma.h> |
| 28 | #include <asm/mach-au1x00/au1xxx_psc.h> | 28 | #include <asm/mach-au1x00/au1xxx_psc.h> |
| 29 | #include <asm/mach-db1x00/db1300.h> | ||
| 30 | #include <asm/mach-db1x00/bcsr.h> | 29 | #include <asm/mach-db1x00/bcsr.h> |
| 31 | #include <asm/mach-au1x00/prom.h> | 30 | #include <asm/mach-au1x00/prom.h> |
| 32 | 31 | ||
| 33 | #include "platform.h" | 32 | #include "platform.h" |
| 34 | 33 | ||
| 34 | /* FPGA (external mux) interrupt sources */ | ||
| 35 | #define DB1300_FIRST_INT (ALCHEMY_GPIC_INT_LAST + 1) | ||
| 36 | #define DB1300_IDE_INT (DB1300_FIRST_INT + 0) | ||
| 37 | #define DB1300_ETH_INT (DB1300_FIRST_INT + 1) | ||
| 38 | #define DB1300_CF_INT (DB1300_FIRST_INT + 2) | ||
| 39 | #define DB1300_VIDEO_INT (DB1300_FIRST_INT + 4) | ||
| 40 | #define DB1300_HDMI_INT (DB1300_FIRST_INT + 5) | ||
| 41 | #define DB1300_DC_INT (DB1300_FIRST_INT + 6) | ||
| 42 | #define DB1300_FLASH_INT (DB1300_FIRST_INT + 7) | ||
| 43 | #define DB1300_CF_INSERT_INT (DB1300_FIRST_INT + 8) | ||
| 44 | #define DB1300_CF_EJECT_INT (DB1300_FIRST_INT + 9) | ||
| 45 | #define DB1300_AC97_INT (DB1300_FIRST_INT + 10) | ||
| 46 | #define DB1300_AC97_PEN_INT (DB1300_FIRST_INT + 11) | ||
| 47 | #define DB1300_SD1_INSERT_INT (DB1300_FIRST_INT + 12) | ||
| 48 | #define DB1300_SD1_EJECT_INT (DB1300_FIRST_INT + 13) | ||
| 49 | #define DB1300_OTG_VBUS_OC_INT (DB1300_FIRST_INT + 14) | ||
| 50 | #define DB1300_HOST_VBUS_OC_INT (DB1300_FIRST_INT + 15) | ||
| 51 | #define DB1300_LAST_INT (DB1300_FIRST_INT + 15) | ||
| 52 | |||
| 53 | /* SMSC9210 CS */ | ||
| 54 | #define DB1300_ETH_PHYS_ADDR 0x19000000 | ||
| 55 | #define DB1300_ETH_PHYS_END 0x197fffff | ||
| 56 | |||
| 57 | /* ATA CS */ | ||
| 58 | #define DB1300_IDE_PHYS_ADDR 0x18800000 | ||
| 59 | #define DB1300_IDE_REG_SHIFT 5 | ||
| 60 | #define DB1300_IDE_PHYS_LEN (16 << DB1300_IDE_REG_SHIFT) | ||
| 61 | |||
| 62 | /* NAND CS */ | ||
| 63 | #define DB1300_NAND_PHYS_ADDR 0x20000000 | ||
| 64 | #define DB1300_NAND_PHYS_END 0x20000fff | ||
| 65 | |||
| 66 | |||
| 35 | static struct i2c_board_info db1300_i2c_devs[] __initdata = { | 67 | static struct i2c_board_info db1300_i2c_devs[] __initdata = { |
| 36 | { I2C_BOARD_INFO("wm8731", 0x1b), }, /* I2S audio codec */ | 68 | { I2C_BOARD_INFO("wm8731", 0x1b), }, /* I2S audio codec */ |
| 37 | { I2C_BOARD_INFO("ne1619", 0x2d), }, /* adm1025-compat hwmon */ | 69 | { I2C_BOARD_INFO("ne1619", 0x2d), }, /* adm1025-compat hwmon */ |
| @@ -759,11 +791,15 @@ int __init db1300_board_setup(void) | |||
| 759 | { | 791 | { |
| 760 | unsigned short whoami; | 792 | unsigned short whoami; |
| 761 | 793 | ||
| 762 | db1300_gpio_config(); | ||
| 763 | bcsr_init(DB1300_BCSR_PHYS_ADDR, | 794 | bcsr_init(DB1300_BCSR_PHYS_ADDR, |
| 764 | DB1300_BCSR_PHYS_ADDR + DB1300_BCSR_HEXLED_OFS); | 795 | DB1300_BCSR_PHYS_ADDR + DB1300_BCSR_HEXLED_OFS); |
| 765 | 796 | ||
| 766 | whoami = bcsr_read(BCSR_WHOAMI); | 797 | whoami = bcsr_read(BCSR_WHOAMI); |
| 798 | if (BCSR_WHOAMI_BOARD(whoami) != BCSR_WHOAMI_DB1300) | ||
| 799 | return -ENODEV; | ||
| 800 | |||
| 801 | db1300_gpio_config(); | ||
| 802 | |||
| 767 | printk(KERN_INFO "NetLogic DBAu1300 Development Platform.\n\t" | 803 | printk(KERN_INFO "NetLogic DBAu1300 Development Platform.\n\t" |
| 768 | "BoardID %d CPLD Rev %d DaughtercardID %d\n", | 804 | "BoardID %d CPLD Rev %d DaughtercardID %d\n", |
| 769 | BCSR_WHOAMI_BOARD(whoami), BCSR_WHOAMI_CPLD(whoami), | 805 | BCSR_WHOAMI_BOARD(whoami), BCSR_WHOAMI_CPLD(whoami), |
