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
//! Silicon Labs BSP generator vendor path.
//!
//! Silicon Labs EFM32 Series 1 parts (EFM32GG11, EFM32xG12, …) carry
//! a peripheral routing model that does not map cleanly onto either
//! the STM32-shaped generic [`crate::ir::Ir`] or the Espressif
//! IO-MUX/GPIO-matrix shape:
//!
//! - Per-peripheral `ROUTELOC0` / `ROUTELOC1` register selects a
//! fixed pin location for each role (TX, RX, CLK, CS, CTS, RTS,
//! SCL, SDA, CC0..CC3) with a parallel `ROUTEPEN` enable register.
//! - Pin addressing uses `(port, pin)` tuples — `port` is `A..I`,
//! `pin` is `0..15`. GPIO ports are independent register blocks
//! on the chip rather than a single linear pad number.
//! - Clock gating lives in three CMU register families: HF peripheral
//! bus (`cmu.hfperclken0/1`), HF system bus (`cmu.hfbusclken0`), and
//! the LF clken bank (`cmu.lfaclken0`, `cmu.lfbclken0`,
//! `cmu.lfeclken0`) for low-energy peripherals. EFM32GG11 has no
//! per-peripheral reset register — RMU is soft-reset only.
//!
//! To keep the STM32 path untouched while still supporting the
//! `efm32gg11b-pac` target, this module carries its own intermediate
//! representation and loader that reads YAML chip / board specs from
//! the `rlvgl-chips-silabs` chipdb crate.
//!
//! See `docs/concepts/CHIPS-SILABS-00-CONCEPTS.md` for the frozen
//! decisions this adapter implements; §10.2 is the canonical
//! description of the ROUTELOC routing kind and §10.3 the port-pin
//! tuple shape.
pub use ;
pub use ;
pub use ;