1d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 2560424e9SKalle Valo /* 3560424e9SKalle Valo * Common hwbus abstraction layer interface for cw1200 wireless driver 4560424e9SKalle Valo * 5560424e9SKalle Valo * Copyright (c) 2010, ST-Ericsson 6560424e9SKalle Valo * Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no> 7560424e9SKalle Valo */ 8560424e9SKalle Valo 9560424e9SKalle Valo #ifndef CW1200_HWBUS_H 10560424e9SKalle Valo #define CW1200_HWBUS_H 11560424e9SKalle Valo 12560424e9SKalle Valo struct hwbus_priv; 13560424e9SKalle Valo 14560424e9SKalle Valo void cw1200_irq_handler(struct cw1200_common *priv); 15560424e9SKalle Valo 16560424e9SKalle Valo /* This MUST be wrapped with hwbus_ops->lock/unlock! */ 17560424e9SKalle Valo int __cw1200_irq_enable(struct cw1200_common *priv, int enable); 18560424e9SKalle Valo 19560424e9SKalle Valo struct hwbus_ops { 20560424e9SKalle Valo int (*hwbus_memcpy_fromio)(struct hwbus_priv *self, unsigned int addr, 21560424e9SKalle Valo void *dst, int count); 22560424e9SKalle Valo int (*hwbus_memcpy_toio)(struct hwbus_priv *self, unsigned int addr, 23560424e9SKalle Valo const void *src, int count); 24560424e9SKalle Valo void (*lock)(struct hwbus_priv *self); 25560424e9SKalle Valo void (*unlock)(struct hwbus_priv *self); 26560424e9SKalle Valo size_t (*align_size)(struct hwbus_priv *self, size_t size); 27560424e9SKalle Valo int (*power_mgmt)(struct hwbus_priv *self, bool suspend); 28560424e9SKalle Valo }; 29560424e9SKalle Valo 30560424e9SKalle Valo #endif /* CW1200_HWBUS_H */ 31