diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-30 19:16:45 -0400 |
commit | ada47b5fe13d89735805b566185f4885f5a3f750 (patch) | |
tree | 644b88f8a71896307d71438e9b3af49126ffb22b /drivers/net/wireless/wl12xx/wl1271_spi.h | |
parent | 43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff) | |
parent | 3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff) |
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl1271_spi.h')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1271_spi.h | 61 |
1 files changed, 22 insertions, 39 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_spi.h b/drivers/net/wireless/wl12xx/wl1271_spi.h index 2c9968458646..a803596dad4a 100644 --- a/drivers/net/wireless/wl12xx/wl1271_spi.h +++ b/drivers/net/wireless/wl12xx/wl1271_spi.h | |||
@@ -29,10 +29,14 @@ | |||
29 | 29 | ||
30 | #define HW_ACCESS_MEMORY_MAX_RANGE 0x1FFC0 | 30 | #define HW_ACCESS_MEMORY_MAX_RANGE 0x1FFC0 |
31 | 31 | ||
32 | #define HW_ACCESS_PART0_SIZE_ADDR 0x1FFC0 | 32 | #define HW_PARTITION_REGISTERS_ADDR 0x1ffc0 |
33 | #define HW_ACCESS_PART0_START_ADDR 0x1FFC4 | 33 | #define HW_PART0_SIZE_ADDR (HW_PARTITION_REGISTERS_ADDR) |
34 | #define HW_ACCESS_PART1_SIZE_ADDR 0x1FFC8 | 34 | #define HW_PART0_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 4) |
35 | #define HW_ACCESS_PART1_START_ADDR 0x1FFCC | 35 | #define HW_PART1_SIZE_ADDR (HW_PARTITION_REGISTERS_ADDR + 8) |
36 | #define HW_PART1_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 12) | ||
37 | #define HW_PART2_SIZE_ADDR (HW_PARTITION_REGISTERS_ADDR + 16) | ||
38 | #define HW_PART2_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 20) | ||
39 | #define HW_PART3_START_ADDR (HW_PARTITION_REGISTERS_ADDR + 24) | ||
36 | 40 | ||
37 | #define HW_ACCESS_REGISTER_SIZE 4 | 41 | #define HW_ACCESS_REGISTER_SIZE 4 |
38 | 42 | ||
@@ -67,47 +71,26 @@ | |||
67 | ((WL1271_BUSY_WORD_LEN - 4) / sizeof(u32)) | 71 | ((WL1271_BUSY_WORD_LEN - 4) / sizeof(u32)) |
68 | #define HW_ACCESS_WSPI_INIT_CMD_MASK 0 | 72 | #define HW_ACCESS_WSPI_INIT_CMD_MASK 0 |
69 | 73 | ||
74 | #define OCP_CMD_LOOP 32 | ||
75 | |||
76 | #define OCP_CMD_WRITE 0x1 | ||
77 | #define OCP_CMD_READ 0x2 | ||
78 | |||
79 | #define OCP_READY_MASK BIT(18) | ||
80 | #define OCP_STATUS_MASK (BIT(16) | BIT(17)) | ||
81 | |||
82 | #define OCP_STATUS_NO_RESP 0x00000 | ||
83 | #define OCP_STATUS_OK 0x10000 | ||
84 | #define OCP_STATUS_REQ_FAILED 0x20000 | ||
85 | #define OCP_STATUS_RESP_ERROR 0x30000 | ||
70 | 86 | ||
71 | /* Raw target IO, address is not translated */ | 87 | /* Raw target IO, address is not translated */ |
72 | void wl1271_spi_write(struct wl1271 *wl, int addr, void *buf, | 88 | void wl1271_spi_raw_write(struct wl1271 *wl, int addr, void *buf, |
73 | size_t len, bool fixed); | 89 | size_t len, bool fixed); |
74 | void wl1271_spi_read(struct wl1271 *wl, int addr, void *buf, | 90 | void wl1271_spi_raw_read(struct wl1271 *wl, int addr, void *buf, |
75 | size_t len, bool fixed); | 91 | size_t len, bool fixed); |
76 | 92 | ||
77 | /* Memory target IO, address is tranlated to partition 0 */ | ||
78 | void wl1271_spi_mem_read(struct wl1271 *wl, int addr, void *buf, size_t len); | ||
79 | void wl1271_spi_mem_write(struct wl1271 *wl, int addr, void *buf, size_t len); | ||
80 | u32 wl1271_mem_read32(struct wl1271 *wl, int addr); | ||
81 | void wl1271_mem_write32(struct wl1271 *wl, int addr, u32 val); | ||
82 | |||
83 | /* Registers IO */ | ||
84 | void wl1271_spi_reg_read(struct wl1271 *wl, int addr, void *buf, size_t len, | ||
85 | bool fixed); | ||
86 | void wl1271_spi_reg_write(struct wl1271 *wl, int addr, void *buf, size_t len, | ||
87 | bool fixed); | ||
88 | u32 wl1271_reg_read32(struct wl1271 *wl, int addr); | ||
89 | void wl1271_reg_write32(struct wl1271 *wl, int addr, u32 val); | ||
90 | |||
91 | /* INIT and RESET words */ | 93 | /* INIT and RESET words */ |
92 | void wl1271_spi_reset(struct wl1271 *wl); | 94 | void wl1271_spi_reset(struct wl1271 *wl); |
93 | void wl1271_spi_init(struct wl1271 *wl); | 95 | void wl1271_spi_init(struct wl1271 *wl); |
94 | int wl1271_set_partition(struct wl1271 *wl, | ||
95 | u32 part_start, u32 part_size, | ||
96 | u32 reg_start, u32 reg_size); | ||
97 | |||
98 | static inline u32 wl1271_read32(struct wl1271 *wl, int addr) | ||
99 | { | ||
100 | wl1271_spi_read(wl, addr, &wl->buffer_32, | ||
101 | sizeof(wl->buffer_32), false); | ||
102 | |||
103 | return wl->buffer_32; | ||
104 | } | ||
105 | |||
106 | static inline void wl1271_write32(struct wl1271 *wl, int addr, u32 val) | ||
107 | { | ||
108 | wl->buffer_32 = val; | ||
109 | wl1271_spi_write(wl, addr, &wl->buffer_32, | ||
110 | sizeof(wl->buffer_32), false); | ||
111 | } | ||
112 | |||
113 | #endif /* __WL1271_SPI_H__ */ | 96 | #endif /* __WL1271_SPI_H__ */ |