root/include/linux/bcma/bcma_driver_mips.h
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef LINUX_BCMA_DRIVER_MIPS_H_
#define LINUX_BCMA_DRIVER_MIPS_H_

#define BCMA_MIPS_IPSFLAG               0x0F08
/* which sbflags get routed to mips interrupt 1 */
#define  BCMA_MIPS_IPSFLAG_IRQ1         0x0000003F
#define  BCMA_MIPS_IPSFLAG_IRQ1_SHIFT   0
/* which sbflags get routed to mips interrupt 2 */
#define  BCMA_MIPS_IPSFLAG_IRQ2         0x00003F00
#define  BCMA_MIPS_IPSFLAG_IRQ2_SHIFT   8
/* which sbflags get routed to mips interrupt 3 */
#define  BCMA_MIPS_IPSFLAG_IRQ3         0x003F0000
#define  BCMA_MIPS_IPSFLAG_IRQ3_SHIFT   16
/* which sbflags get routed to mips interrupt 4 */
#define  BCMA_MIPS_IPSFLAG_IRQ4         0x3F000000
#define  BCMA_MIPS_IPSFLAG_IRQ4_SHIFT   24

/* MIPS 74K core registers */
#define BCMA_MIPS_MIPS74K_CORECTL       0x0000
#define BCMA_MIPS_MIPS74K_EXCEPTBASE    0x0004
#define BCMA_MIPS_MIPS74K_BIST          0x000C
#define BCMA_MIPS_MIPS74K_INTMASK_INT0  0x0014
#define BCMA_MIPS_MIPS74K_INTMASK(int) \
        ((int) * 4 + BCMA_MIPS_MIPS74K_INTMASK_INT0)
#define BCMA_MIPS_MIPS74K_NMIMASK       0x002C
#define BCMA_MIPS_MIPS74K_GPIOSEL       0x0040
#define BCMA_MIPS_MIPS74K_GPIOOUT       0x0044
#define BCMA_MIPS_MIPS74K_GPIOEN        0x0048
#define BCMA_MIPS_MIPS74K_CLKCTLST      0x01E0

#define BCMA_MIPS_OOBSELINA74           0x004
#define BCMA_MIPS_OOBSELOUTA30          0x100

struct bcma_device;

struct bcma_drv_mips {
        struct bcma_device *core;
        u8 setup_done:1;
        u8 early_setup_done:1;
};

extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore);

#endif /* LINUX_BCMA_DRIVER_MIPS_H_ */