diff options
| author | Daniel Bevenius <[email protected]> | 2022-09-23 15:01:09 +0200 |
|---|---|---|
| committer | Daniel Bevenius <[email protected]> | 2022-09-23 15:06:26 +0200 |
| commit | 9aaefa6e7163c80b26546a8ce58740b437a5a03e (patch) | |
| tree | 3a668642e80bad1d20b45041b003d840a7ad6c41 /src | |
| parent | 9db9333d0569ca8e86301f643e42abd37f3b7118 (diff) | |
Add constants for cmd_word arguments
This commit adds constants intended to be used with the `cmd_word`
function.
The motivation for this to (hopefully) improve the readability of the
code.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/lib.rs b/src/lib.rs index a6b26188d..c72f29ed5 100644 --- a/src/lib.rs +++ b/src/lib.rs | |||
| @@ -32,6 +32,13 @@ fn swap16(x: u32) -> u32 { | |||
| 32 | x.rotate_left(16) | 32 | x.rotate_left(16) |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | // CYW_SPID command structure constants. | ||
| 36 | const WRITE: bool = true; | ||
| 37 | const READ: bool = false; | ||
| 38 | const INC_ADDR: bool = true; | ||
| 39 | #[allow(unused)] | ||
| 40 | const FIXED_ADDR: bool = false; | ||
| 41 | |||
| 35 | fn cmd_word(write: bool, incr: bool, func: u32, addr: u32, len: u32) -> u32 { | 42 | fn cmd_word(write: bool, incr: bool, func: u32, addr: u32, len: u32) -> u32 { |
| 36 | (write as u32) << 31 | (incr as u32) << 30 | (func & 0b11) << 28 | (addr & 0x1FFFF) << 11 | (len & 0x7FF) | 43 | (write as u32) << 31 | (incr as u32) << 30 | (func & 0b11) << 28 | (addr & 0x1FFFF) << 11 | (len & 0x7FF) |
| 37 | } | 44 | } |
| @@ -734,7 +741,7 @@ where | |||
| 734 | if status & STATUS_F2_PKT_AVAILABLE != 0 { | 741 | if status & STATUS_F2_PKT_AVAILABLE != 0 { |
| 735 | let len = (status & STATUS_F2_PKT_LEN_MASK) >> STATUS_F2_PKT_LEN_SHIFT; | 742 | let len = (status & STATUS_F2_PKT_LEN_MASK) >> STATUS_F2_PKT_LEN_SHIFT; |
| 736 | 743 | ||
| 737 | let cmd = cmd_word(false, true, FUNC_WLAN, 0, len); | 744 | let cmd = cmd_word(READ, INC_ADDR, FUNC_WLAN, 0, len); |
| 738 | 745 | ||
| 739 | self.spi | 746 | self.spi |
| 740 | .transaction(|bus| { | 747 | .transaction(|bus| { |
| @@ -799,7 +806,7 @@ where | |||
| 799 | 806 | ||
| 800 | trace!(" {:02x}", &buf8[..total_len.min(48)]); | 807 | trace!(" {:02x}", &buf8[..total_len.min(48)]); |
| 801 | 808 | ||
| 802 | let cmd = cmd_word(true, true, FUNC_WLAN, 0, total_len as _); | 809 | let cmd = cmd_word(WRITE, INC_ADDR, FUNC_WLAN, 0, total_len as _); |
| 803 | self.spi | 810 | self.spi |
| 804 | .transaction(|bus| { | 811 | .transaction(|bus| { |
| 805 | let bus = unsafe { &mut *bus }; | 812 | let bus = unsafe { &mut *bus }; |
| @@ -993,7 +1000,7 @@ where | |||
| 993 | 1000 | ||
| 994 | trace!(" {:02x}", &buf8[..total_len.min(48)]); | 1001 | trace!(" {:02x}", &buf8[..total_len.min(48)]); |
| 995 | 1002 | ||
| 996 | let cmd = cmd_word(true, true, FUNC_WLAN, 0, total_len as _); | 1003 | let cmd = cmd_word(WRITE, INC_ADDR, FUNC_WLAN, 0, total_len as _); |
| 997 | 1004 | ||
| 998 | self.spi | 1005 | self.spi |
| 999 | .transaction(|bus| { | 1006 | .transaction(|bus| { |
| @@ -1081,7 +1088,7 @@ where | |||
| 1081 | 1088 | ||
| 1082 | self.backplane_set_window(addr).await; | 1089 | self.backplane_set_window(addr).await; |
| 1083 | 1090 | ||
| 1084 | let cmd = cmd_word(false, true, FUNC_BACKPLANE, window_offs, len as u32); | 1091 | let cmd = cmd_word(READ, INC_ADDR, FUNC_BACKPLANE, window_offs, len as u32); |
| 1085 | 1092 | ||
| 1086 | self.spi | 1093 | self.spi |
| 1087 | .transaction(|bus| { | 1094 | .transaction(|bus| { |
| @@ -1126,7 +1133,7 @@ where | |||
| 1126 | 1133 | ||
| 1127 | self.backplane_set_window(addr).await; | 1134 | self.backplane_set_window(addr).await; |
| 1128 | 1135 | ||
| 1129 | let cmd = cmd_word(true, true, FUNC_BACKPLANE, window_offs, len as u32); | 1136 | let cmd = cmd_word(WRITE, INC_ADDR, FUNC_BACKPLANE, window_offs, len as u32); |
| 1130 | 1137 | ||
| 1131 | self.spi | 1138 | self.spi |
| 1132 | .transaction(|bus| { | 1139 | .transaction(|bus| { |
| @@ -1245,7 +1252,7 @@ where | |||
| 1245 | } | 1252 | } |
| 1246 | 1253 | ||
| 1247 | async fn readn(&mut self, func: u32, addr: u32, len: u32) -> u32 { | 1254 | async fn readn(&mut self, func: u32, addr: u32, len: u32) -> u32 { |
| 1248 | let cmd = cmd_word(false, true, func, addr, len); | 1255 | let cmd = cmd_word(READ, INC_ADDR, func, addr, len); |
| 1249 | let mut buf = [0; 1]; | 1256 | let mut buf = [0; 1]; |
| 1250 | 1257 | ||
| 1251 | self.spi | 1258 | self.spi |
| @@ -1268,7 +1275,7 @@ where | |||
| 1268 | } | 1275 | } |
| 1269 | 1276 | ||
| 1270 | async fn writen(&mut self, func: u32, addr: u32, val: u32, len: u32) { | 1277 | async fn writen(&mut self, func: u32, addr: u32, val: u32, len: u32) { |
| 1271 | let cmd = cmd_word(true, true, func, addr, len); | 1278 | let cmd = cmd_word(WRITE, INC_ADDR, func, addr, len); |
| 1272 | 1279 | ||
| 1273 | self.spi | 1280 | self.spi |
| 1274 | .transaction(|bus| { | 1281 | .transaction(|bus| { |
| @@ -1283,7 +1290,7 @@ where | |||
| 1283 | } | 1290 | } |
| 1284 | 1291 | ||
| 1285 | async fn read32_swapped(&mut self, addr: u32) -> u32 { | 1292 | async fn read32_swapped(&mut self, addr: u32) -> u32 { |
| 1286 | let cmd = cmd_word(false, true, FUNC_BUS, addr, 4); | 1293 | let cmd = cmd_word(READ, INC_ADDR, FUNC_BUS, addr, 4); |
| 1287 | let mut buf = [0; 1]; | 1294 | let mut buf = [0; 1]; |
| 1288 | 1295 | ||
| 1289 | self.spi | 1296 | self.spi |
| @@ -1302,7 +1309,7 @@ where | |||
| 1302 | } | 1309 | } |
| 1303 | 1310 | ||
| 1304 | async fn write32_swapped(&mut self, addr: u32, val: u32) { | 1311 | async fn write32_swapped(&mut self, addr: u32, val: u32) { |
| 1305 | let cmd = cmd_word(true, true, FUNC_BUS, addr, 4); | 1312 | let cmd = cmd_word(WRITE, INC_ADDR, FUNC_BUS, addr, 4); |
| 1306 | 1313 | ||
| 1307 | self.spi | 1314 | self.spi |
| 1308 | .transaction(|bus| { | 1315 | .transaction(|bus| { |
