/* SPDX-License-Identifier: GPL-2.0-only */ /* * Common bus abstraction layer. * * Copyright (c) 2017-2018, Silicon Laboratories, Inc. * Copyright (c) 2010, ST-Ericsson */ #ifndef WFX_BUS_H #define WFX_BUS_H #include <linux/mmc/sdio_func.h> #include <linux/spi/spi.h> #define WFX_REG_CONFIG 0x0 #define WFX_REG_CONTROL 0x1 #define WFX_REG_IN_OUT_QUEUE 0x2 #define WFX_REG_AHB_DPORT 0x3 #define WFX_REG_BASE_ADDR 0x4 #define WFX_REG_SRAM_DPORT 0x5 #define WFX_REG_SET_GEN_R_W 0x6 #define WFX_REG_FRAME_OUT 0x7 struct hwbus_ops { int (*copy_from_io)(void *bus_priv, unsigned int addr, void *dst, size_t count); int (*copy_to_io)(void *bus_priv, unsigned int addr, const void *src, size_t count); int (*irq_subscribe)(void *bus_priv); int (*irq_unsubscribe)(void *bus_priv); void (*lock)(void *bus_priv); void (*unlock)(void *bus_priv); size_t (*align_size)(void *bus_priv, size_t size); }; extern struct sdio_driver wfx_sdio_driver; extern struct spi_driver wfx_spi_driver; #endif