311 lines
6.9 KiB
Rust
311 lines
6.9 KiB
Rust
#[allow(dead_code)]
|
|
#[derive(Copy, Clone)]
|
|
pub(crate) enum QspiMode {
|
|
IndirectWrite,
|
|
IndirectRead,
|
|
AutoPolling,
|
|
MemoryMapped,
|
|
}
|
|
|
|
impl Into<u8> for QspiMode {
|
|
fn into(self) -> u8 {
|
|
match self {
|
|
QspiMode::IndirectWrite => 0b00,
|
|
QspiMode::IndirectRead => 0b01,
|
|
QspiMode::AutoPolling => 0b10,
|
|
QspiMode::MemoryMapped => 0b11,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[allow(dead_code)]
|
|
#[derive(Copy, Clone)]
|
|
pub enum QspiWidth {
|
|
NONE,
|
|
SING,
|
|
DUAL,
|
|
QUAD,
|
|
}
|
|
|
|
impl Into<u8> for QspiWidth {
|
|
fn into(self) -> u8 {
|
|
match self {
|
|
QspiWidth::NONE => 0b00,
|
|
QspiWidth::SING => 0b01,
|
|
QspiWidth::DUAL => 0b10,
|
|
QspiWidth::QUAD => 0b11,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[allow(dead_code)]
|
|
#[derive(Copy, Clone)]
|
|
pub enum FlashSelection {
|
|
Flash1,
|
|
Flash2,
|
|
}
|
|
|
|
impl Into<bool> for FlashSelection {
|
|
fn into(self) -> bool {
|
|
match self {
|
|
FlashSelection::Flash1 => false,
|
|
FlashSelection::Flash2 => true,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Copy, Clone)]
|
|
pub enum MemorySize {
|
|
_1KiB,
|
|
_2KiB,
|
|
_4KiB,
|
|
_8KiB,
|
|
_16KiB,
|
|
_32KiB,
|
|
_64KiB,
|
|
_128KiB,
|
|
_256KiB,
|
|
_512KiB,
|
|
_1MiB,
|
|
_2MiB,
|
|
_4MiB,
|
|
_8MiB,
|
|
_16MiB,
|
|
_32MiB,
|
|
_64MiB,
|
|
_128MiB,
|
|
_256MiB,
|
|
_512MiB,
|
|
_1GiB,
|
|
_2GiB,
|
|
_4GiB,
|
|
Other(u8),
|
|
}
|
|
|
|
impl Into<u8> for MemorySize {
|
|
fn into(self) -> u8 {
|
|
match self {
|
|
MemorySize::_1KiB => 9,
|
|
MemorySize::_2KiB => 10,
|
|
MemorySize::_4KiB => 11,
|
|
MemorySize::_8KiB => 12,
|
|
MemorySize::_16KiB => 13,
|
|
MemorySize::_32KiB => 14,
|
|
MemorySize::_64KiB => 15,
|
|
MemorySize::_128KiB => 16,
|
|
MemorySize::_256KiB => 17,
|
|
MemorySize::_512KiB => 18,
|
|
MemorySize::_1MiB => 19,
|
|
MemorySize::_2MiB => 20,
|
|
MemorySize::_4MiB => 21,
|
|
MemorySize::_8MiB => 22,
|
|
MemorySize::_16MiB => 23,
|
|
MemorySize::_32MiB => 24,
|
|
MemorySize::_64MiB => 25,
|
|
MemorySize::_128MiB => 26,
|
|
MemorySize::_256MiB => 27,
|
|
MemorySize::_512MiB => 28,
|
|
MemorySize::_1GiB => 29,
|
|
MemorySize::_2GiB => 30,
|
|
MemorySize::_4GiB => 31,
|
|
MemorySize::Other(val) => val,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Copy, Clone)]
|
|
pub enum AddressSize {
|
|
_8Bit,
|
|
_16Bit,
|
|
_24bit,
|
|
_32bit,
|
|
}
|
|
|
|
impl Into<u8> for AddressSize {
|
|
fn into(self) -> u8 {
|
|
match self {
|
|
AddressSize::_8Bit => 0b00,
|
|
AddressSize::_16Bit => 0b01,
|
|
AddressSize::_24bit => 0b10,
|
|
AddressSize::_32bit => 0b11,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Copy, Clone)]
|
|
pub enum ChipSelectHightTime {
|
|
_1Cycle,
|
|
_2Cycle,
|
|
_3Cycle,
|
|
_4Cycle,
|
|
_5Cycle,
|
|
_6Cycle,
|
|
_7Cycle,
|
|
_8Cycle,
|
|
}
|
|
|
|
impl Into<u8> for ChipSelectHightTime {
|
|
fn into(self) -> u8 {
|
|
match self {
|
|
ChipSelectHightTime::_1Cycle => 0,
|
|
ChipSelectHightTime::_2Cycle => 1,
|
|
ChipSelectHightTime::_3Cycle => 2,
|
|
ChipSelectHightTime::_4Cycle => 3,
|
|
ChipSelectHightTime::_5Cycle => 4,
|
|
ChipSelectHightTime::_6Cycle => 5,
|
|
ChipSelectHightTime::_7Cycle => 6,
|
|
ChipSelectHightTime::_8Cycle => 7,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Copy, Clone)]
|
|
pub enum FIFOThresholdLevel {
|
|
_1Bytes,
|
|
_2Bytes,
|
|
_3Bytes,
|
|
_4Bytes,
|
|
_5Bytes,
|
|
_6Bytes,
|
|
_7Bytes,
|
|
_8Bytes,
|
|
_9Bytes,
|
|
_10Bytes,
|
|
_11Bytes,
|
|
_12Bytes,
|
|
_13Bytes,
|
|
_14Bytes,
|
|
_15Bytes,
|
|
_16Bytes,
|
|
_17Bytes,
|
|
_18Bytes,
|
|
_19Bytes,
|
|
_20Bytes,
|
|
_21Bytes,
|
|
_22Bytes,
|
|
_23Bytes,
|
|
_24Bytes,
|
|
_25Bytes,
|
|
_26Bytes,
|
|
_27Bytes,
|
|
_28Bytes,
|
|
_29Bytes,
|
|
_30Bytes,
|
|
_31Bytes,
|
|
_32Bytes,
|
|
}
|
|
|
|
impl Into<u8> for FIFOThresholdLevel {
|
|
fn into(self) -> u8 {
|
|
match self {
|
|
FIFOThresholdLevel::_1Bytes => 0,
|
|
FIFOThresholdLevel::_2Bytes => 1,
|
|
FIFOThresholdLevel::_3Bytes => 2,
|
|
FIFOThresholdLevel::_4Bytes => 3,
|
|
FIFOThresholdLevel::_5Bytes => 4,
|
|
FIFOThresholdLevel::_6Bytes => 5,
|
|
FIFOThresholdLevel::_7Bytes => 6,
|
|
FIFOThresholdLevel::_8Bytes => 7,
|
|
FIFOThresholdLevel::_9Bytes => 8,
|
|
FIFOThresholdLevel::_10Bytes => 9,
|
|
FIFOThresholdLevel::_11Bytes => 10,
|
|
FIFOThresholdLevel::_12Bytes => 11,
|
|
FIFOThresholdLevel::_13Bytes => 12,
|
|
FIFOThresholdLevel::_14Bytes => 13,
|
|
FIFOThresholdLevel::_15Bytes => 14,
|
|
FIFOThresholdLevel::_16Bytes => 15,
|
|
FIFOThresholdLevel::_17Bytes => 16,
|
|
FIFOThresholdLevel::_18Bytes => 17,
|
|
FIFOThresholdLevel::_19Bytes => 18,
|
|
FIFOThresholdLevel::_20Bytes => 19,
|
|
FIFOThresholdLevel::_21Bytes => 20,
|
|
FIFOThresholdLevel::_22Bytes => 21,
|
|
FIFOThresholdLevel::_23Bytes => 22,
|
|
FIFOThresholdLevel::_24Bytes => 23,
|
|
FIFOThresholdLevel::_25Bytes => 24,
|
|
FIFOThresholdLevel::_26Bytes => 25,
|
|
FIFOThresholdLevel::_27Bytes => 26,
|
|
FIFOThresholdLevel::_28Bytes => 27,
|
|
FIFOThresholdLevel::_29Bytes => 28,
|
|
FIFOThresholdLevel::_30Bytes => 29,
|
|
FIFOThresholdLevel::_31Bytes => 30,
|
|
FIFOThresholdLevel::_32Bytes => 31,
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Copy, Clone)]
|
|
pub enum DummyCycles {
|
|
_0,
|
|
_1,
|
|
_2,
|
|
_3,
|
|
_4,
|
|
_5,
|
|
_6,
|
|
_7,
|
|
_8,
|
|
_9,
|
|
_10,
|
|
_11,
|
|
_12,
|
|
_13,
|
|
_14,
|
|
_15,
|
|
_16,
|
|
_17,
|
|
_18,
|
|
_19,
|
|
_20,
|
|
_21,
|
|
_22,
|
|
_23,
|
|
_24,
|
|
_25,
|
|
_26,
|
|
_27,
|
|
_28,
|
|
_29,
|
|
_30,
|
|
_31,
|
|
}
|
|
|
|
impl Into<u8> for DummyCycles {
|
|
fn into(self) -> u8 {
|
|
match self {
|
|
DummyCycles::_0 => 0,
|
|
DummyCycles::_1 => 1,
|
|
DummyCycles::_2 => 2,
|
|
DummyCycles::_3 => 3,
|
|
DummyCycles::_4 => 4,
|
|
DummyCycles::_5 => 5,
|
|
DummyCycles::_6 => 6,
|
|
DummyCycles::_7 => 7,
|
|
DummyCycles::_8 => 8,
|
|
DummyCycles::_9 => 9,
|
|
DummyCycles::_10 => 10,
|
|
DummyCycles::_11 => 11,
|
|
DummyCycles::_12 => 12,
|
|
DummyCycles::_13 => 13,
|
|
DummyCycles::_14 => 14,
|
|
DummyCycles::_15 => 15,
|
|
DummyCycles::_16 => 16,
|
|
DummyCycles::_17 => 17,
|
|
DummyCycles::_18 => 18,
|
|
DummyCycles::_19 => 19,
|
|
DummyCycles::_20 => 20,
|
|
DummyCycles::_21 => 21,
|
|
DummyCycles::_22 => 22,
|
|
DummyCycles::_23 => 23,
|
|
DummyCycles::_24 => 24,
|
|
DummyCycles::_25 => 25,
|
|
DummyCycles::_26 => 26,
|
|
DummyCycles::_27 => 27,
|
|
DummyCycles::_28 => 28,
|
|
DummyCycles::_29 => 29,
|
|
DummyCycles::_30 => 30,
|
|
DummyCycles::_31 => 31,
|
|
}
|
|
}
|
|
}
|