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_CORE_SIZE 0x1000 12 13 #define bcma_err(bus, fmt, ...) \ 14 pr_err("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) 15 #define bcma_warn(bus, fmt, ...) \ 16 pr_warn("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) 17 #define bcma_info(bus, fmt, ...) \ 18 pr_info("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) 19 #define bcma_debug(bus, fmt, ...) \ 20 pr_debug("bus%d: " fmt, (bus)->num, ##__VA_ARGS__) 21 22 struct bcma_bus; 23 24 /* main.c */ 25 bool bcma_wait_value(struct bcma_device *core, u16 reg, u32 mask, u32 value, 26 int timeout); 27 int bcma_bus_register(struct bcma_bus *bus); 28 void bcma_bus_unregister(struct bcma_bus *bus); 29 int __init bcma_bus_early_register(struct bcma_bus *bus, 30 struct bcma_device *core_cc, 31 struct bcma_device *core_mips); 32 #ifdef CONFIG_PM 33 int bcma_bus_suspend(struct bcma_bus *bus); 34 int bcma_bus_resume(struct bcma_bus *bus); 35 #endif 36 struct bcma_device *bcma_find_core_unit(struct bcma_bus *bus, u16 coreid, 37 u8 unit); 38 39 /* scan.c */ 40 int bcma_bus_scan(struct bcma_bus *bus); 41 int __init bcma_bus_scan_early(struct bcma_bus *bus, 42 struct bcma_device_id *match, 43 struct bcma_device *core); 44 void bcma_init_bus(struct bcma_bus *bus); 45 46 /* sprom.c */ 47 int bcma_sprom_get(struct bcma_bus *bus); 48 49 /* driver_chipcommon.c */ 50 #ifdef CONFIG_BCMA_DRIVER_MIPS 51 void bcma_chipco_serial_init(struct bcma_drv_cc *cc); 52 extern struct platform_device bcma_pflash_dev; 53 #endif /* CONFIG_BCMA_DRIVER_MIPS */ 54 55 /* driver_chipcommon_pmu.c */ 56 u32 bcma_pmu_get_alp_clock(struct bcma_drv_cc *cc); 57 u32 bcma_pmu_get_cpu_clock(struct bcma_drv_cc *cc); 58 59 #ifdef CONFIG_BCMA_SFLASH 60 /* driver_chipcommon_sflash.c */ 61 int bcma_sflash_init(struct bcma_drv_cc *cc); 62 extern struct platform_device bcma_sflash_dev; 63 #else 64 static inline int bcma_sflash_init(struct bcma_drv_cc *cc) 65 { 66 bcma_err(cc->core->bus, "Serial flash not supported\n"); 67 return 0; 68 } 69 #endif /* CONFIG_BCMA_SFLASH */ 70 71 #ifdef CONFIG_BCMA_NFLASH 72 /* driver_chipcommon_nflash.c */ 73 int bcma_nflash_init(struct bcma_drv_cc *cc); 74 extern struct platform_device bcma_nflash_dev; 75 #else 76 static inline int bcma_nflash_init(struct bcma_drv_cc *cc) 77 { 78 bcma_err(cc->core->bus, "NAND flash not supported\n"); 79 return 0; 80 } 81 #endif /* CONFIG_BCMA_NFLASH */ 82 83 #ifdef CONFIG_BCMA_HOST_PCI 84 /* host_pci.c */ 85 extern int __init bcma_host_pci_init(void); 86 extern void __exit bcma_host_pci_exit(void); 87 #endif /* CONFIG_BCMA_HOST_PCI */ 88 89 /* driver_pci.c */ 90 u32 bcma_pcie_read(struct bcma_drv_pci *pc, u32 address); 91 92 extern int bcma_chipco_watchdog_register(struct bcma_drv_cc *cc); 93 94 #ifdef CONFIG_BCMA_DRIVER_PCI_HOSTMODE 95 bool bcma_core_pci_is_in_hostmode(struct bcma_drv_pci *pc); 96 void bcma_core_pci_hostmode_init(struct bcma_drv_pci *pc); 97 #endif /* CONFIG_BCMA_DRIVER_PCI_HOSTMODE */ 98 99 #ifdef CONFIG_BCMA_DRIVER_GPIO 100 /* driver_gpio.c */ 101 int bcma_gpio_init(struct bcma_drv_cc *cc); 102 int bcma_gpio_unregister(struct bcma_drv_cc *cc); 103 #else 104 static inline int bcma_gpio_init(struct bcma_drv_cc *cc) 105 { 106 return -ENOTSUPP; 107 } 108 static inline int bcma_gpio_unregister(struct bcma_drv_cc *cc) 109 { 110 return 0; 111 } 112 #endif /* CONFIG_BCMA_DRIVER_GPIO */ 113 114 #endif 115