svd-generator 0.4.2

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 the DesignWare I2C CON register.
pub fn create() -> Result<svd::RegisterCluster> {
    Ok(svd::RegisterCluster::Register(create_register(
        "i2c_con",
        "DesignWare I2C CON",
        0x00,
        create_register_properties(32, 0)?,
        Some(&[
            create_field(
                "master",
                "I2C Master Connection - 0: Slave, 1: Master",
                create_bit_range("[0:0]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "speed",
                "I2C Speed - 01: Standard, 10: Fast, 11: High",
                create_bit_range("[2:1]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "slave_10bitaddr",
                "I2C Slave 10-bit Address - 0: False, 1: True",
                create_bit_range("[3:3]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "master_10bitaddr",
                "I2C Master 10-bit Address - 0: False, 1: True",
                create_bit_range("[4:4]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "restart_en",
                "I2C Restart Enable - 0: False, 1: True",
                create_bit_range("[5:5]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "slave_disable",
                "I2C Slave Disable - 0: False, 1: True",
                create_bit_range("[6:6]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "stop_det_ifaddressed",
                "I2C Stop DET If Addressed - 0: False, 1: True",
                create_bit_range("[7:7]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "tx_empty_ctrl",
                "I2C TX Empty Control - 0: False, 1: True",
                create_bit_range("[8:8]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "rx_fifo_full_hld_ctrl",
                "I2C RX FIFO Full Hold Control - 0: False, 1: True",
                create_bit_range("[9:9]")?,
                svd::Access::ReadWrite,
                None,
            )?,
            create_field(
                "bus_clear_ctrl",
                "I2C Bus Clear Control - 0: False, 1: True",
                create_bit_range("[11:11]")?,
                svd::Access::ReadWrite,
                None,
            )?,
        ]),
        None,
    )?))
}