esp32p4/
mipi_csi_bridge.rs

1#[repr(C)]
2#[cfg_attr(feature = "impl-register-debug", derive(Debug))]
3#[doc = "Register block"]
4pub struct RegisterBlock {
5    clk_en: CLK_EN,
6    csi_en: CSI_EN,
7    dma_req_cfg: DMA_REQ_CFG,
8    buf_flow_ctl: BUF_FLOW_CTL,
9    data_type_cfg: DATA_TYPE_CFG,
10    frame_cfg: FRAME_CFG,
11    endian_mode: ENDIAN_MODE,
12    int_raw: INT_RAW,
13    int_clr: INT_CLR,
14    int_st: INT_ST,
15    int_ena: INT_ENA,
16    dma_req_interval: DMA_REQ_INTERVAL,
17    dmablk_size: DMABLK_SIZE,
18    rdn_eco_cs: RDN_ECO_CS,
19    rdn_eco_low: RDN_ECO_LOW,
20    rdn_eco_high: RDN_ECO_HIGH,
21    host_ctrl: HOST_CTRL,
22    mem_ctrl: MEM_CTRL,
23}
24impl RegisterBlock {
25    #[doc = "0x00 - csi bridge register mapping unit clock gating."]
26    #[inline(always)]
27    pub const fn clk_en(&self) -> &CLK_EN {
28        &self.clk_en
29    }
30    #[doc = "0x04 - csi bridge enable."]
31    #[inline(always)]
32    pub const fn csi_en(&self) -> &CSI_EN {
33        &self.csi_en
34    }
35    #[doc = "0x08 - dma request configuration."]
36    #[inline(always)]
37    pub const fn dma_req_cfg(&self) -> &DMA_REQ_CFG {
38        &self.dma_req_cfg
39    }
40    #[doc = "0x0c - csi bridge buffer control."]
41    #[inline(always)]
42    pub const fn buf_flow_ctl(&self) -> &BUF_FLOW_CTL {
43        &self.buf_flow_ctl
44    }
45    #[doc = "0x10 - pixel data type configuration."]
46    #[inline(always)]
47    pub const fn data_type_cfg(&self) -> &DATA_TYPE_CFG {
48        &self.data_type_cfg
49    }
50    #[doc = "0x14 - frame configuration."]
51    #[inline(always)]
52    pub const fn frame_cfg(&self) -> &FRAME_CFG {
53        &self.frame_cfg
54    }
55    #[doc = "0x18 - data endianness order configuration."]
56    #[inline(always)]
57    pub const fn endian_mode(&self) -> &ENDIAN_MODE {
58        &self.endian_mode
59    }
60    #[doc = "0x1c - csi bridge interrupt raw."]
61    #[inline(always)]
62    pub const fn int_raw(&self) -> &INT_RAW {
63        &self.int_raw
64    }
65    #[doc = "0x20 - csi bridge interrupt clr."]
66    #[inline(always)]
67    pub const fn int_clr(&self) -> &INT_CLR {
68        &self.int_clr
69    }
70    #[doc = "0x24 - csi bridge interrupt st."]
71    #[inline(always)]
72    pub const fn int_st(&self) -> &INT_ST {
73        &self.int_st
74    }
75    #[doc = "0x28 - csi bridge interrupt enable."]
76    #[inline(always)]
77    pub const fn int_ena(&self) -> &INT_ENA {
78        &self.int_ena
79    }
80    #[doc = "0x2c - DMA interval configuration."]
81    #[inline(always)]
82    pub const fn dma_req_interval(&self) -> &DMA_REQ_INTERVAL {
83        &self.dma_req_interval
84    }
85    #[doc = "0x30 - DMA block size configuration."]
86    #[inline(always)]
87    pub const fn dmablk_size(&self) -> &DMABLK_SIZE {
88        &self.dmablk_size
89    }
90    #[doc = "0x34 - N/A"]
91    #[inline(always)]
92    pub const fn rdn_eco_cs(&self) -> &RDN_ECO_CS {
93        &self.rdn_eco_cs
94    }
95    #[doc = "0x38 - N/A"]
96    #[inline(always)]
97    pub const fn rdn_eco_low(&self) -> &RDN_ECO_LOW {
98        &self.rdn_eco_low
99    }
100    #[doc = "0x3c - N/A"]
101    #[inline(always)]
102    pub const fn rdn_eco_high(&self) -> &RDN_ECO_HIGH {
103        &self.rdn_eco_high
104    }
105    #[doc = "0x40 - csi host control by csi bridge."]
106    #[inline(always)]
107    pub const fn host_ctrl(&self) -> &HOST_CTRL {
108        &self.host_ctrl
109    }
110    #[doc = "0x44 - csi bridge buffer control."]
111    #[inline(always)]
112    pub const fn mem_ctrl(&self) -> &MEM_CTRL {
113        &self.mem_ctrl
114    }
115}
116#[doc = "CLK_EN (rw) register accessor: csi bridge register mapping unit clock gating.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`clk_en::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`clk_en::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@clk_en`] module"]
117pub type CLK_EN = crate::Reg<clk_en::CLK_EN_SPEC>;
118#[doc = "csi bridge register mapping unit clock gating."]
119pub mod clk_en;
120#[doc = "CSI_EN (rw) register accessor: csi bridge enable.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`csi_en::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`csi_en::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@csi_en`] module"]
121pub type CSI_EN = crate::Reg<csi_en::CSI_EN_SPEC>;
122#[doc = "csi bridge enable."]
123pub mod csi_en;
124#[doc = "DMA_REQ_CFG (rw) register accessor: dma request configuration.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`dma_req_cfg::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`dma_req_cfg::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dma_req_cfg`] module"]
125pub type DMA_REQ_CFG = crate::Reg<dma_req_cfg::DMA_REQ_CFG_SPEC>;
126#[doc = "dma request configuration."]
127pub mod dma_req_cfg;
128#[doc = "BUF_FLOW_CTL (rw) register accessor: csi bridge buffer control.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`buf_flow_ctl::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`buf_flow_ctl::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@buf_flow_ctl`] module"]
129pub type BUF_FLOW_CTL = crate::Reg<buf_flow_ctl::BUF_FLOW_CTL_SPEC>;
130#[doc = "csi bridge buffer control."]
131pub mod buf_flow_ctl;
132#[doc = "DATA_TYPE_CFG (rw) register accessor: pixel data type configuration.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`data_type_cfg::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`data_type_cfg::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@data_type_cfg`] module"]
133pub type DATA_TYPE_CFG = crate::Reg<data_type_cfg::DATA_TYPE_CFG_SPEC>;
134#[doc = "pixel data type configuration."]
135pub mod data_type_cfg;
136#[doc = "FRAME_CFG (rw) register accessor: frame configuration.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`frame_cfg::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`frame_cfg::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@frame_cfg`] module"]
137pub type FRAME_CFG = crate::Reg<frame_cfg::FRAME_CFG_SPEC>;
138#[doc = "frame configuration."]
139pub mod frame_cfg;
140#[doc = "ENDIAN_MODE (rw) register accessor: data endianness order configuration.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`endian_mode::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`endian_mode::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@endian_mode`] module"]
141pub type ENDIAN_MODE = crate::Reg<endian_mode::ENDIAN_MODE_SPEC>;
142#[doc = "data endianness order configuration."]
143pub mod endian_mode;
144#[doc = "INT_RAW (rw) register accessor: csi bridge interrupt raw.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`int_raw::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`int_raw::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_raw`] module"]
145pub type INT_RAW = crate::Reg<int_raw::INT_RAW_SPEC>;
146#[doc = "csi bridge interrupt raw."]
147pub mod int_raw;
148#[doc = "INT_CLR (w) register accessor: csi bridge interrupt clr.\n\nYou can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`int_clr::W`]. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_clr`] module"]
149pub type INT_CLR = crate::Reg<int_clr::INT_CLR_SPEC>;
150#[doc = "csi bridge interrupt clr."]
151pub mod int_clr;
152#[doc = "INT_ST (r) register accessor: csi bridge interrupt st.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`int_st::R`].  See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_st`] module"]
153pub type INT_ST = crate::Reg<int_st::INT_ST_SPEC>;
154#[doc = "csi bridge interrupt st."]
155pub mod int_st;
156#[doc = "INT_ENA (rw) register accessor: csi bridge interrupt enable.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`int_ena::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`int_ena::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@int_ena`] module"]
157pub type INT_ENA = crate::Reg<int_ena::INT_ENA_SPEC>;
158#[doc = "csi bridge interrupt enable."]
159pub mod int_ena;
160#[doc = "DMA_REQ_INTERVAL (rw) register accessor: DMA interval configuration.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`dma_req_interval::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`dma_req_interval::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dma_req_interval`] module"]
161pub type DMA_REQ_INTERVAL = crate::Reg<dma_req_interval::DMA_REQ_INTERVAL_SPEC>;
162#[doc = "DMA interval configuration."]
163pub mod dma_req_interval;
164#[doc = "DMABLK_SIZE (rw) register accessor: DMA block size configuration.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`dmablk_size::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`dmablk_size::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@dmablk_size`] module"]
165pub type DMABLK_SIZE = crate::Reg<dmablk_size::DMABLK_SIZE_SPEC>;
166#[doc = "DMA block size configuration."]
167pub mod dmablk_size;
168#[doc = "RDN_ECO_CS (rw) register accessor: N/A\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rdn_eco_cs::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`rdn_eco_cs::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rdn_eco_cs`] module"]
169pub type RDN_ECO_CS = crate::Reg<rdn_eco_cs::RDN_ECO_CS_SPEC>;
170#[doc = "N/A"]
171pub mod rdn_eco_cs;
172#[doc = "RDN_ECO_LOW (rw) register accessor: N/A\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rdn_eco_low::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`rdn_eco_low::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rdn_eco_low`] module"]
173pub type RDN_ECO_LOW = crate::Reg<rdn_eco_low::RDN_ECO_LOW_SPEC>;
174#[doc = "N/A"]
175pub mod rdn_eco_low;
176#[doc = "RDN_ECO_HIGH (rw) register accessor: N/A\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`rdn_eco_high::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`rdn_eco_high::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@rdn_eco_high`] module"]
177pub type RDN_ECO_HIGH = crate::Reg<rdn_eco_high::RDN_ECO_HIGH_SPEC>;
178#[doc = "N/A"]
179pub mod rdn_eco_high;
180#[doc = "HOST_CTRL (rw) register accessor: csi host control by csi bridge.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`host_ctrl::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`host_ctrl::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@host_ctrl`] module"]
181pub type HOST_CTRL = crate::Reg<host_ctrl::HOST_CTRL_SPEC>;
182#[doc = "csi host control by csi bridge."]
183pub mod host_ctrl;
184#[doc = "MEM_CTRL (rw) register accessor: csi bridge buffer control.\n\nYou can [`read`](crate::generic::Reg::read) this register and get [`mem_ctrl::R`].  You can [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero) this register using [`mem_ctrl::W`]. You can also [`modify`](crate::generic::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mem_ctrl`] module"]
185pub type MEM_CTRL = crate::Reg<mem_ctrl::MEM_CTRL_SPEC>;
186#[doc = "csi bridge buffer control."]
187pub mod mem_ctrl;