linux/drivers/bcma/bcma_private.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef LINUX_BCMA_PRIVATE_H_
   3#define LINUX_BCMA_PRIVATE_H_
   4
   5#ifndef pr_fmt
   6#define pr_fmt(fmt)             KBUILD_MODNAME ": " fmt
   7#endif
   8
   9#include <linux/bcma/bcma.h>
  10#include <linux/delay.h>
  11
  12#define bcma_err(bus, fmt, ...) \
  13        dev_err((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__)
  14#define bcma_warn(bus, fmt, ...) \
  15        dev_warn((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__)
  16#define bcma_info(bus, fmt, ...) \
  17        dev_info((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__)
  18#define bcma_debug(bus, fmt, ...) \
  19        dev_dbg((bus)->dev, "bus%d: " fmt, (bus)->num, ##__VA_ARGS__)
  20
  21struct bcma_bus;
  22
  23/* main.c */
  24bool bcma_wait_value(struct bcma_device *core, u16 reg, u32 mask, u32 value,
  25                     int timeout);
  26void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core);
  27void bcma_init_bus(struct bcma_bus *bus);
  28void bcma_unregister_cores(struct bcma_bus *bus);
  29int bcma_bus_register(struct bcma_bus *bus);
  30void bcma_bus_unregister(struct bcma_bus *bus);
  31int __init bcma_bus_early_register(struct bcma_bus *bus);
  32#ifdef CONFIG_PM
  33int bcma_bus_suspend(struct bcma_bus *bus);
  34int bcma_bus_resume(struct bcma_bus *bus);
  35#endif
  36
  37/* scan.c */
  38void bcma_detect_chip(struct bcma_bus *bus);
  39int bcma_bus_scan(struct bcma_bus *bus);
  40
  41/* sprom.c */
  42int bcma_sprom_get(struct bcma_bus *bus);
  43
  44/* driver_chipcommon.c */
  45void bcma_core_chipcommon_early_init(struct bcma_drv_cc *cc);
  46void bcma_core_chipcommon_init(struct bcma_drv_cc *cc);
  47void bcma_chipco_bcm4331_ext_pa_lines_ctl(struct bcma_drv_cc *cc, bool enable);
  48#ifdef CONFIG_BCMA_DRIVER_MIPS
  49void bcma_chipco_serial_init(struct bcma_drv_cc *cc);
  50#endif /* CONFIG_BCMA_DRIVER_MIPS */
  51
  52/* driver_chipcommon_b.c */
  53int bcma_core_chipcommon_b_init(struct bcma_drv_cc_b *ccb);
  54void bcma_core_chipcommon_b_free(struct bcma_drv_cc_b *ccb);
  55
  56/* driver_chipcommon_pmu.c */
  57void bcma_pmu_early_init(struct bcma_drv_cc *cc);
  58void bcma_pmu_init(struct bcma_drv_cc *cc);
  59u32 bcma_pmu_get_alp_clock(struct bcma_drv_cc *cc);
  60u32 bcma_pmu_get_cpu_clock(struct bcma_drv_cc *cc);
  61
  62/**************************************************
  63 * driver_chipcommon_sflash.c
  64 **************************************************/
  65
  66#ifdef CONFIG_BCMA_PFLASH
  67extern struct platform_device bcma_pflash_dev;
  68int bcma_pflash_init(struct bcma_drv_cc *cc);
  69#else
  70static inline int bcma_pflash_init(struct bcma_drv_cc *cc)
  71{
  72        bcma_err(cc->core->bus, "Parallel flash not supported\n");
  73        return 0;
  74}
  75#endif /* CONFIG_BCMA_PFLASH */
  76
  77#ifdef CONFIG_BCMA_SFLASH
  78/* driver_chipcommon_sflash.c */
  79int bcma_sflash_init(struct bcma_drv_cc *cc);
  80extern struct platform_device bcma_sflash_dev;
  81#else
  82static inline int bcma_sflash_init(struct bcma_drv_cc *cc)
  83{
  84        bcma_err(cc->core->bus, "Serial flash not supported\n");
  85        return 0;
  86}
  87#endif /* CONFIG_BCMA_SFLASH */
  88
  89#ifdef CONFIG_BCMA_NFLASH
  90/* driver_chipcommon_nflash.c */
  91int bcma_nflash_init(struct bcma_drv_cc *cc);
  92extern struct platform_device bcma_nflash_dev;
  93#else
  94static inline int bcma_nflash_init(struct bcma_drv_cc *cc)
  95{
  96        bcma_err(cc->core->bus, "NAND flash not supported\n");
  97        return 0;
  98}
  99#endif /* CONFIG_BCMA_NFLASH */
 100
 101#ifdef CONFIG_BCMA_HOST_PCI
 102/* host_pci.c */
 103extern int __init bcma_host_pci_init(void);
 104extern void __exit bcma_host_pci_exit(void);
 105#endif /* CONFIG_BCMA_HOST_PCI */
 106
 107/* host_soc.c */
 108#if defined(CONFIG_BCMA_HOST_SOC) && defined(CONFIG_OF)
 109extern int __init bcma_host_soc_register_driver(void);
 110extern void __exit bcma_host_soc_unregister_driver(void);
 111#else
 112static inline int __init bcma_host_soc_register_driver(void)
 113{
 114        return 0;
 115}
 116static inline void __exit bcma_host_soc_unregister_driver(void)
 117{
 118}
 119#endif /* CONFIG_BCMA_HOST_SOC && CONFIG_OF */
 120
 121/* driver_pci.c */
 122#ifdef CONFIG_BCMA_DRIVER_PCI
 123u32 bcma_pcie_read(struct bcma_drv_pci *pc, u32 address);
 124void bcma_core_pci_early_init(struct bcma_drv_pci *pc);
 125void bcma_core_pci_init(struct bcma_drv_pci *pc);
 126void bcma_core_pci_up(struct bcma_drv_pci *pc);
 127void bcma_core_pci_down(struct bcma_drv_pci *pc);
 128#else
 129static inline void bcma_core_pci_early_init(struct bcma_drv_pci *pc)
 130{
 131        WARN_ON(pc->core->bus->hosttype == BCMA_HOSTTYPE_PCI);
 132}
 133static inline void bcma_core_pci_init(struct bcma_drv_pci *pc)
 134{
 135        /* Initialization is required for PCI hosted bus */
 136        WARN_ON(pc->core->bus->hosttype == BCMA_HOSTTYPE_PCI);
 137}
 138#endif
 139
 140/* driver_pcie2.c */
 141#ifdef CONFIG_BCMA_DRIVER_PCI
 142void bcma_core_pcie2_init(struct bcma_drv_pcie2 *pcie2);
 143void bcma_core_pcie2_up(struct bcma_drv_pcie2 *pcie2);
 144#else
 145static inline void bcma_core_pcie2_init(struct bcma_drv_pcie2 *pcie2)
 146{
 147        /* Initialization is required for PCI hosted bus */
 148        WARN_ON(pcie2->core->bus->hosttype == BCMA_HOSTTYPE_PCI);
 149}
 150#endif
 151
 152extern int bcma_chipco_watchdog_register(struct bcma_drv_cc *cc);
 153
 154#ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE
 155bool bcma_core_pci_is_in_hostmode(struct bcma_drv_pci *pc);
 156void bcma_core_pci_hostmode_init(struct bcma_drv_pci *pc);
 157#else
 158static inline bool bcma_core_pci_is_in_hostmode(struct bcma_drv_pci *pc)
 159{
 160        return false;
 161}
 162static inline void bcma_core_pci_hostmode_init(struct bcma_drv_pci *pc)
 163{
 164}
 165#endif /* CONFIG_BCMA_DRIVER_PCI_HOSTMODE */
 166
 167/**************************************************
 168 * driver_mips.c
 169 **************************************************/
 170
 171#ifdef CONFIG_BCMA_DRIVER_MIPS
 172unsigned int bcma_core_mips_irq(struct bcma_device *dev);
 173void bcma_core_mips_early_init(struct bcma_drv_mips *mcore);
 174void bcma_core_mips_init(struct bcma_drv_mips *mcore);
 175#else
 176static inline unsigned int bcma_core_mips_irq(struct bcma_device *dev)
 177{
 178        return 0;
 179}
 180static inline void bcma_core_mips_early_init(struct bcma_drv_mips *mcore)
 181{
 182}
 183static inline void bcma_core_mips_init(struct bcma_drv_mips *mcore)
 184{
 185}
 186#endif
 187
 188/**************************************************
 189 * driver_gmac_cmn.c
 190 **************************************************/
 191
 192#ifdef CONFIG_BCMA_DRIVER_GMAC_CMN
 193void bcma_core_gmac_cmn_init(struct bcma_drv_gmac_cmn *gc);
 194#else
 195static inline void bcma_core_gmac_cmn_init(struct bcma_drv_gmac_cmn *gc)
 196{
 197}
 198#endif
 199
 200#ifdef CONFIG_BCMA_DRIVER_GPIO
 201/* driver_gpio.c */
 202int bcma_gpio_init(struct bcma_drv_cc *cc);
 203int bcma_gpio_unregister(struct bcma_drv_cc *cc);
 204#else
 205static inline int bcma_gpio_init(struct bcma_drv_cc *cc)
 206{
 207        return -ENOTSUPP;
 208}
 209static inline int bcma_gpio_unregister(struct bcma_drv_cc *cc)
 210{
 211        return 0;
 212}
 213#endif /* CONFIG_BCMA_DRIVER_GPIO */
 214
 215#endif
 216