#include <linux/time.h>
#include <linux/io.h>
#include <linux/gpio.h>
+
#include <asm/bootinfo.h>
#include <asm/irq.h>
-#include <asm/ifxmips/ifxmips.h>
-#include <asm/ifxmips/ifxmips_irq.h>
+
+#include <ifxmips.h>
+#include <ifxmips_irq.h>
#define MAX_BOARD_NAME_LEN 32
#define MAX_IFXMIPS_DEVS 9
};
extern int ifxmips_pci_external_clock;
+extern int ifxmips_pci_req_mask;
static unsigned int chiprev;
static int cmdline_mac;
struct gpio_led *ifxmips_leds;
struct gpio_led *gpio_leds;
int pci_external_clock;
+ int pci_req_mask;
int num_devs;
};
static struct ifxmips_board boards[] = {
{
+ /* infineon eval kit */
.type = EASY50712,
.name = "EASY50712",
.system_type = SYSTEM_DANUBE_CHIPID1,
.end = (1 << 0) | (1 << 1)},
.ifxmips_leds = easy50712_leds,
}, {
+ /* infineon eval kit */
.type = EASY4010,
.name = "EASY4010",
.system_type = SYSTEM_TWINPASS_CHIPID,
.end = (1 << 0) | (1 << 1)},
.ifxmips_leds = easy4010_leds,
}, {
+ /* arcaydian annex-a board used by thompson, airties, ... */
.type = ARV4519,
.name = "ARV4519",
.system_type = SYSTEM_DANUBE_CHIPID2,
int __init ifxmips_init_devices(void)
{
- struct ifxmips_board *board = ifxmips_find_board();
+ struct ifxmips_board *board;
chiprev = (ifxmips_r32(IFXMIPS_MPS_CHIPID) & 0x0FFFFFFF);
+ board = ifxmips_find_board();
ifxmips_brn = ifxmips_find_brn_block();
if (!cmdline_mac)
ifxmips_led_data.num_leds = ARRAY_SIZE(easy4010_leds);
break;
case ARV4519:
+ /* set some sane defaults for the gpios */
gpio_set_value(3, 0);
gpio_set_value(4, 0);
gpio_set_value(5, 0);
ifxmips_gpio_dev.resource = &board->gpiodev_resource;
if (board->pci_external_clock)
ifxmips_pci_external_clock = 1;
+ if (board->pci_req_mask)
+ ifxmips_pci_req_mask = board->pci_req_mask;
printk(KERN_INFO "using board definition %s\n", board->name);
return platform_add_devices(board->devs, board->num_devs);
}