1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Common bus abstraction layer.
5 * Copyright (c) 2017-2020, Silicon Laboratories, Inc.
6 * Copyright (c) 2010, ST-Ericsson
11 #include <linux/mmc/sdio_func.h>
12 #include <linux/spi/spi.h>
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
23 struct wfx_hwbus_ops
{
24 int (*copy_from_io
)(void *bus_priv
, unsigned int addr
, void *dst
, size_t count
);
25 int (*copy_to_io
)(void *bus_priv
, unsigned int addr
, const void *src
, size_t count
);
26 int (*irq_subscribe
)(void *bus_priv
);
27 int (*irq_unsubscribe
)(void *bus_priv
);
28 void (*lock
)(void *bus_priv
);
29 void (*unlock
)(void *bus_priv
);
30 size_t (*align_size
)(void *bus_priv
, size_t size
);
33 extern struct sdio_driver wfx_sdio_driver
;
34 extern struct spi_driver wfx_spi_driver
;