]> rtime.felk.cvut.cz Git - can-eth-gw-linux.git/blob - include/linux/bcma/bcma_driver_mips.h
Merge branch 'akpm' (Andrew's patch-bomb)
[can-eth-gw-linux.git] / include / linux / bcma / bcma_driver_mips.h
1 #ifndef LINUX_BCMA_DRIVER_MIPS_H_
2 #define LINUX_BCMA_DRIVER_MIPS_H_
3
4 #define BCMA_MIPS_IPSFLAG               0x0F08
5 /* which sbflags get routed to mips interrupt 1 */
6 #define  BCMA_MIPS_IPSFLAG_IRQ1         0x0000003F
7 #define  BCMA_MIPS_IPSFLAG_IRQ1_SHIFT   0
8 /* which sbflags get routed to mips interrupt 2 */
9 #define  BCMA_MIPS_IPSFLAG_IRQ2         0x00003F00
10 #define  BCMA_MIPS_IPSFLAG_IRQ2_SHIFT   8
11 /* which sbflags get routed to mips interrupt 3 */
12 #define  BCMA_MIPS_IPSFLAG_IRQ3         0x003F0000
13 #define  BCMA_MIPS_IPSFLAG_IRQ3_SHIFT   16
14 /* which sbflags get routed to mips interrupt 4 */
15 #define  BCMA_MIPS_IPSFLAG_IRQ4         0x3F000000
16 #define  BCMA_MIPS_IPSFLAG_IRQ4_SHIFT   24
17
18 /* MIPS 74K core registers */
19 #define BCMA_MIPS_MIPS74K_CORECTL       0x0000
20 #define BCMA_MIPS_MIPS74K_EXCEPTBASE    0x0004
21 #define BCMA_MIPS_MIPS74K_BIST          0x000C
22 #define BCMA_MIPS_MIPS74K_INTMASK_INT0  0x0014
23 #define BCMA_MIPS_MIPS74K_INTMASK(int) \
24         ((int) * 4 + BCMA_MIPS_MIPS74K_INTMASK_INT0)
25 #define BCMA_MIPS_MIPS74K_NMIMASK       0x002C
26 #define BCMA_MIPS_MIPS74K_GPIOSEL       0x0040
27 #define BCMA_MIPS_MIPS74K_GPIOOUT       0x0044
28 #define BCMA_MIPS_MIPS74K_GPIOEN        0x0048
29 #define BCMA_MIPS_MIPS74K_CLKCTLST      0x01E0
30
31 #define BCMA_MIPS_OOBSELOUTA30          0x100
32
33 struct bcma_device;
34
35 struct bcma_drv_mips {
36         struct bcma_device *core;
37         u8 setup_done:1;
38         u8 early_setup_done:1;
39         unsigned int assigned_irqs;
40 };
41
42 #ifdef CONFIG_BCMA_DRIVER_MIPS
43 extern void bcma_core_mips_init(struct bcma_drv_mips *mcore);
44 extern void bcma_core_mips_early_init(struct bcma_drv_mips *mcore);
45 #else
46 static inline void bcma_core_mips_init(struct bcma_drv_mips *mcore) { }
47 static inline void bcma_core_mips_early_init(struct bcma_drv_mips *mcore) { }
48 #endif
49
50 extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore);
51
52 extern unsigned int bcma_core_mips_irq(struct bcma_device *dev);
53
54 #endif /* LINUX_BCMA_DRIVER_MIPS_H_ */