#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
#[doc = "0x00 - SPI_CMD"]
pub cmd: crate::Reg<cmd::CMD_SPEC>,
_reserved1: [u8; 4usize],
#[doc = "0x08 - SPI_CTRL"]
pub ctrl: crate::Reg<ctrl::CTRL_SPEC>,
#[doc = "0x0c - SPI_CTRL1"]
pub ctrl1: crate::Reg<ctrl1::CTRL1_SPEC>,
#[doc = "0x10 - SPI_RD_STATUS"]
pub rd_status: crate::Reg<rd_status::RD_STATUS_SPEC>,
#[doc = "0x14 - SPI_CTRL2"]
pub ctrl2: crate::Reg<ctrl2::CTRL2_SPEC>,
#[doc = "0x18 - SPI_CLOCK"]
pub clock: crate::Reg<clock::CLOCK_SPEC>,
#[doc = "0x1c - SPI_USER"]
pub user: crate::Reg<user::USER_SPEC>,
#[doc = "0x20 - SPI_USER1"]
pub user1: crate::Reg<user1::USER1_SPEC>,
#[doc = "0x24 - SPI_USER2"]
pub user2: crate::Reg<user2::USER2_SPEC>,
#[doc = "0x28 - SPI_MOSI_DLEN"]
pub mosi_dlen: crate::Reg<mosi_dlen::MOSI_DLEN_SPEC>,
#[doc = "0x2c - SPI_MISO_DLEN"]
pub miso_dlen: crate::Reg<miso_dlen::MISO_DLEN_SPEC>,
#[doc = "0x30 - SPI_SLV_WR_STATUS"]
pub slv_wr_status: crate::Reg<slv_wr_status::SLV_WR_STATUS_SPEC>,
#[doc = "0x34 - SPI_PIN"]
pub pin: crate::Reg<pin::PIN_SPEC>,
#[doc = "0x38 - SPI_SLAVE"]
pub slave: crate::Reg<slave::SLAVE_SPEC>,
#[doc = "0x3c - SPI_SLAVE1"]
pub slave1: crate::Reg<slave1::SLAVE1_SPEC>,
#[doc = "0x40 - SPI_SLAVE2"]
pub slave2: crate::Reg<slave2::SLAVE2_SPEC>,
#[doc = "0x44 - SPI_SLAVE3"]
pub slave3: crate::Reg<slave3::SLAVE3_SPEC>,
#[doc = "0x48 - SPI_SLV_WRBUF_DLEN"]
pub slv_wrbuf_dlen: crate::Reg<slv_wrbuf_dlen::SLV_WRBUF_DLEN_SPEC>,
#[doc = "0x4c - SPI_SLV_RDBUF_DLEN"]
pub slv_rdbuf_dlen: crate::Reg<slv_rdbuf_dlen::SLV_RDBUF_DLEN_SPEC>,
#[doc = "0x50 - SPI_CACHE_FCTRL"]
pub cache_fctrl: crate::Reg<cache_fctrl::CACHE_FCTRL_SPEC>,
#[doc = "0x54 - SPI_CACHE_SCTRL"]
pub cache_sctrl: crate::Reg<cache_sctrl::CACHE_SCTRL_SPEC>,
#[doc = "0x58 - SPI_SRAM_CMD"]
pub sram_cmd: crate::Reg<sram_cmd::SRAM_CMD_SPEC>,
#[doc = "0x5c - SPI_SRAM_DRD_CMD"]
pub sram_drd_cmd: crate::Reg<sram_drd_cmd::SRAM_DRD_CMD_SPEC>,
#[doc = "0x60 - SPI_SRAM_DWR_CMD"]
pub sram_dwr_cmd: crate::Reg<sram_dwr_cmd::SRAM_DWR_CMD_SPEC>,
#[doc = "0x64 - SPI_SLV_RD_BIT"]
pub slv_rd_bit: crate::Reg<slv_rd_bit::SLV_RD_BIT_SPEC>,
_reserved25: [u8; 24usize],
#[doc = "0x80 - SPI_W0"]
pub w: [crate::Reg<w::W_SPEC>; 16],
#[doc = "0xc0 - SPI_TX_CRC"]
pub tx_crc: crate::Reg<tx_crc::TX_CRC_SPEC>,
_reserved27: [u8; 44usize],
#[doc = "0xf0 - SPI_EXT0"]
pub ext0: crate::Reg<ext0::EXT0_SPEC>,
#[doc = "0xf4 - SPI_EXT1"]
pub ext1: crate::Reg<ext1::EXT1_SPEC>,
#[doc = "0xf8 - SPI_EXT2"]
pub ext2: crate::Reg<ext2::EXT2_SPEC>,
#[doc = "0xfc - SPI_EXT3"]
pub ext3: crate::Reg<ext3::EXT3_SPEC>,
#[doc = "0x100 - SPI_DMA_CONF"]
pub dma_conf: crate::Reg<dma_conf::DMA_CONF_SPEC>,
#[doc = "0x104 - SPI_DMA_OUT_LINK"]
pub dma_out_link: crate::Reg<dma_out_link::DMA_OUT_LINK_SPEC>,
#[doc = "0x108 - SPI_DMA_IN_LINK"]
pub dma_in_link: crate::Reg<dma_in_link::DMA_IN_LINK_SPEC>,
#[doc = "0x10c - SPI_DMA_STATUS"]
pub dma_status: crate::Reg<dma_status::DMA_STATUS_SPEC>,
#[doc = "0x110 - SPI_DMA_INT_ENA"]
pub dma_int_ena: crate::Reg<dma_int_ena::DMA_INT_ENA_SPEC>,
#[doc = "0x114 - SPI_DMA_INT_RAW"]
pub dma_int_raw: crate::Reg<dma_int_raw::DMA_INT_RAW_SPEC>,
#[doc = "0x118 - SPI_DMA_INT_ST"]
pub dma_int_st: crate::Reg<dma_int_st::DMA_INT_ST_SPEC>,
#[doc = "0x11c - SPI_DMA_INT_CLR"]
pub dma_int_clr: crate::Reg<dma_int_clr::DMA_INT_CLR_SPEC>,
#[doc = "0x120 - SPI_IN_ERR_EOF_DES_ADDR"]
pub in_err_eof_des_addr: crate::Reg<in_err_eof_des_addr::IN_ERR_EOF_DES_ADDR_SPEC>,
#[doc = "0x124 - SPI_IN_SUC_EOF_DES_ADDR"]
pub in_suc_eof_des_addr: crate::Reg<in_suc_eof_des_addr::IN_SUC_EOF_DES_ADDR_SPEC>,
#[doc = "0x128 - SPI_INLINK_DSCR"]
pub inlink_dscr: crate::Reg<inlink_dscr::INLINK_DSCR_SPEC>,
#[doc = "0x12c - SPI_INLINK_DSCR_BF0"]
pub inlink_dscr_bf0: crate::Reg<inlink_dscr_bf0::INLINK_DSCR_BF0_SPEC>,
#[doc = "0x130 - SPI_INLINK_DSCR_BF1"]
pub inlink_dscr_bf1: crate::Reg<inlink_dscr_bf1::INLINK_DSCR_BF1_SPEC>,
#[doc = "0x134 - SPI_OUT_EOF_BFR_DES_ADDR"]
pub out_eof_bfr_des_addr: crate::Reg<out_eof_bfr_des_addr::OUT_EOF_BFR_DES_ADDR_SPEC>,
#[doc = "0x138 - SPI_OUT_EOF_DES_ADDR"]
pub out_eof_des_addr: crate::Reg<out_eof_des_addr::OUT_EOF_DES_ADDR_SPEC>,
#[doc = "0x13c - SPI_OUTLINK_DSCR"]
pub outlink_dscr: crate::Reg<outlink_dscr::OUTLINK_DSCR_SPEC>,
#[doc = "0x140 - SPI_OUTLINK_DSCR_BF0"]
pub outlink_dscr_bf0: crate::Reg<outlink_dscr_bf0::OUTLINK_DSCR_BF0_SPEC>,
#[doc = "0x144 - SPI_OUTLINK_DSCR_BF1"]
pub outlink_dscr_bf1: crate::Reg<outlink_dscr_bf1::OUTLINK_DSCR_BF1_SPEC>,
#[doc = "0x148 - SPI_DMA_RSTATUS"]
pub dma_rstatus: crate::Reg<dma_rstatus::DMA_RSTATUS_SPEC>,
#[doc = "0x14c - SPI_DMA_TSTATUS"]
pub dma_tstatus: crate::Reg<dma_tstatus::DMA_TSTATUS_SPEC>,
_reserved51: [u8; 684usize],
#[doc = "0x3fc - SPI_DATE"]
pub date: crate::Reg<date::DATE_SPEC>,
}
#[doc = "CMD register accessor: an alias for `Reg<CMD_SPEC>`"]
pub type CMD = crate::Reg<cmd::CMD_SPEC>;
#[doc = "SPI_CMD"]
pub mod cmd;
#[doc = "CTRL register accessor: an alias for `Reg<CTRL_SPEC>`"]
pub type CTRL = crate::Reg<ctrl::CTRL_SPEC>;
#[doc = "SPI_CTRL"]
pub mod ctrl;
#[doc = "CTRL1 register accessor: an alias for `Reg<CTRL1_SPEC>`"]
pub type CTRL1 = crate::Reg<ctrl1::CTRL1_SPEC>;
#[doc = "SPI_CTRL1"]
pub mod ctrl1;
#[doc = "RD_STATUS register accessor: an alias for `Reg<RD_STATUS_SPEC>`"]
pub type RD_STATUS = crate::Reg<rd_status::RD_STATUS_SPEC>;
#[doc = "SPI_RD_STATUS"]
pub mod rd_status;
#[doc = "CTRL2 register accessor: an alias for `Reg<CTRL2_SPEC>`"]
pub type CTRL2 = crate::Reg<ctrl2::CTRL2_SPEC>;
#[doc = "SPI_CTRL2"]
pub mod ctrl2;
#[doc = "CLOCK register accessor: an alias for `Reg<CLOCK_SPEC>`"]
pub type CLOCK = crate::Reg<clock::CLOCK_SPEC>;
#[doc = "SPI_CLOCK"]
pub mod clock;
#[doc = "USER register accessor: an alias for `Reg<USER_SPEC>`"]
pub type USER = crate::Reg<user::USER_SPEC>;
#[doc = "SPI_USER"]
pub mod user;
#[doc = "USER1 register accessor: an alias for `Reg<USER1_SPEC>`"]
pub type USER1 = crate::Reg<user1::USER1_SPEC>;
#[doc = "SPI_USER1"]
pub mod user1;
#[doc = "USER2 register accessor: an alias for `Reg<USER2_SPEC>`"]
pub type USER2 = crate::Reg<user2::USER2_SPEC>;
#[doc = "SPI_USER2"]
pub mod user2;
#[doc = "MOSI_DLEN register accessor: an alias for `Reg<MOSI_DLEN_SPEC>`"]
pub type MOSI_DLEN = crate::Reg<mosi_dlen::MOSI_DLEN_SPEC>;
#[doc = "SPI_MOSI_DLEN"]
pub mod mosi_dlen;
#[doc = "MISO_DLEN register accessor: an alias for `Reg<MISO_DLEN_SPEC>`"]
pub type MISO_DLEN = crate::Reg<miso_dlen::MISO_DLEN_SPEC>;
#[doc = "SPI_MISO_DLEN"]
pub mod miso_dlen;
#[doc = "SLV_WR_STATUS register accessor: an alias for `Reg<SLV_WR_STATUS_SPEC>`"]
pub type SLV_WR_STATUS = crate::Reg<slv_wr_status::SLV_WR_STATUS_SPEC>;
#[doc = "SPI_SLV_WR_STATUS"]
pub mod slv_wr_status;
#[doc = "PIN register accessor: an alias for `Reg<PIN_SPEC>`"]
pub type PIN = crate::Reg<pin::PIN_SPEC>;
#[doc = "SPI_PIN"]
pub mod pin;
#[doc = "SLAVE register accessor: an alias for `Reg<SLAVE_SPEC>`"]
pub type SLAVE = crate::Reg<slave::SLAVE_SPEC>;
#[doc = "SPI_SLAVE"]
pub mod slave;
#[doc = "SLAVE1 register accessor: an alias for `Reg<SLAVE1_SPEC>`"]
pub type SLAVE1 = crate::Reg<slave1::SLAVE1_SPEC>;
#[doc = "SPI_SLAVE1"]
pub mod slave1;
#[doc = "SLAVE2 register accessor: an alias for `Reg<SLAVE2_SPEC>`"]
pub type SLAVE2 = crate::Reg<slave2::SLAVE2_SPEC>;
#[doc = "SPI_SLAVE2"]
pub mod slave2;
#[doc = "SLAVE3 register accessor: an alias for `Reg<SLAVE3_SPEC>`"]
pub type SLAVE3 = crate::Reg<slave3::SLAVE3_SPEC>;
#[doc = "SPI_SLAVE3"]
pub mod slave3;
#[doc = "SLV_WRBUF_DLEN register accessor: an alias for `Reg<SLV_WRBUF_DLEN_SPEC>`"]
pub type SLV_WRBUF_DLEN = crate::Reg<slv_wrbuf_dlen::SLV_WRBUF_DLEN_SPEC>;
#[doc = "SPI_SLV_WRBUF_DLEN"]
pub mod slv_wrbuf_dlen;
#[doc = "SLV_RDBUF_DLEN register accessor: an alias for `Reg<SLV_RDBUF_DLEN_SPEC>`"]
pub type SLV_RDBUF_DLEN = crate::Reg<slv_rdbuf_dlen::SLV_RDBUF_DLEN_SPEC>;
#[doc = "SPI_SLV_RDBUF_DLEN"]
pub mod slv_rdbuf_dlen;
#[doc = "CACHE_FCTRL register accessor: an alias for `Reg<CACHE_FCTRL_SPEC>`"]
pub type CACHE_FCTRL = crate::Reg<cache_fctrl::CACHE_FCTRL_SPEC>;
#[doc = "SPI_CACHE_FCTRL"]
pub mod cache_fctrl;
#[doc = "CACHE_SCTRL register accessor: an alias for `Reg<CACHE_SCTRL_SPEC>`"]
pub type CACHE_SCTRL = crate::Reg<cache_sctrl::CACHE_SCTRL_SPEC>;
#[doc = "SPI_CACHE_SCTRL"]
pub mod cache_sctrl;
#[doc = "SRAM_CMD register accessor: an alias for `Reg<SRAM_CMD_SPEC>`"]
pub type SRAM_CMD = crate::Reg<sram_cmd::SRAM_CMD_SPEC>;
#[doc = "SPI_SRAM_CMD"]
pub mod sram_cmd;
#[doc = "SRAM_DRD_CMD register accessor: an alias for `Reg<SRAM_DRD_CMD_SPEC>`"]
pub type SRAM_DRD_CMD = crate::Reg<sram_drd_cmd::SRAM_DRD_CMD_SPEC>;
#[doc = "SPI_SRAM_DRD_CMD"]
pub mod sram_drd_cmd;
#[doc = "SRAM_DWR_CMD register accessor: an alias for `Reg<SRAM_DWR_CMD_SPEC>`"]
pub type SRAM_DWR_CMD = crate::Reg<sram_dwr_cmd::SRAM_DWR_CMD_SPEC>;
#[doc = "SPI_SRAM_DWR_CMD"]
pub mod sram_dwr_cmd;
#[doc = "SLV_RD_BIT register accessor: an alias for `Reg<SLV_RD_BIT_SPEC>`"]
pub type SLV_RD_BIT = crate::Reg<slv_rd_bit::SLV_RD_BIT_SPEC>;
#[doc = "SPI_SLV_RD_BIT"]
pub mod slv_rd_bit;
#[doc = "W register accessor: an alias for `Reg<W_SPEC>`"]
pub type W = crate::Reg<w::W_SPEC>;
#[doc = "SPI_W0"]
pub mod w;
#[doc = "TX_CRC register accessor: an alias for `Reg<TX_CRC_SPEC>`"]
pub type TX_CRC = crate::Reg<tx_crc::TX_CRC_SPEC>;
#[doc = "SPI_TX_CRC"]
pub mod tx_crc;
#[doc = "EXT0 register accessor: an alias for `Reg<EXT0_SPEC>`"]
pub type EXT0 = crate::Reg<ext0::EXT0_SPEC>;
#[doc = "SPI_EXT0"]
pub mod ext0;
#[doc = "EXT1 register accessor: an alias for `Reg<EXT1_SPEC>`"]
pub type EXT1 = crate::Reg<ext1::EXT1_SPEC>;
#[doc = "SPI_EXT1"]
pub mod ext1;
#[doc = "EXT2 register accessor: an alias for `Reg<EXT2_SPEC>`"]
pub type EXT2 = crate::Reg<ext2::EXT2_SPEC>;
#[doc = "SPI_EXT2"]
pub mod ext2;
#[doc = "EXT3 register accessor: an alias for `Reg<EXT3_SPEC>`"]
pub type EXT3 = crate::Reg<ext3::EXT3_SPEC>;
#[doc = "SPI_EXT3"]
pub mod ext3;
#[doc = "DMA_CONF register accessor: an alias for `Reg<DMA_CONF_SPEC>`"]
pub type DMA_CONF = crate::Reg<dma_conf::DMA_CONF_SPEC>;
#[doc = "SPI_DMA_CONF"]
pub mod dma_conf;
#[doc = "DMA_OUT_LINK register accessor: an alias for `Reg<DMA_OUT_LINK_SPEC>`"]
pub type DMA_OUT_LINK = crate::Reg<dma_out_link::DMA_OUT_LINK_SPEC>;
#[doc = "SPI_DMA_OUT_LINK"]
pub mod dma_out_link;
#[doc = "DMA_IN_LINK register accessor: an alias for `Reg<DMA_IN_LINK_SPEC>`"]
pub type DMA_IN_LINK = crate::Reg<dma_in_link::DMA_IN_LINK_SPEC>;
#[doc = "SPI_DMA_IN_LINK"]
pub mod dma_in_link;
#[doc = "DMA_STATUS register accessor: an alias for `Reg<DMA_STATUS_SPEC>`"]
pub type DMA_STATUS = crate::Reg<dma_status::DMA_STATUS_SPEC>;
#[doc = "SPI_DMA_STATUS"]
pub mod dma_status;
#[doc = "DMA_INT_ENA register accessor: an alias for `Reg<DMA_INT_ENA_SPEC>`"]
pub type DMA_INT_ENA = crate::Reg<dma_int_ena::DMA_INT_ENA_SPEC>;
#[doc = "SPI_DMA_INT_ENA"]
pub mod dma_int_ena;
#[doc = "DMA_INT_RAW register accessor: an alias for `Reg<DMA_INT_RAW_SPEC>`"]
pub type DMA_INT_RAW = crate::Reg<dma_int_raw::DMA_INT_RAW_SPEC>;
#[doc = "SPI_DMA_INT_RAW"]
pub mod dma_int_raw;
#[doc = "DMA_INT_ST register accessor: an alias for `Reg<DMA_INT_ST_SPEC>`"]
pub type DMA_INT_ST = crate::Reg<dma_int_st::DMA_INT_ST_SPEC>;
#[doc = "SPI_DMA_INT_ST"]
pub mod dma_int_st;
#[doc = "DMA_INT_CLR register accessor: an alias for `Reg<DMA_INT_CLR_SPEC>`"]
pub type DMA_INT_CLR = crate::Reg<dma_int_clr::DMA_INT_CLR_SPEC>;
#[doc = "SPI_DMA_INT_CLR"]
pub mod dma_int_clr;
#[doc = "IN_ERR_EOF_DES_ADDR register accessor: an alias for `Reg<IN_ERR_EOF_DES_ADDR_SPEC>`"]
pub type IN_ERR_EOF_DES_ADDR = crate::Reg<in_err_eof_des_addr::IN_ERR_EOF_DES_ADDR_SPEC>;
#[doc = "SPI_IN_ERR_EOF_DES_ADDR"]
pub mod in_err_eof_des_addr;
#[doc = "IN_SUC_EOF_DES_ADDR register accessor: an alias for `Reg<IN_SUC_EOF_DES_ADDR_SPEC>`"]
pub type IN_SUC_EOF_DES_ADDR = crate::Reg<in_suc_eof_des_addr::IN_SUC_EOF_DES_ADDR_SPEC>;
#[doc = "SPI_IN_SUC_EOF_DES_ADDR"]
pub mod in_suc_eof_des_addr;
#[doc = "INLINK_DSCR register accessor: an alias for `Reg<INLINK_DSCR_SPEC>`"]
pub type INLINK_DSCR = crate::Reg<inlink_dscr::INLINK_DSCR_SPEC>;
#[doc = "SPI_INLINK_DSCR"]
pub mod inlink_dscr;
#[doc = "INLINK_DSCR_BF0 register accessor: an alias for `Reg<INLINK_DSCR_BF0_SPEC>`"]
pub type INLINK_DSCR_BF0 = crate::Reg<inlink_dscr_bf0::INLINK_DSCR_BF0_SPEC>;
#[doc = "SPI_INLINK_DSCR_BF0"]
pub mod inlink_dscr_bf0;
#[doc = "INLINK_DSCR_BF1 register accessor: an alias for `Reg<INLINK_DSCR_BF1_SPEC>`"]
pub type INLINK_DSCR_BF1 = crate::Reg<inlink_dscr_bf1::INLINK_DSCR_BF1_SPEC>;
#[doc = "SPI_INLINK_DSCR_BF1"]
pub mod inlink_dscr_bf1;
#[doc = "OUT_EOF_BFR_DES_ADDR register accessor: an alias for `Reg<OUT_EOF_BFR_DES_ADDR_SPEC>`"]
pub type OUT_EOF_BFR_DES_ADDR = crate::Reg<out_eof_bfr_des_addr::OUT_EOF_BFR_DES_ADDR_SPEC>;
#[doc = "SPI_OUT_EOF_BFR_DES_ADDR"]
pub mod out_eof_bfr_des_addr;
#[doc = "OUT_EOF_DES_ADDR register accessor: an alias for `Reg<OUT_EOF_DES_ADDR_SPEC>`"]
pub type OUT_EOF_DES_ADDR = crate::Reg<out_eof_des_addr::OUT_EOF_DES_ADDR_SPEC>;
#[doc = "SPI_OUT_EOF_DES_ADDR"]
pub mod out_eof_des_addr;
#[doc = "OUTLINK_DSCR register accessor: an alias for `Reg<OUTLINK_DSCR_SPEC>`"]
pub type OUTLINK_DSCR = crate::Reg<outlink_dscr::OUTLINK_DSCR_SPEC>;
#[doc = "SPI_OUTLINK_DSCR"]
pub mod outlink_dscr;
#[doc = "OUTLINK_DSCR_BF0 register accessor: an alias for `Reg<OUTLINK_DSCR_BF0_SPEC>`"]
pub type OUTLINK_DSCR_BF0 = crate::Reg<outlink_dscr_bf0::OUTLINK_DSCR_BF0_SPEC>;
#[doc = "SPI_OUTLINK_DSCR_BF0"]
pub mod outlink_dscr_bf0;
#[doc = "OUTLINK_DSCR_BF1 register accessor: an alias for `Reg<OUTLINK_DSCR_BF1_SPEC>`"]
pub type OUTLINK_DSCR_BF1 = crate::Reg<outlink_dscr_bf1::OUTLINK_DSCR_BF1_SPEC>;
#[doc = "SPI_OUTLINK_DSCR_BF1"]
pub mod outlink_dscr_bf1;
#[doc = "DMA_RSTATUS register accessor: an alias for `Reg<DMA_RSTATUS_SPEC>`"]
pub type DMA_RSTATUS = crate::Reg<dma_rstatus::DMA_RSTATUS_SPEC>;
#[doc = "SPI_DMA_RSTATUS"]
pub mod dma_rstatus;
#[doc = "DMA_TSTATUS register accessor: an alias for `Reg<DMA_TSTATUS_SPEC>`"]
pub type DMA_TSTATUS = crate::Reg<dma_tstatus::DMA_TSTATUS_SPEC>;
#[doc = "SPI_DMA_TSTATUS"]
pub mod dma_tstatus;
#[doc = "DATE register accessor: an alias for `Reg<DATE_SPEC>`"]
pub type DATE = crate::Reg<date::DATE_SPEC>;
#[doc = "SPI_DATE"]
pub mod date;