xref: /linux/drivers/net/wireless/st/cw1200/hwbus.h (revision e58e871becec2d3b04ed91c0c16fe8deac9c9dfa)
1 /*
2  * Common hwbus abstraction layer interface for cw1200 wireless driver
3  *
4  * Copyright (c) 2010, ST-Ericsson
5  * Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published by the Free Software Foundation.
10  */
11 
12 #ifndef CW1200_HWBUS_H
13 #define CW1200_HWBUS_H
14 
15 struct hwbus_priv;
16 
17 void cw1200_irq_handler(struct cw1200_common *priv);
18 
19 /* This MUST be wrapped with hwbus_ops->lock/unlock! */
20 int __cw1200_irq_enable(struct cw1200_common *priv, int enable);
21 
22 struct hwbus_ops {
23 	int (*hwbus_memcpy_fromio)(struct hwbus_priv *self, unsigned int addr,
24 					void *dst, int count);
25 	int (*hwbus_memcpy_toio)(struct hwbus_priv *self, unsigned int addr,
26 					const void *src, int count);
27 	void (*lock)(struct hwbus_priv *self);
28 	void (*unlock)(struct hwbus_priv *self);
29 	size_t (*align_size)(struct hwbus_priv *self, size_t size);
30 	int (*power_mgmt)(struct hwbus_priv *self, bool suspend);
31 };
32 
33 #endif /* CW1200_HWBUS_H */
34