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 39