esp32p4/spi0/
spi_smem_axi_addr_ctrl.rs1#[doc = "Register `SPI_SMEM_AXI_ADDR_CTRL` reader"]
2pub type R = crate::R<SPI_SMEM_AXI_ADDR_CTRL_SPEC>;
3#[doc = "Field `ALL_FIFO_EMPTY` reader - The empty status of all AFIFO and SYNC_FIFO in MSPI module. 1: All AXI transfers and SPI0 transfers are done. 0: Others."]
4pub type ALL_FIFO_EMPTY_R = crate::BitReader;
5#[doc = "Field `SPI_RDATA_AFIFO_REMPTY` reader - 1: RDATA_AFIFO is empty. 0: At least one AXI read transfer is pending."]
6pub type SPI_RDATA_AFIFO_REMPTY_R = crate::BitReader;
7#[doc = "Field `SPI_RADDR_AFIFO_REMPTY` reader - 1: AXI_RADDR_CTL_AFIFO is empty. 0: At least one AXI read transfer is pending."]
8pub type SPI_RADDR_AFIFO_REMPTY_R = crate::BitReader;
9#[doc = "Field `SPI_WDATA_AFIFO_REMPTY` reader - 1: WDATA_AFIFO is empty. 0: At least one AXI write transfer is pending."]
10pub type SPI_WDATA_AFIFO_REMPTY_R = crate::BitReader;
11#[doc = "Field `SPI_WBLEN_AFIFO_REMPTY` reader - 1: WBLEN_AFIFO is empty. 0: At least one AXI write transfer is pending."]
12pub type SPI_WBLEN_AFIFO_REMPTY_R = crate::BitReader;
13#[doc = "Field `SPI_ALL_AXI_TRANS_AFIFO_EMPTY` reader - This bit is set when WADDR_AFIFO, WBLEN_AFIFO, WDATA_AFIFO, AXI_RADDR_CTL_AFIFO and RDATA_AFIFO are empty and spi0_mst_st is IDLE."]
14pub type SPI_ALL_AXI_TRANS_AFIFO_EMPTY_R = crate::BitReader;
15impl R {
16 #[doc = "Bit 26 - The empty status of all AFIFO and SYNC_FIFO in MSPI module. 1: All AXI transfers and SPI0 transfers are done. 0: Others."]
17 #[inline(always)]
18 pub fn all_fifo_empty(&self) -> ALL_FIFO_EMPTY_R {
19 ALL_FIFO_EMPTY_R::new(((self.bits >> 26) & 1) != 0)
20 }
21 #[doc = "Bit 27 - 1: RDATA_AFIFO is empty. 0: At least one AXI read transfer is pending."]
22 #[inline(always)]
23 pub fn spi_rdata_afifo_rempty(&self) -> SPI_RDATA_AFIFO_REMPTY_R {
24 SPI_RDATA_AFIFO_REMPTY_R::new(((self.bits >> 27) & 1) != 0)
25 }
26 #[doc = "Bit 28 - 1: AXI_RADDR_CTL_AFIFO is empty. 0: At least one AXI read transfer is pending."]
27 #[inline(always)]
28 pub fn spi_raddr_afifo_rempty(&self) -> SPI_RADDR_AFIFO_REMPTY_R {
29 SPI_RADDR_AFIFO_REMPTY_R::new(((self.bits >> 28) & 1) != 0)
30 }
31 #[doc = "Bit 29 - 1: WDATA_AFIFO is empty. 0: At least one AXI write transfer is pending."]
32 #[inline(always)]
33 pub fn spi_wdata_afifo_rempty(&self) -> SPI_WDATA_AFIFO_REMPTY_R {
34 SPI_WDATA_AFIFO_REMPTY_R::new(((self.bits >> 29) & 1) != 0)
35 }
36 #[doc = "Bit 30 - 1: WBLEN_AFIFO is empty. 0: At least one AXI write transfer is pending."]
37 #[inline(always)]
38 pub fn spi_wblen_afifo_rempty(&self) -> SPI_WBLEN_AFIFO_REMPTY_R {
39 SPI_WBLEN_AFIFO_REMPTY_R::new(((self.bits >> 30) & 1) != 0)
40 }
41 #[doc = "Bit 31 - This bit is set when WADDR_AFIFO, WBLEN_AFIFO, WDATA_AFIFO, AXI_RADDR_CTL_AFIFO and RDATA_AFIFO are empty and spi0_mst_st is IDLE."]
42 #[inline(always)]
43 pub fn spi_all_axi_trans_afifo_empty(&self) -> SPI_ALL_AXI_TRANS_AFIFO_EMPTY_R {
44 SPI_ALL_AXI_TRANS_AFIFO_EMPTY_R::new(((self.bits >> 31) & 1) != 0)
45 }
46}
47#[cfg(feature = "impl-register-debug")]
48impl core::fmt::Debug for R {
49 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
50 f.debug_struct("SPI_SMEM_AXI_ADDR_CTRL")
51 .field(
52 "all_fifo_empty",
53 &format_args!("{}", self.all_fifo_empty().bit()),
54 )
55 .field(
56 "spi_rdata_afifo_rempty",
57 &format_args!("{}", self.spi_rdata_afifo_rempty().bit()),
58 )
59 .field(
60 "spi_raddr_afifo_rempty",
61 &format_args!("{}", self.spi_raddr_afifo_rempty().bit()),
62 )
63 .field(
64 "spi_wdata_afifo_rempty",
65 &format_args!("{}", self.spi_wdata_afifo_rempty().bit()),
66 )
67 .field(
68 "spi_wblen_afifo_rempty",
69 &format_args!("{}", self.spi_wblen_afifo_rempty().bit()),
70 )
71 .field(
72 "spi_all_axi_trans_afifo_empty",
73 &format_args!("{}", self.spi_all_axi_trans_afifo_empty().bit()),
74 )
75 .finish()
76 }
77}
78#[cfg(feature = "impl-register-debug")]
79impl core::fmt::Debug for crate::generic::Reg<SPI_SMEM_AXI_ADDR_CTRL_SPEC> {
80 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
81 core::fmt::Debug::fmt(&self.read(), f)
82 }
83}
84#[doc = "SPI0 AXI address control register\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`spi_smem_axi_addr_ctrl::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
85pub struct SPI_SMEM_AXI_ADDR_CTRL_SPEC;
86impl crate::RegisterSpec for SPI_SMEM_AXI_ADDR_CTRL_SPEC {
87 type Ux = u32;
88}
89#[doc = "`read()` method returns [`spi_smem_axi_addr_ctrl::R`](R) reader structure"]
90impl crate::Readable for SPI_SMEM_AXI_ADDR_CTRL_SPEC {}
91#[doc = "`reset()` method sets SPI_SMEM_AXI_ADDR_CTRL to value 0xfc00_0000"]
92impl crate::Resettable for SPI_SMEM_AXI_ADDR_CTRL_SPEC {
93 const RESET_VALUE: u32 = 0xfc00_0000;
94}