svd-generator 0.4.4

Converts device information from flattened device tree into an SVD description
Documentation
use crate::svd::{create_bit_range, create_field, create_register, create_register_properties};
use crate::Result;

/// Creates a Synopsys DesignWare Gigabit Ethernet v5.xx MTL PPS Control register definition.
pub fn create() -> Result<svd::RegisterCluster> {
    Ok(svd::RegisterCluster::Register(create_register(
        "pps_ctrl",
        "MTL PPS Control and Status - pps_ctrl0: channel 0-3 control, pps_ctrl1: channel 4-7 control",
        0xb70,
        create_register_properties(32, 0)?,
        Some(&[
            create_field(
                "cmd0",
                "MTL PPS CMD",
                create_bit_range("[3:0]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "en0",
                "MTL PPS EN",
                create_bit_range("[4:4]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "tgtmodsel0",
                "MTL PPS Target Mode Select",
                create_bit_range("[6:5]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "mcgren0",
                "MTL PPS MCGR Enable",
                create_bit_range("[7:7]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "cmd1",
                "MTL PPS CMD",
                create_bit_range("[11:8]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "en1",
                "MTL PPS EN",
                create_bit_range("[12:12]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "tgtmodsel1",
                "MTL PPS Target Mode Select",
                create_bit_range("[14:13]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "mcgren1",
                "MTL PPS MCGR Enable",
                create_bit_range("[15:15]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "cmd2",
                "MTL PPS CMD",
                create_bit_range("[19:16]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "en2",
                "MTL PPS EN",
                create_bit_range("[20:20]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "tgtmodsel2",
                "MTL PPS Target Mode Select",
                create_bit_range("[22:21]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "mcgren2",
                "MTL PPS MCGR Enable",
                create_bit_range("[23:23]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "cmd3",
                "MTL PPS CMD",
                create_bit_range("[27:24]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "en3",
                "MTL PPS EN",
                create_bit_range("[28:28]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "tgtmodsel3",
                "MTL PPS Target Mode Select",
                create_bit_range("[30:29]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "mcgren3",
                "MTL PPS MCGR Enable",
                create_bit_range("[31:31]")?,
                svd::Access::ReadWrite,
                None,
            )?,
        ]),
        Some(svd::DimElement::builder()
            .dim(2)
            .dim_increment(0x4)
            .build(svd::ValidateLevel::Strict)?),
    )?))
}