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