mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-02 10:43:57 +08:00
49655bb8a5
Some parts of the initialization for chip common and the pcie core are accessing the sprom struct, but it is not initialized at that stage. Just do the necessary thing in the early register on SoCs and not the complete initialization to read out the nvram from the flash chip. After it is possible to read out the nvram, the sprom should be parsed from it and the full initialization of the cores should be run. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
55 lines
1.8 KiB
C
55 lines
1.8 KiB
C
#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_OOBSELOUTA30 0x100
|
|
|
|
struct bcma_device;
|
|
|
|
struct bcma_drv_mips {
|
|
struct bcma_device *core;
|
|
u8 setup_done:1;
|
|
u8 early_setup_done:1;
|
|
unsigned int assigned_irqs;
|
|
};
|
|
|
|
#ifdef CONFIG_BCMA_DRIVER_MIPS
|
|
extern void bcma_core_mips_init(struct bcma_drv_mips *mcore);
|
|
extern void bcma_core_mips_early_init(struct bcma_drv_mips *mcore);
|
|
#else
|
|
static inline void bcma_core_mips_init(struct bcma_drv_mips *mcore) { }
|
|
static inline void bcma_core_mips_early_init(struct bcma_drv_mips *mcore) { }
|
|
#endif
|
|
|
|
extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore);
|
|
|
|
extern unsigned int bcma_core_mips_irq(struct bcma_device *dev);
|
|
|
|
#endif /* LINUX_BCMA_DRIVER_MIPS_H_ */
|