wl1251: separate bus i/o code into io.c
In order to eventually support wl1251 spi and sdio interfaces, move the register and memory transfer functions to a common file. Also rename wl1251_spi_mem_{read,write} to indicate its common usage. We still use spi_read internally until SDIO interface is introduced so nothing functional should change here. Signed-off-by: Bob Copeland <me@bobcopeland.com> Signed-off-by: Kalle Valo <kalle.valo@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
b8010790c4
commit
0764de64c8
@@ -29,29 +29,6 @@
|
||||
#include "reg.h"
|
||||
#include "wl1251_spi.h"
|
||||
|
||||
static int wl1251_translate_reg_addr(struct wl1251 *wl, int addr)
|
||||
{
|
||||
/* If the address is lower than REGISTERS_BASE, it means that this is
|
||||
* a chip-specific register address, so look it up in the registers
|
||||
* table */
|
||||
if (addr < REGISTERS_BASE) {
|
||||
/* Make sure we don't go over the table */
|
||||
if (addr >= ACX_REG_TABLE_LEN) {
|
||||
wl1251_error("address out of range (%d)", addr);
|
||||
return -EINVAL;
|
||||
}
|
||||
addr = wl->chip.acx_reg_table[addr];
|
||||
}
|
||||
|
||||
return addr - wl->physical_reg_addr + wl->virtual_reg_addr;
|
||||
}
|
||||
|
||||
static int wl1251_translate_mem_addr(struct wl1251 *wl, int addr)
|
||||
{
|
||||
return addr - wl->physical_mem_addr + wl->virtual_mem_addr;
|
||||
}
|
||||
|
||||
|
||||
void wl1251_spi_reset(struct wl1251 *wl)
|
||||
{
|
||||
u8 *cmd;
|
||||
@@ -323,61 +300,3 @@ void wl1251_spi_write(struct wl1251 *wl, int addr, void *buf, size_t len)
|
||||
wl1251_dump(DEBUG_SPI, "spi_write cmd -> ", cmd, sizeof(*cmd));
|
||||
wl1251_dump(DEBUG_SPI, "spi_write buf -> ", buf, len);
|
||||
}
|
||||
|
||||
void wl1251_spi_mem_read(struct wl1251 *wl, int addr, void *buf,
|
||||
size_t len)
|
||||
{
|
||||
int physical;
|
||||
|
||||
physical = wl1251_translate_mem_addr(wl, addr);
|
||||
|
||||
wl1251_spi_read(wl, physical, buf, len);
|
||||
}
|
||||
|
||||
void wl1251_spi_mem_write(struct wl1251 *wl, int addr, void *buf,
|
||||
size_t len)
|
||||
{
|
||||
int physical;
|
||||
|
||||
physical = wl1251_translate_mem_addr(wl, addr);
|
||||
|
||||
wl1251_spi_write(wl, physical, buf, len);
|
||||
}
|
||||
|
||||
void wl1251_spi_reg_read(struct wl1251 *wl, int addr, void *buf, size_t len)
|
||||
{
|
||||
int physical;
|
||||
|
||||
physical = wl1251_translate_reg_addr(wl, addr);
|
||||
|
||||
wl1251_spi_read(wl, physical, buf, len);
|
||||
}
|
||||
|
||||
void wl1251_spi_reg_write(struct wl1251 *wl, int addr, void *buf, size_t len)
|
||||
{
|
||||
int physical;
|
||||
|
||||
physical = wl1251_translate_reg_addr(wl, addr);
|
||||
|
||||
wl1251_spi_write(wl, physical, buf, len);
|
||||
}
|
||||
|
||||
u32 wl1251_mem_read32(struct wl1251 *wl, int addr)
|
||||
{
|
||||
return wl1251_read32(wl, wl1251_translate_mem_addr(wl, addr));
|
||||
}
|
||||
|
||||
void wl1251_mem_write32(struct wl1251 *wl, int addr, u32 val)
|
||||
{
|
||||
wl1251_write32(wl, wl1251_translate_mem_addr(wl, addr), val);
|
||||
}
|
||||
|
||||
u32 wl1251_reg_read32(struct wl1251 *wl, int addr)
|
||||
{
|
||||
return wl1251_read32(wl, wl1251_translate_reg_addr(wl, addr));
|
||||
}
|
||||
|
||||
void wl1251_reg_write32(struct wl1251 *wl, int addr, u32 val)
|
||||
{
|
||||
wl1251_write32(wl, wl1251_translate_reg_addr(wl, addr), val);
|
||||
}
|
||||
|
Reference in New Issue
Block a user