// SPDX-License-Identifier: GPL-2.0-only /* * This file is part of wl12xx * * Copyright (C) 2008 Nokia Corporation */ #include "wl1251.h" #include "reg.h" #include "io.h" /* FIXME: this is static data nowadays and the table can be removed */ static enum wl12xx_acx_int_reg wl1251_io_reg_table[ACX_REG_TABLE_LEN] = …; static int wl1251_translate_reg_addr(struct wl1251 *wl, int addr) { … } static int wl1251_translate_mem_addr(struct wl1251 *wl, int addr) { … } void wl1251_mem_read(struct wl1251 *wl, int addr, void *buf, size_t len) { … } void wl1251_mem_write(struct wl1251 *wl, int addr, void *buf, size_t len) { … } u32 wl1251_mem_read32(struct wl1251 *wl, int addr) { … } void wl1251_mem_write32(struct wl1251 *wl, int addr, u32 val) { … } u32 wl1251_reg_read32(struct wl1251 *wl, int addr) { … } void wl1251_reg_write32(struct wl1251 *wl, int addr, u32 val) { … } /* Set the partitions to access the chip addresses. * * There are two VIRTUAL partitions (the memory partition and the * registers partition), which are mapped to two different areas of the * PHYSICAL (hardware) memory. This function also makes other checks to * ensure that the partitions are not overlapping. In the diagram below, the * memory partition comes before the register partition, but the opposite is * also supported. * * PHYSICAL address * space * * | | * ...+----+--> mem_start * VIRTUAL address ... | | * space ... | | [PART_0] * ... | | * 0x00000000 <--+----+... ...+----+--> mem_start + mem_size * | | ... | | * |MEM | ... | | * | | ... | | * part_size <--+----+... | | {unused area) * | | ... | | * |REG | ... | | * part_size | | ... | | * + <--+----+... ...+----+--> reg_start * reg_size ... | | * ... | | [PART_1] * ... | | * ...+----+--> reg_start + reg_size * | | * */ void wl1251_set_partition(struct wl1251 *wl, u32 mem_start, u32 mem_size, u32 reg_start, u32 reg_size) { … }