1 /* SPDX-License-Identifier: GPL-2.0 */
15 enum b43_bus_type bus_type
;
17 struct bcma_device
*bdev
;
18 struct ssb_device
*sdev
;
21 int (*bus_may_powerdown
)(struct b43_bus_dev
*dev
);
22 int (*bus_powerup
)(struct b43_bus_dev
*dev
, bool dynamic_pctl
);
23 int (*device_is_enabled
)(struct b43_bus_dev
*dev
);
24 void (*device_enable
)(struct b43_bus_dev
*dev
,
25 u32 core_specific_flags
);
26 void (*device_disable
)(struct b43_bus_dev
*dev
,
27 u32 core_specific_flags
);
29 u16 (*read16
)(struct b43_bus_dev
*dev
, u16 offset
);
30 u32 (*read32
)(struct b43_bus_dev
*dev
, u16 offset
);
31 void (*write16
)(struct b43_bus_dev
*dev
, u16 offset
, u16 value
);
32 void (*write32
)(struct b43_bus_dev
*dev
, u16 offset
, u32 value
);
33 void (*block_read
)(struct b43_bus_dev
*dev
, void *buffer
,
34 size_t count
, u16 offset
, u8 reg_width
);
35 void (*block_write
)(struct b43_bus_dev
*dev
, const void *buffer
,
36 size_t count
, u16 offset
, u8 reg_width
);
40 struct device
*dma_dev
;
51 struct ssb_sprom
*bus_sprom
;
57 static inline bool b43_bus_host_is_pcmcia(struct b43_bus_dev
*dev
)
60 return (dev
->bus_type
== B43_BUS_SSB
&&
61 dev
->sdev
->bus
->bustype
== SSB_BUSTYPE_PCMCIA
);
67 static inline bool b43_bus_host_is_pci(struct b43_bus_dev
*dev
)
69 #ifdef CONFIG_B43_BCMA
70 if (dev
->bus_type
== B43_BUS_BCMA
)
71 return (dev
->bdev
->bus
->hosttype
== BCMA_HOSTTYPE_PCI
);
74 if (dev
->bus_type
== B43_BUS_SSB
)
75 return (dev
->sdev
->bus
->bustype
== SSB_BUSTYPE_PCI
);
80 static inline bool b43_bus_host_is_sdio(struct b43_bus_dev
*dev
)
83 return (dev
->bus_type
== B43_BUS_SSB
&&
84 dev
->sdev
->bus
->bustype
== SSB_BUSTYPE_SDIO
);
90 struct b43_bus_dev
*b43_bus_dev_bcma_init(struct bcma_device
*core
);
91 struct b43_bus_dev
*b43_bus_dev_ssb_init(struct ssb_device
*sdev
);
93 void *b43_bus_get_wldev(struct b43_bus_dev
*dev
);
94 void b43_bus_set_wldev(struct b43_bus_dev
*dev
, void *data
);
96 #endif /* B43_BUS_H_ */