summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ti/wlcore/wlcore.h
diff options
context:
space:
mode:
authorLuciano Coelho <coelho@ti.com>2011-11-29 16:27:31 +0200
committerLuciano Coelho <coelho@ti.com>2012-04-12 08:43:57 +0300
commit6f7dd16cb125468a5393861c22fbecfb52dd9653 (patch)
tree45803828a2b7a5d0808510e73d24af3e075f6e23 /drivers/net/wireless/ti/wlcore/wlcore.h
parent00782136b4d6e2316e0a2a55f3b1fba160e9576e (diff)
downloadlinux-6f7dd16cb125468a5393861c22fbecfb52dd9653.tar.bz2
wlcore/wl12xx: add chip-specific identify chip operation
Move the code that identifies the chip ID and selects the appropriate firmware to an operation implemented by the lower driver. Also move the quirks definitions into wlcore.h and rename to WLCORE_QUIRK_*. Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/ti/wlcore/wlcore.h')
-rw-r--r--drivers/net/wireless/ti/wlcore/wlcore.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wlcore/wlcore.h b/drivers/net/wireless/ti/wlcore/wlcore.h
index f11e5c6de51f..92455e91b79d 100644
--- a/drivers/net/wireless/ti/wlcore/wlcore.h
+++ b/drivers/net/wireless/ti/wlcore/wlcore.h
@@ -28,6 +28,7 @@
#include "event.h"
struct wlcore_ops {
+ int (*identify_chip)(struct wl1271 *wl);
};
enum wlcore_partitions {
@@ -291,6 +292,10 @@ struct wl1271 {
const struct wlcore_partition_set *ptable;
/* pointer to the lower driver register table */
const int *rtable;
+ /* name of the firmwares to load - for PLT, single role, multi-role */
+ const char *plt_fw_name;
+ const char *sr_fw_name;
+ const char *mr_fw_name;
};
int __devinit wlcore_probe(struct wl1271 *wl, struct platform_device *pdev);
@@ -301,6 +306,17 @@ int wlcore_free_hw(struct wl1271 *wl);
/* Firmware image load chunk size */
#define CHUNK_SIZE 16384
+/* Quirks */
+
+/* Each RX/TX transaction requires an end-of-transaction transfer */
+#define WLCORE_QUIRK_END_OF_TRANSACTION BIT(0)
+
+/* wl127x and SPI don't support SDIO block size alignment */
+#define WLCORE_QUIRK_NO_BLOCKSIZE_ALIGNMENT BIT(2)
+
+/* Older firmwares did not implement the FW logger over bus feature */
+#define WLCORE_QUIRK_FWLOG_NOT_IMPLEMENTED BIT(4)
+
/* TODO: move to the lower drivers when all usages are abstracted */
#define CHIP_ID_1271_PG10 (0x4030101)
#define CHIP_ID_1271_PG20 (0x4030111)
@@ -381,4 +397,6 @@ int wlcore_free_hw(struct wl1271 *wl);
#define ECPU_CONTROL_HALT 0x00000101
+#define WELP_ARM_COMMAND_VAL 0x4
+
#endif /* __WLCORE_H__ */