1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (C) 2007 Aurelien Jarno <aurelien@aurel32.net>
4  */
5 
6 #ifndef __ASM_BCM47XX_H
7 #define __ASM_BCM47XX_H
8 
9 #include <linux/ssb/ssb.h>
10 #include <linux/bcma/bcma.h>
11 #include <linux/bcma/bcma_soc.h>
12 #include <linux/bcm47xx_nvram.h>
13 #include <linux/bcm47xx_sprom.h>
14 
15 enum bcm47xx_bus_type {
16 #ifdef CONFIG_BCM47XX_SSB
17 	BCM47XX_BUS_TYPE_SSB,
18 #endif
19 #ifdef CONFIG_BCM47XX_BCMA
20 	BCM47XX_BUS_TYPE_BCMA,
21 #endif
22 };
23 
24 union bcm47xx_bus {
25 #ifdef CONFIG_BCM47XX_SSB
26 	struct ssb_bus ssb;
27 #endif
28 #ifdef CONFIG_BCM47XX_BCMA
29 	struct bcma_soc bcma;
30 #endif
31 };
32 
33 extern union bcm47xx_bus bcm47xx_bus;
34 extern enum bcm47xx_bus_type bcm47xx_bus_type;
35 
36 void bcm47xx_set_system_type(u16 chip_id);
37 
38 #endif /* __ASM_BCM47XX_H */
39