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 14 enum bcm47xx_bus_type { 15 #ifdef CONFIG_BCM47XX_SSB 16 BCM47XX_BUS_TYPE_SSB, 17 #endif 18 #ifdef CONFIG_BCM47XX_BCMA 19 BCM47XX_BUS_TYPE_BCMA, 20 #endif 21 }; 22 23 union bcm47xx_bus { 24 #ifdef CONFIG_BCM47XX_SSB 25 struct ssb_bus ssb; 26 #endif 27 #ifdef CONFIG_BCM47XX_BCMA 28 struct bcma_soc bcma; 29 #endif 30 }; 31 32 extern union bcm47xx_bus bcm47xx_bus; 33 extern enum bcm47xx_bus_type bcm47xx_bus_type; 34 35 void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix, 36 bool fallback); 37 38 void bcm47xx_set_system_type(u16 chip_id); 39 40 #endif /* __ASM_BCM47XX_H */ 41