1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef LINUX_BCMA_DRIVER_MIPS_H_ |
3 | #define LINUX_BCMA_DRIVER_MIPS_H_ |
4 | |
5 | #define BCMA_MIPS_IPSFLAG 0x0F08 |
6 | /* which sbflags get routed to mips interrupt 1 */ |
7 | #define BCMA_MIPS_IPSFLAG_IRQ1 0x0000003F |
8 | #define BCMA_MIPS_IPSFLAG_IRQ1_SHIFT 0 |
9 | /* which sbflags get routed to mips interrupt 2 */ |
10 | #define BCMA_MIPS_IPSFLAG_IRQ2 0x00003F00 |
11 | #define BCMA_MIPS_IPSFLAG_IRQ2_SHIFT 8 |
12 | /* which sbflags get routed to mips interrupt 3 */ |
13 | #define BCMA_MIPS_IPSFLAG_IRQ3 0x003F0000 |
14 | #define BCMA_MIPS_IPSFLAG_IRQ3_SHIFT 16 |
15 | /* which sbflags get routed to mips interrupt 4 */ |
16 | #define BCMA_MIPS_IPSFLAG_IRQ4 0x3F000000 |
17 | #define BCMA_MIPS_IPSFLAG_IRQ4_SHIFT 24 |
18 | |
19 | /* MIPS 74K core registers */ |
20 | #define BCMA_MIPS_MIPS74K_CORECTL 0x0000 |
21 | #define BCMA_MIPS_MIPS74K_EXCEPTBASE 0x0004 |
22 | #define BCMA_MIPS_MIPS74K_BIST 0x000C |
23 | #define BCMA_MIPS_MIPS74K_INTMASK_INT0 0x0014 |
24 | #define BCMA_MIPS_MIPS74K_INTMASK(int) \ |
25 | ((int) * 4 + BCMA_MIPS_MIPS74K_INTMASK_INT0) |
26 | #define BCMA_MIPS_MIPS74K_NMIMASK 0x002C |
27 | #define BCMA_MIPS_MIPS74K_GPIOSEL 0x0040 |
28 | #define BCMA_MIPS_MIPS74K_GPIOOUT 0x0044 |
29 | #define BCMA_MIPS_MIPS74K_GPIOEN 0x0048 |
30 | #define BCMA_MIPS_MIPS74K_CLKCTLST 0x01E0 |
31 | |
32 | #define BCMA_MIPS_OOBSELINA74 0x004 |
33 | #define BCMA_MIPS_OOBSELOUTA30 0x100 |
34 | |
35 | struct bcma_device; |
36 | |
37 | struct bcma_drv_mips { |
38 | struct bcma_device *core; |
39 | u8 setup_done:1; |
40 | u8 early_setup_done:1; |
41 | }; |
42 | |
43 | extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore); |
44 | |
45 | #endif /* LINUX_BCMA_DRIVER_MIPS_H_ */ |
46 | |