14 enum b43_bus_type bus_type
;
16 struct bcma_device
*bdev
;
17 struct ssb_device
*sdev
;
20 int (*bus_may_powerdown
)(struct b43_bus_dev
*dev
);
21 int (*bus_powerup
)(struct b43_bus_dev
*dev
, bool dynamic_pctl
);
22 int (*device_is_enabled
)(struct b43_bus_dev
*dev
);
23 void (*device_enable
)(struct b43_bus_dev
*dev
,
24 u32 core_specific_flags
);
25 void (*device_disable
)(struct b43_bus_dev
*dev
,
26 u32 core_specific_flags
);
28 u16 (*read16
)(struct b43_bus_dev
*dev
, u16 offset
);
29 u32 (*read32
)(struct b43_bus_dev
*dev
, u16 offset
);
30 void (*write16
)(struct b43_bus_dev
*dev
, u16 offset
, u16 value
);
31 void (*write32
)(struct b43_bus_dev
*dev
, u16 offset
, u32 value
);
32 void (*block_read
)(struct b43_bus_dev
*dev
, void *buffer
,
33 size_t count
, u16 offset
, u8 reg_width
);
34 void (*block_write
)(struct b43_bus_dev
*dev
, const void *buffer
,
35 size_t count
, u16 offset
, u8 reg_width
);
39 struct device
*dma_dev
;
50 struct ssb_sprom
*bus_sprom
;
56 static inline bool b43_bus_host_is_pcmcia(struct b43_bus_dev
*dev
)
59 return (dev
->bus_type
== B43_BUS_SSB
&&
60 dev
->sdev
->bus
->bustype
== SSB_BUSTYPE_PCMCIA
);
66 static inline bool b43_bus_host_is_pci(struct b43_bus_dev
*dev
)
68 #ifdef CONFIG_B43_BCMA
69 if (dev
->bus_type
== B43_BUS_BCMA
)
70 return (dev
->bdev
->bus
->hosttype
== BCMA_HOSTTYPE_PCI
);
73 if (dev
->bus_type
== B43_BUS_SSB
)
74 return (dev
->sdev
->bus
->bustype
== SSB_BUSTYPE_PCI
);
79 static inline bool b43_bus_host_is_sdio(struct b43_bus_dev
*dev
)
82 return (dev
->bus_type
== B43_BUS_SSB
&&
83 dev
->sdev
->bus
->bustype
== SSB_BUSTYPE_SDIO
);
89 struct b43_bus_dev
*b43_bus_dev_bcma_init(struct bcma_device
*core
);
90 struct b43_bus_dev
*b43_bus_dev_ssb_init(struct ssb_device
*sdev
);
92 void *b43_bus_get_wldev(struct b43_bus_dev
*dev
);
93 void b43_bus_set_wldev(struct b43_bus_dev
*dev
, void *data
);
95 #endif /* B43_BUS_H_ */