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