use crate::svd::register::{
create_bit_range, create_cluster, create_field, create_register, create_register_properties,
};
use crate::Result;
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,
)?))
}