aic8800 0.3.0

OS-independent AIC8800 Wi-Fi driver core
//! AIC8800DC system configuration from the pinned vendor Linux driver.

pub(crate) const DC_SYSTEM_CONFIG: &[(u32, u32)] =
    &[(0x4050_0010, 0x0000_0004), (0x4050_0010, 0x0000_0006)];

pub(crate) const DC_MCU_SYSTEM_CONFIG_U02: &[(u32, u32)] = &[
    (0x4003_0000, 0x0003_6da4),
    (0x0011_e800, 0xe7fe_4070),
    (0x4003_0084, 0x0011_e800),
    (0x4003_0080, 0x0000_0001),
    (0x4010_001c, 0x0000_0000),
];

// This is the vendor CONFIG_VRF_DCDC_MODE=y table used by the SG2002 Linux
// build. OOB and SDIO power-control tables are intentionally excluded because
// this driver owns neither an OOB endpoint nor a polling fallback.
pub(crate) const DC_MASKED_SYSTEM_CONFIG: &[(u32, u32, u32)] = &[
    (0x7000_216c, 0x0000_000c, 0x0000_0004),
    (0x7000_21bc, 0x0000_000c, 0x0000_0004),
    (0x7000_2118, 0x0000_00f0, 0x0000_00a0),
    (0x7000_2104, 0x0000_007f, 0x0000_0042),
    (0x7000_210c, 0x0000_007f, 0x0000_0042),
    (0x7000_2170, 0x0000_000f, 0x0000_0001),
    (0x7000_2190, 0x0000_003f, 0x0000_0018),
    (0x7000_21cc, 0x0000_00f0, 0x0000_0000),
    (0x7000_10a0, 0x0000_0800, 0x0000_0800),
    (0x7000_1034, 0x1c10_0000, 0x0800_0000),
    (0x7000_1038, 0x0000_0100, 0x0000_0100),
    (0x7000_1084, 0x0000_6000, 0x0000_0000),
    (0x7000_1094, 0x0000_000c, 0x0000_0000),
    (0x7000_21d0, 0x0000_0060, 0x0000_0060),
    (0x7000_1000, 0x0050_0001, 0x0010_0001),
    (0x7000_1028, 0x0000_003c, 0x0000_0004),
];

pub(crate) const DC_MASKED_SYSTEM_CONFIG_H: &[(u32, u32, u32)] = &[
    (0x7000_216c, 0x0000_003c, 0x0000_0028),
    (0x7000_2138, 0x0000_00ff, 0x0000_00ff),
    (0x7000_213c, 0x0000_00ff, 0x0000_00ff),
    (0x7000_2144, 0x0000_00ff, 0x0000_00ff),
    (0x7000_21bc, 0x0000_000c, 0x0000_0004),
    (0x7000_2118, 0x0000_00f0, 0x0000_00a0),
    (0x7000_2104, 0x0000_007f, 0x0000_0042),
    (0x7000_210c, 0x0000_007f, 0x0000_0042),
    (0x7000_2170, 0x0000_000f, 0x0000_0001),
    (0x7000_2190, 0x0000_003f, 0x0000_0018),
    (0x7000_21cc, 0x0000_00f0, 0x0000_0000),
    (0x7000_10a0, 0x0000_0800, 0x0000_0800),
    (0x7000_1038, 0x0000_0100, 0x0000_0100),
    (0x7000_1084, 0x0000_6000, 0x0000_0000),
    (0x7000_1094, 0x0000_000c, 0x0000_0000),
    (0x7000_21d0, 0x0000_0060, 0x0000_0060),
    (0x7000_1000, 0x0050_0001, 0x0010_0001),
    (0x7000_1028, 0x0000_003c, 0x0000_0004),
];

pub(crate) const DC_WIFI_SETTING_OFFSET_U02: u32 = 0x0124;
pub(crate) const DC_WIFI_SETTING_U02: u32 = 0x0100_1e01;