xref: /linux/drivers/net/wireless/broadcom/b43/sdio.h (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef B43_SDIO_H_
3 #define B43_SDIO_H_
4 
5 #include <linux/ssb/ssb.h>
6 
7 struct b43_wldev;
8 
9 
10 #ifdef CONFIG_B43_SDIO
11 
12 struct b43_sdio {
13 	struct ssb_bus ssb;
14 	void *irq_handler_opaque;
15 	void (*irq_handler)(struct b43_wldev *dev);
16 };
17 
18 int b43_sdio_request_irq(struct b43_wldev *dev,
19 			 void (*handler)(struct b43_wldev *dev));
20 void b43_sdio_free_irq(struct b43_wldev *dev);
21 
22 int b43_sdio_init(void);
23 void b43_sdio_exit(void);
24 
25 
26 #else /* CONFIG_B43_SDIO */
27 
28 
29 static inline int b43_sdio_request_irq(struct b43_wldev *dev,
30 			 void (*handler)(struct b43_wldev *dev))
31 {
32 	return -ENODEV;
33 }
34 static inline void b43_sdio_free_irq(struct b43_wldev *dev)
35 {
36 }
37 static inline int b43_sdio_init(void)
38 {
39 	return 0;
40 }
41 static inline void b43_sdio_exit(void)
42 {
43 }
44 
45 #endif /* CONFIG_B43_SDIO */
46 #endif /* B43_SDIO_H_ */
47