1 /* 2 * Copyright (C) 2007 Aurelien Jarno <aurelien@aurel32.net> 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation; either version 2 7 * of the License, or (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 */ 18 19 #ifndef __ASM_BCM47XX_H 20 #define __ASM_BCM47XX_H 21 22 #include <linux/ssb/ssb.h> 23 #include <linux/bcma/bcma.h> 24 #include <linux/bcma/bcma_soc.h> 25 #include <linux/bcm47xx_nvram.h> 26 27 enum bcm47xx_bus_type { 28 #ifdef CONFIG_BCM47XX_SSB 29 BCM47XX_BUS_TYPE_SSB, 30 #endif 31 #ifdef CONFIG_BCM47XX_BCMA 32 BCM47XX_BUS_TYPE_BCMA, 33 #endif 34 }; 35 36 union bcm47xx_bus { 37 #ifdef CONFIG_BCM47XX_SSB 38 struct ssb_bus ssb; 39 #endif 40 #ifdef CONFIG_BCM47XX_BCMA 41 struct bcma_soc bcma; 42 #endif 43 }; 44 45 extern union bcm47xx_bus bcm47xx_bus; 46 extern enum bcm47xx_bus_type bcm47xx_bus_type; 47 48 void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix, 49 bool fallback); 50 51 #ifdef CONFIG_BCM47XX_SSB 52 void bcm47xx_fill_ssb_boardinfo(struct ssb_boardinfo *boardinfo, 53 const char *prefix); 54 #endif 55 #ifdef CONFIG_BCM47XX_BCMA 56 void bcm47xx_fill_bcma_boardinfo(struct bcma_boardinfo *boardinfo, 57 const char *prefix); 58 #endif 59 60 void bcm47xx_set_system_type(u16 chip_id); 61 62 #endif /* __ASM_BCM47XX_H */ 63