GNU Linux-libre 4.19.245-gnu1
[releases.git] / include / linux / bcma / bcma_driver_mips.h
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_ */