162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2007 Aurelien Jarno <aurelien@aurel32.net>
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __ASM_BCM47XX_H
762306a36Sopenharmony_ci#define __ASM_BCM47XX_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/ssb/ssb.h>
1062306a36Sopenharmony_ci#include <linux/bcma/bcma.h>
1162306a36Sopenharmony_ci#include <linux/bcma/bcma_soc.h>
1262306a36Sopenharmony_ci#include <linux/bcm47xx_nvram.h>
1362306a36Sopenharmony_ci#include <linux/bcm47xx_sprom.h>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cienum bcm47xx_bus_type {
1662306a36Sopenharmony_ci#ifdef CONFIG_BCM47XX_SSB
1762306a36Sopenharmony_ci	BCM47XX_BUS_TYPE_SSB,
1862306a36Sopenharmony_ci#endif
1962306a36Sopenharmony_ci#ifdef CONFIG_BCM47XX_BCMA
2062306a36Sopenharmony_ci	BCM47XX_BUS_TYPE_BCMA,
2162306a36Sopenharmony_ci#endif
2262306a36Sopenharmony_ci};
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciunion bcm47xx_bus {
2562306a36Sopenharmony_ci#ifdef CONFIG_BCM47XX_SSB
2662306a36Sopenharmony_ci	struct ssb_bus ssb;
2762306a36Sopenharmony_ci#endif
2862306a36Sopenharmony_ci#ifdef CONFIG_BCM47XX_BCMA
2962306a36Sopenharmony_ci	struct bcma_soc bcma;
3062306a36Sopenharmony_ci#endif
3162306a36Sopenharmony_ci};
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciextern union bcm47xx_bus bcm47xx_bus;
3462306a36Sopenharmony_ciextern enum bcm47xx_bus_type bcm47xx_bus_type;
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_civoid bcm47xx_set_system_type(u16 chip_id);
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci#endif /* __ASM_BCM47XX_H */
39