blob: 798013fab54fdc8a47fd1eedef6b298ee2ad8d1b [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Hauke Mehrtens21e05342011-07-23 01:20:09 +02002#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
Nathan Hintz6bf2e542013-01-11 22:07:22 -080032#define BCMA_MIPS_OOBSELINA74 0x004
Hauke Mehrtens21e05342011-07-23 01:20:09 +020033#define BCMA_MIPS_OOBSELOUTA30 0x100
34
35struct bcma_device;
36
37struct bcma_drv_mips {
38 struct bcma_device *core;
39 u8 setup_done:1;
Hauke Mehrtens49655bb2012-09-29 20:29:49 +020040 u8 early_setup_done:1;
Hauke Mehrtens21e05342011-07-23 01:20:09 +020041};
42
Hauke Mehrtens908debc2011-07-23 01:20:11 +020043extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore);
44
Hauke Mehrtens21e05342011-07-23 01:20:09 +020045#endif /* LINUX_BCMA_DRIVER_MIPS_H_ */