svd-generator 0.4.2

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

/// Creates ARM PL080 DMA Controller Software registers.
pub fn create() -> Result<svd::RegisterCluster> {
    Ok(svd::RegisterCluster::Cluster(create_cluster(
        "soft",
        "DMAC Software registers",
        0x20,
        &[
            svd::RegisterCluster::Register(create_register(
                "burst_req",
                "Software Burst Request Register - enables DMA burst requests to be generated by software. You can generate a DMA request for each source by writing a 1 to the corresponding register bit. A register bit is cleared when the transaction has completed. Writing 0 to this register has no effect. Reading the register indicates the sources that are requesting DMA burst transfers. You can generate a request from either a peripheral or the software request register.",
                0x0,
                create_register_properties(32, 0)?,
                Some(&[
                    create_field(
                        "burst_req",
                        "Software burst request.",
                        create_bit_range("[15:0]")?,
                        svd::Access::ReadWrite,
                        None,
                    )?,
                ]),
                None,
            )?),
            svd::RegisterCluster::Register(create_register(
                "single_req",
                "Software Single Request Register - enables DMA single requests to be generated by software. You can generate a DMA request for each source by writing a 1 to the corresponding register bit. A register bit is cleared when the transaction has completed. Writing 0 to this register has no effect. Reading the register indicates the sources that are requesting single DMA transfers. You can generate a request from either a peripheral or the software request register",
                0x4,
                create_register_properties(32, 0)?,
                Some(&[
                    create_field(
                        "single_req",
                        "Software single request.",
                        create_bit_range("[15:0]")?,
                        svd::Access::ReadWrite,
                        None,
                    )?,
                ]),
                None,
            )?),
            svd::RegisterCluster::Register(create_register(
                "last_burst_req",
                "Software Last Burst Request Register - enables software to generate DMA last burst requests. You can generate a DMA request for each source by writing a 1 to the corresponding register bit. A register bit is cleared when the transaction has completed. Writing 0 to this register has no effect. Reading the register indicates the sources that are requesting last burst DMA transfers. You can generate a request from either a peripheral or the software request register.",
                0x8,
                create_register_properties(32, 0)?,
                Some(&[
                    create_field(
                        "last_burst_req",
                        "Software last burst request.",
                        create_bit_range("[15:0]")?,
                        svd::Access::ReadWrite,
                        None,
                    )?,
                ]),
                None,
            )?),
            svd::RegisterCluster::Register(create_register(
                "last_single_req",
                "Software Last Single Request Register - enables software to generate DMA last single requests. You can generate a DMA request for each source by writing a 1 to the corresponding register bit. A register bit is cleared when the transaction has completed. Writing 0 to this register has no effect. Reading the register indicates the sources that are requesting last single DMA transfers. You can generate a request from either a peripheral or the software request register.",
                0xc,
                create_register_properties(32, 0)?,
                Some(&[
                    create_field(
                        "last_single_req",
                        "Software last single request.",
                        create_bit_range("[15:0]")?,
                        svd::Access::ReadWrite,
                        None,
                    )?,
                ]),
                None,
            )?),
        ],
        None,
    )?))
}