#[allow(dead_code)]
pub mod usb_reg {
pub const USB_SYSCTL: u16 = 0x2000;
pub const USB_CTRL: u16 = 0x2010;
pub const USB_STAT: u16 = 0x2014;
pub const USB_EPA_CFG: u16 = 0x2144;
pub const USB_EPA_CTL: u16 = 0x2148;
pub const USB_EPA_MAXPKT: u16 = 0x2158;
pub const USB_EPA_MAXPKT_2: u16 = 0x215a;
pub const USB_EPA_FIFO_CFG: u16 = 0x2160;
}
#[allow(dead_code)]
pub mod sys_reg {
pub const DEMOD_CTL: u16 = 0x3000;
pub const GPO: u16 = 0x3001;
pub const GPI: u16 = 0x3002;
pub const GPOE: u16 = 0x3003;
pub const GPD: u16 = 0x3004;
pub const SYSINTE: u16 = 0x3005;
pub const SYSINTS: u16 = 0x3006;
pub const GP_CFG0: u16 = 0x3007;
pub const GP_CFG1: u16 = 0x3008;
pub const SYSINTE_1: u16 = 0x3009;
pub const SYSINTS_1: u16 = 0x300a;
pub const DEMOD_CTL_1: u16 = 0x300b;
pub const IR_SUSPEND: u16 = 0x300c;
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum Block {
Demod = 0,
Usb = 1,
Sys = 2,
Tuner = 3,
Rom = 4,
Ir = 5,
Iic = 6,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum TunerType {
Unknown,
E4000,
Fc0012,
Fc0013,
Fc2580,
R820T,
R828D,
}
impl TunerType {
pub fn gains(&self) -> &'static [i32] {
use crate::constants::*;
match self {
Self::E4000 => E4K_GAINS,
Self::Fc0012 => FC0012_GAINS,
Self::Fc0013 => FC0013_GAINS,
Self::Fc2580 => FC2580_GAINS,
Self::R820T | Self::R828D => R82XX_GAINS,
Self::Unknown => &[],
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum AsyncStatus {
Inactive,
Canceling,
Running,
}