svd_generator/svd/peripheral/dwgmac/registers/
v4x.rs

1use super::{pcs, pmt};
2use crate::Result;
3
4pub mod addr;
5pub mod arp_addr;
6pub mod config;
7pub mod debug;
8pub mod ext_config;
9pub mod gpio_status;
10pub mod hash_table;
11pub mod hw_feat;
12pub mod int;
13pub mod l3l4;
14pub mod lpi;
15pub mod mdio;
16pub mod mtl;
17pub mod packet_filter;
18pub mod phyif_ctrl_status;
19pub mod rx_flow_ctrl;
20pub mod rx_queue_ctrl;
21pub mod tic_counter_us;
22pub mod timestamp;
23pub mod tx_queue_flow_ctrl;
24pub mod tx_queue_priority;
25pub mod vlan;
26pub mod vlan_hash_table;
27pub mod vlan_tag;
28pub mod vlan_tag_data;
29
30/// Creates Synopsys DesignWare Gigabit Ethernet MAC v4.xx register definitions.
31///
32/// Based on the register definitions from the Linux driver: <https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/stmicro/stmmac/dwmac4.h>
33///
34/// Original Author: Alexandre Torque <alexandre.torque@st.com>
35pub fn create() -> Result<Vec<svd::RegisterCluster>> {
36    Ok([
37        config::create()?,
38        ext_config::create()?,
39        packet_filter::create()?,
40        hash_table::create()?,
41        vlan_tag::create()?,
42        vlan_tag_data::create()?,
43        vlan_hash_table::create()?,
44        vlan::create()?,
45        tx_queue_flow_ctrl::create()?,
46        rx_flow_ctrl::create()?,
47        tx_queue_priority::create()?,
48        rx_queue_ctrl::create()?,
49        int::create()?,
50        pmt::create(0xc0)?,
51        lpi::create()?,
52        tic_counter_us::create()?,
53        pcs::create(0xe0)?,
54        phyif_ctrl_status::create()?,
55        debug::create()?,
56        hw_feat::create()?,
57        mdio::create()?,
58        gpio_status::create()?,
59        arp_addr::create()?,
60        addr::create()?,
61        l3l4::create()?,
62        timestamp::create()?,
63        mtl::create()?,
64    ]
65    .into())
66}