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.
This commit is contained in:
parent
9db9333d05
commit
9aaefa6e71
25
src/lib.rs
25
src/lib.rs
@ -32,6 +32,13 @@ fn swap16(x: u32) -> u32 {
|
|||||||
x.rotate_left(16)
|
x.rotate_left(16)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CYW_SPID command structure constants.
|
||||||
|
const WRITE: bool = true;
|
||||||
|
const READ: bool = false;
|
||||||
|
const INC_ADDR: bool = true;
|
||||||
|
#[allow(unused)]
|
||||||
|
const FIXED_ADDR: bool = false;
|
||||||
|
|
||||||
fn cmd_word(write: bool, incr: bool, func: u32, addr: u32, len: u32) -> u32 {
|
fn cmd_word(write: bool, incr: bool, func: u32, addr: u32, len: u32) -> u32 {
|
||||||
(write as u32) << 31 | (incr as u32) << 30 | (func & 0b11) << 28 | (addr & 0x1FFFF) << 11 | (len & 0x7FF)
|
(write as u32) << 31 | (incr as u32) << 30 | (func & 0b11) << 28 | (addr & 0x1FFFF) << 11 | (len & 0x7FF)
|
||||||
}
|
}
|
||||||
@ -734,7 +741,7 @@ where
|
|||||||
if status & STATUS_F2_PKT_AVAILABLE != 0 {
|
if status & STATUS_F2_PKT_AVAILABLE != 0 {
|
||||||
let len = (status & STATUS_F2_PKT_LEN_MASK) >> STATUS_F2_PKT_LEN_SHIFT;
|
let len = (status & STATUS_F2_PKT_LEN_MASK) >> STATUS_F2_PKT_LEN_SHIFT;
|
||||||
|
|
||||||
let cmd = cmd_word(false, true, FUNC_WLAN, 0, len);
|
let cmd = cmd_word(READ, INC_ADDR, FUNC_WLAN, 0, len);
|
||||||
|
|
||||||
self.spi
|
self.spi
|
||||||
.transaction(|bus| {
|
.transaction(|bus| {
|
||||||
@ -799,7 +806,7 @@ where
|
|||||||
|
|
||||||
trace!(" {:02x}", &buf8[..total_len.min(48)]);
|
trace!(" {:02x}", &buf8[..total_len.min(48)]);
|
||||||
|
|
||||||
let cmd = cmd_word(true, true, FUNC_WLAN, 0, total_len as _);
|
let cmd = cmd_word(WRITE, INC_ADDR, FUNC_WLAN, 0, total_len as _);
|
||||||
self.spi
|
self.spi
|
||||||
.transaction(|bus| {
|
.transaction(|bus| {
|
||||||
let bus = unsafe { &mut *bus };
|
let bus = unsafe { &mut *bus };
|
||||||
@ -993,7 +1000,7 @@ where
|
|||||||
|
|
||||||
trace!(" {:02x}", &buf8[..total_len.min(48)]);
|
trace!(" {:02x}", &buf8[..total_len.min(48)]);
|
||||||
|
|
||||||
let cmd = cmd_word(true, true, FUNC_WLAN, 0, total_len as _);
|
let cmd = cmd_word(WRITE, INC_ADDR, FUNC_WLAN, 0, total_len as _);
|
||||||
|
|
||||||
self.spi
|
self.spi
|
||||||
.transaction(|bus| {
|
.transaction(|bus| {
|
||||||
@ -1081,7 +1088,7 @@ where
|
|||||||
|
|
||||||
self.backplane_set_window(addr).await;
|
self.backplane_set_window(addr).await;
|
||||||
|
|
||||||
let cmd = cmd_word(false, true, FUNC_BACKPLANE, window_offs, len as u32);
|
let cmd = cmd_word(READ, INC_ADDR, FUNC_BACKPLANE, window_offs, len as u32);
|
||||||
|
|
||||||
self.spi
|
self.spi
|
||||||
.transaction(|bus| {
|
.transaction(|bus| {
|
||||||
@ -1126,7 +1133,7 @@ where
|
|||||||
|
|
||||||
self.backplane_set_window(addr).await;
|
self.backplane_set_window(addr).await;
|
||||||
|
|
||||||
let cmd = cmd_word(true, true, FUNC_BACKPLANE, window_offs, len as u32);
|
let cmd = cmd_word(WRITE, INC_ADDR, FUNC_BACKPLANE, window_offs, len as u32);
|
||||||
|
|
||||||
self.spi
|
self.spi
|
||||||
.transaction(|bus| {
|
.transaction(|bus| {
|
||||||
@ -1245,7 +1252,7 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn readn(&mut self, func: u32, addr: u32, len: u32) -> u32 {
|
async fn readn(&mut self, func: u32, addr: u32, len: u32) -> u32 {
|
||||||
let cmd = cmd_word(false, true, func, addr, len);
|
let cmd = cmd_word(READ, INC_ADDR, func, addr, len);
|
||||||
let mut buf = [0; 1];
|
let mut buf = [0; 1];
|
||||||
|
|
||||||
self.spi
|
self.spi
|
||||||
@ -1268,7 +1275,7 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn writen(&mut self, func: u32, addr: u32, val: u32, len: u32) {
|
async fn writen(&mut self, func: u32, addr: u32, val: u32, len: u32) {
|
||||||
let cmd = cmd_word(true, true, func, addr, len);
|
let cmd = cmd_word(WRITE, INC_ADDR, func, addr, len);
|
||||||
|
|
||||||
self.spi
|
self.spi
|
||||||
.transaction(|bus| {
|
.transaction(|bus| {
|
||||||
@ -1283,7 +1290,7 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn read32_swapped(&mut self, addr: u32) -> u32 {
|
async fn read32_swapped(&mut self, addr: u32) -> u32 {
|
||||||
let cmd = cmd_word(false, true, FUNC_BUS, addr, 4);
|
let cmd = cmd_word(READ, INC_ADDR, FUNC_BUS, addr, 4);
|
||||||
let mut buf = [0; 1];
|
let mut buf = [0; 1];
|
||||||
|
|
||||||
self.spi
|
self.spi
|
||||||
@ -1302,7 +1309,7 @@ where
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn write32_swapped(&mut self, addr: u32, val: u32) {
|
async fn write32_swapped(&mut self, addr: u32, val: u32) {
|
||||||
let cmd = cmd_word(true, true, FUNC_BUS, addr, 4);
|
let cmd = cmd_word(WRITE, INC_ADDR, FUNC_BUS, addr, 4);
|
||||||
|
|
||||||
self.spi
|
self.spi
|
||||||
.transaction(|bus| {
|
.transaction(|bus| {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user