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