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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
//! Drivers for iMXRT1010 MCUs.
#![no_std]
pub use ral_registers::{Instance, modify_reg, read_reg, write_reg};
mod rt;
pub use rt::*;
pub mod iomuxc;
/// Clock control module.
pub mod ccm {
pub use imxrt_drivers_ccm_10xx::ahb::pll6_500mhz::*;
pub use imxrt_drivers_ccm_10xx::ccm::{
CCM, LowPowerMode, ahb_clk, clock_gate, flexspi1_clk_root_pll2 as flexspi1_clk, ipg_clk,
low_power_mode, lpi2c_clk, lpspi_clk, perclk_clk, set_low_power_mode, uart_clk,
};
pub use imxrt_drivers_ccm_10xx::ccm_analog::{CCM_ANALOG, pll2, pll3};
/// Peripheral clock 2.
pub mod periph_clk2 {
pub use imxrt_drivers_ccm_10xx::ccm::periph_clk2::{Selection, selection, set_selection};
}
pub use imxrt_drivers_ccm_10xx::ccm::pre_periph_clk_pll6 as pre_periph_clk;
pub use imxrt_drivers_ccm_10xx::ccm_analog::pll6_500mhz as pll6;
pub mod gates {
use super::clock_gate::Locator::{self, *};
pub const FLEXSPI: Locator = Ccgr6Cg05;
}
pub use imxrt_drivers_ccm_10xx::ral;
}
pub use imxrt_drivers_dcdc as dcdc;
pub use imxrt_drivers_flexspi as flexspi;
pub use imxrt_drivers_gpio as gpio;
pub use imxrt_drivers_lpspi as lpspi;
pub use imxrt_drivers_pit as pit;
pub use imxrt_drivers_rtwdog as rtwdog;
/// Peripheral instances.
pub mod instances {
ral_registers::instances! {
// Safety: The reference manual confirms there are register
// blocks at this address matching this shape.
unsafe {
/// Access CCM registers.
pub ccm<imxrt_drivers_ccm_10xx::ral::ccm::RegisterBlock> = 0x400F_C000;
/// Access CCM\_ANALOG registers.
pub ccm_analog<imxrt_drivers_ccm_10xx::ral::ccm_analog::RegisterBlock> = 0x400D_8000;
pub dcdc<crate::dcdc::RegisterBlock> = 0x4008_0000;
pub gpio1<crate::gpio::RegisterBlock> = 0x401b_8000;
pub gpio5<crate::gpio::RegisterBlock> = 0x400c_0000;
pub gpio2<crate::gpio::RegisterBlock> = 0x4200_0000;
pub iomuxc<crate::iomuxc::RegisterBlock> = 0x401F_8000;
pub flexspi<crate::flexspi::RegisterBlock> = 0x400A_0000;
pub pit<crate::pit::RegisterBlock> = 0x4008_4000;
pub lpspi1<crate::lpspi::RegisterBlock> = 0x4019_4000;
pub lpspi2<crate::lpspi::RegisterBlock> = 0x4019_8000;
pub wdog3<crate::rtwdog::RegisterBlock> = 0x400B_C000;
}
}
}
|