GNU Linux-libre 5.10.153-gnu1
[releases.git] / drivers / staging / wfx / bus.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Common bus abstraction layer.
4  *
5  * Copyright (c) 2017-2020, Silicon Laboratories, Inc.
6  * Copyright (c) 2010, ST-Ericsson
7  */
8 #ifndef WFX_BUS_H
9 #define WFX_BUS_H
10
11 #include <linux/mmc/sdio_func.h>
12 #include <linux/spi/spi.h>
13
14 #define WFX_REG_CONFIG        0x0
15 #define WFX_REG_CONTROL       0x1
16 #define WFX_REG_IN_OUT_QUEUE  0x2
17 #define WFX_REG_AHB_DPORT     0x3
18 #define WFX_REG_BASE_ADDR     0x4
19 #define WFX_REG_SRAM_DPORT    0x5
20 #define WFX_REG_SET_GEN_R_W   0x6
21 #define WFX_REG_FRAME_OUT     0x7
22
23 struct hwbus_ops {
24         int (*copy_from_io)(void *bus_priv, unsigned int addr,
25                             void *dst, size_t count);
26         int (*copy_to_io)(void *bus_priv, unsigned int addr,
27                           const void *src, size_t count);
28         int (*irq_subscribe)(void *bus_priv);
29         int (*irq_unsubscribe)(void *bus_priv);
30         void (*lock)(void *bus_priv);
31         void (*unlock)(void *bus_priv);
32         size_t (*align_size)(void *bus_priv, size_t size);
33 };
34
35 extern struct sdio_driver wfx_sdio_driver;
36 extern struct spi_driver wfx_spi_driver;
37
38 #endif