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 unsigned int assigned_irqs; 39 }; 40 41 #ifdef CONFIG_BCMA_DRIVER_MIPS 42 extern void bcma_core_mips_init(struct bcma_drv_mips *mcore); 43 #else bcma_core_mips_init(struct bcma_drv_mips * mcore)44static inline void bcma_core_mips_init(struct bcma_drv_mips *mcore) { } 45 #endif 46 47 extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore); 48 49 extern unsigned int bcma_core_mips_irq(struct bcma_device *dev); 50 51 #endif /* LINUX_BCMA_DRIVER_MIPS_H_ */ 52