[adm5120] more license cleanups
[openwrt-10.03/.git] / target / linux / adm5120 / files / include / asm-mips / mach-adm5120 / adm5120_board.h
1 /*
2  *  $Id$
3  *
4  *  ADM5120 board definitions
5  *
6  *  Copyright (C) 2007 OpenWrt.org
7  *  Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org>
8  *
9  *  This program is free software; you can redistribute it and/or modify it
10  *  under the terms of the GNU General Public License version 2 as published
11  *  by the Free Software Foundation.
12  *
13  */
14
15 #ifndef _ADM5120_BOARD_H_
16 #define _ADM5120_BOARD_H_
17
18 #include <linux/init.h>
19 #include <linux/list.h>
20
21 #define ADM5120_BOARD_NAMELEN   64
22
23 struct adm5120_board {
24         unsigned long           mach_type;
25         char                    name[ADM5120_BOARD_NAMELEN];
26
27         void                    (*board_setup)(void);
28         void                    (*board_reset)(void);
29
30         unsigned int            eth_num_ports;
31         unsigned char           *eth_vlans;
32         unsigned int            num_devices;
33         struct platform_device  **devices;
34         unsigned int            pci_nr_irqs;
35         struct adm5120_pci_irq  *pci_irq_map;
36
37         struct list_head        list;
38 };
39
40 extern void adm5120_board_register(struct adm5120_board *) __init;
41
42 #define ADM5120_BOARD_START(_type, _name)                               \
43 static struct adm5120_board adm5120_board_##_type __initdata;           \
44                                                                         \
45 static __init int adm5120_board_##_type##_register(void)                \
46 {                                                                       \
47         adm5120_board_register(&adm5120_board_##_type);                 \
48         return 0;                                                       \
49 }                                                                       \
50 pure_initcall(adm5120_board_##_type##_register);                        \
51                                                                         \
52 static struct adm5120_board adm5120_board_##_type __initdata = {        \
53         .mach_type      = MACH_ADM5120_##_type,                         \
54         .name           = _name,
55
56 #define ADM5120_BOARD_END                                               \
57 };
58
59 #endif /* _ADM5120_BOARD_H_ */