#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister};
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod CSICR1 {
pub mod PIXEL_BIT {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PIXEL_BIT_0: u32 = 0b0;
pub const PIXEL_BIT_1: u32 = 0b1;
}
}
pub mod REDGE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const REDGE_0: u32 = 0b0;
pub const REDGE_1: u32 = 0b1;
}
}
pub mod INV_PCLK {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const INV_PCLK_0: u32 = 0b0;
pub const INV_PCLK_1: u32 = 0b1;
}
}
pub mod INV_DATA {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const INV_DATA_0: u32 = 0b0;
pub const INV_DATA_1: u32 = 0b1;
}
}
pub mod GCLK_MODE {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const GCLK_MODE_0: u32 = 0b0;
pub const GCLK_MODE_1: u32 = 0b1;
}
}
pub mod CLR_RXFIFO {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CLR_STATFIFO {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PACK_DIR {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PACK_DIR_0: u32 = 0b0;
pub const PACK_DIR_1: u32 = 0b1;
}
}
pub mod FCC {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FCC_0: u32 = 0b0;
pub const FCC_1: u32 = 0b1;
}
}
pub mod CCIR_EN {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CCIR_EN_0: u32 = 0b0;
pub const CCIR_EN_1: u32 = 0b1;
}
}
pub mod HSYNC_POL {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HSYNC_POL_0: u32 = 0b0;
pub const HSYNC_POL_1: u32 = 0b1;
}
}
pub mod SOF_INTEN {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SOF_INTEN_0: u32 = 0b0;
pub const SOF_INTEN_1: u32 = 0b1;
}
}
pub mod SOF_POL {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SOF_POL_0: u32 = 0b0;
pub const SOF_POL_1: u32 = 0b1;
}
}
pub mod RXFF_INTEN {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RXFF_INTEN_0: u32 = 0b0;
pub const RXFF_INTEN_1: u32 = 0b1;
}
}
pub mod FB1_DMA_DONE_INTEN {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FB1_DMA_DONE_INTEN_0: u32 = 0b0;
pub const FB1_DMA_DONE_INTEN_1: u32 = 0b1;
}
}
pub mod FB2_DMA_DONE_INTEN {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FB2_DMA_DONE_INTEN_0: u32 = 0b0;
pub const FB2_DMA_DONE_INTEN_1: u32 = 0b1;
}
}
pub mod STATFF_INTEN {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const STATFF_INTEN_0: u32 = 0b0;
pub const STATFF_INTEN_1: u32 = 0b1;
}
}
pub mod SFF_DMA_DONE_INTEN {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SFF_DMA_DONE_INTEN_0: u32 = 0b0;
pub const SFF_DMA_DONE_INTEN_1: u32 = 0b1;
}
}
pub mod RF_OR_INTEN {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RF_OR_INTEN_0: u32 = 0b0;
pub const RF_OR_INTEN_1: u32 = 0b1;
}
}
pub mod SF_OR_INTEN {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SF_OR_INTEN_0: u32 = 0b0;
pub const SF_OR_INTEN_1: u32 = 0b1;
}
}
pub mod COF_INT_EN {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const COF_INT_EN_0: u32 = 0b0;
pub const COF_INT_EN_1: u32 = 0b1;
}
}
pub mod CCIR_MODE {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const CCIR_MODE_0: u32 = 0b0;
pub const CCIR_MODE_1: u32 = 0b1;
}
}
pub mod PrP_IF_EN {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PrP_IF_EN_0: u32 = 0b0;
pub const PrP_IF_EN_1: u32 = 0b1;
}
}
pub mod EOF_INT_EN {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const EOF_INT_EN_0: u32 = 0b0;
pub const EOF_INT_EN_1: u32 = 0b1;
}
}
pub mod EXT_VSYNC {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const EXT_VSYNC_0: u32 = 0b0;
pub const EXT_VSYNC_1: u32 = 0b1;
}
}
pub mod SWAP16_EN {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SWAP16_EN_0: u32 = 0b0;
pub const SWAP16_EN_1: u32 = 0b1;
}
}
}
pub mod CSICR2 {
pub mod HSC {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VSC {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LVRM {
pub const offset: u32 = 16;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LVRM_0: u32 = 0b000;
pub const LVRM_1: u32 = 0b001;
pub const LVRM_2: u32 = 0b010;
pub const LVRM_3: u32 = 0b011;
pub const LVRM_4: u32 = 0b100;
pub const LVRM_5: u32 = 0b101;
pub const LVRM_6: u32 = 0b110;
}
}
pub mod BTS {
pub const offset: u32 = 19;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BTS_0: u32 = 0b00;
pub const BTS_1: u32 = 0b01;
pub const BTS_2: u32 = 0b10;
pub const BTS_3: u32 = 0b11;
}
}
pub mod SCE {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SCE_0: u32 = 0b0;
pub const SCE_1: u32 = 0b1;
}
}
pub mod AFS {
pub const offset: u32 = 24;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const AFS_0: u32 = 0b00;
pub const AFS_1: u32 = 0b01;
pub const AFS_2: u32 = 0b00;
}
}
pub mod DRM {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DRM_0: u32 = 0b0;
pub const DRM_1: u32 = 0b1;
}
}
pub mod DMA_BURST_TYPE_SFF {
pub const offset: u32 = 28;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMA_BURST_TYPE_SFF_0: u32 = 0b00;
pub const DMA_BURST_TYPE_SFF_1: u32 = 0b01;
pub const DMA_BURST_TYPE_SFF_3: u32 = 0b11;
}
}
pub mod DMA_BURST_TYPE_RFF {
pub const offset: u32 = 30;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMA_BURST_TYPE_RFF_0: u32 = 0b00;
pub const DMA_BURST_TYPE_RFF_1: u32 = 0b01;
pub const DMA_BURST_TYPE_RFF_3: u32 = 0b11;
}
}
}
pub mod CSICR3 {
pub mod ECC_AUTO_EN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ECC_AUTO_EN_0: u32 = 0b0;
pub const ECC_AUTO_EN_1: u32 = 0b1;
}
}
pub mod ECC_INT_EN {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ECC_INT_EN_0: u32 = 0b0;
pub const ECC_INT_EN_1: u32 = 0b1;
}
}
pub mod ZERO_PACK_EN {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ZERO_PACK_EN_0: u32 = 0b0;
pub const ZERO_PACK_EN_1: u32 = 0b1;
}
}
pub mod TWO_8BIT_SENSOR {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const TWO_8BIT_SENSOR_0: u32 = 0b0;
pub const TWO_8BIT_SENSOR_1: u32 = 0b1;
}
}
pub mod RxFF_LEVEL {
pub const offset: u32 = 4;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RxFF_LEVEL_0: u32 = 0b000;
pub const RxFF_LEVEL_1: u32 = 0b001;
pub const RxFF_LEVEL_2: u32 = 0b010;
pub const RxFF_LEVEL_3: u32 = 0b011;
pub const RxFF_LEVEL_4: u32 = 0b100;
pub const RxFF_LEVEL_5: u32 = 0b101;
pub const RxFF_LEVEL_6: u32 = 0b110;
pub const RxFF_LEVEL_7: u32 = 0b111;
}
}
pub mod HRESP_ERR_EN {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HRESP_ERR_EN_0: u32 = 0b0;
pub const HRESP_ERR_EN_1: u32 = 0b1;
}
}
pub mod STATFF_LEVEL {
pub const offset: u32 = 8;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const STATFF_LEVEL_0: u32 = 0b000;
pub const STATFF_LEVEL_1: u32 = 0b001;
pub const STATFF_LEVEL_2: u32 = 0b010;
pub const STATFF_LEVEL_3: u32 = 0b011;
pub const STATFF_LEVEL_4: u32 = 0b100;
pub const STATFF_LEVEL_5: u32 = 0b101;
pub const STATFF_LEVEL_6: u32 = 0b110;
pub const STATFF_LEVEL_7: u32 = 0b111;
}
}
pub mod DMA_REQ_EN_SFF {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMA_REQ_EN_SFF_0: u32 = 0b0;
pub const DMA_REQ_EN_SFF_1: u32 = 0b1;
}
}
pub mod DMA_REQ_EN_RFF {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMA_REQ_EN_RFF_0: u32 = 0b0;
pub const DMA_REQ_EN_RFF_1: u32 = 0b1;
}
}
pub mod DMA_REFLASH_SFF {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMA_REFLASH_SFF_0: u32 = 0b0;
pub const DMA_REFLASH_SFF_1: u32 = 0b1;
}
}
pub mod DMA_REFLASH_RFF {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMA_REFLASH_RFF_0: u32 = 0b0;
pub const DMA_REFLASH_RFF_1: u32 = 0b1;
}
}
pub mod FRMCNT_RST {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FRMCNT_RST_0: u32 = 0b0;
pub const FRMCNT_RST_1: u32 = 0b1;
}
}
pub mod FRMCNT {
pub const offset: u32 = 16;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSISTATFIFO {
pub mod STAT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSIRFIFO {
pub mod IMAGE {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSIRXCNT {
pub mod RXCNT {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3fffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSISR {
pub mod DRDY {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DRDY_0: u32 = 0b0;
pub const DRDY_1: u32 = 0b1;
}
}
pub mod ECC_INT {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ECC_INT_0: u32 = 0b0;
pub const ECC_INT_1: u32 = 0b1;
}
}
pub mod HRESP_ERR_INT {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const HRESP_ERR_INT_0: u32 = 0b0;
pub const HRESP_ERR_INT_1: u32 = 0b1;
}
}
pub mod COF_INT {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const COF_INT_0: u32 = 0b0;
pub const COF_INT_1: u32 = 0b1;
}
}
pub mod F1_INT {
pub const offset: u32 = 14;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const F1_INT_0: u32 = 0b0;
pub const F1_INT_1: u32 = 0b1;
}
}
pub mod F2_INT {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const F2_INT_0: u32 = 0b0;
pub const F2_INT_1: u32 = 0b1;
}
}
pub mod SOF_INT {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SOF_INT_0: u32 = 0b0;
pub const SOF_INT_1: u32 = 0b1;
}
}
pub mod EOF_INT {
pub const offset: u32 = 17;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const EOF_INT_0: u32 = 0b0;
pub const EOF_INT_1: u32 = 0b1;
}
}
pub mod RxFF_INT {
pub const offset: u32 = 18;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RxFF_INT_0: u32 = 0b0;
pub const RxFF_INT_1: u32 = 0b1;
}
}
pub mod DMA_TSF_DONE_FB1 {
pub const offset: u32 = 19;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMA_TSF_DONE_FB1_0: u32 = 0b0;
pub const DMA_TSF_DONE_FB1_1: u32 = 0b1;
}
}
pub mod DMA_TSF_DONE_FB2 {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMA_TSF_DONE_FB2_0: u32 = 0b0;
pub const DMA_TSF_DONE_FB2_1: u32 = 0b1;
}
}
pub mod STATFF_INT {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const STATFF_INT_0: u32 = 0b0;
pub const STATFF_INT_1: u32 = 0b1;
}
}
pub mod DMA_TSF_DONE_SFF {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMA_TSF_DONE_SFF_0: u32 = 0b0;
pub const DMA_TSF_DONE_SFF_1: u32 = 0b1;
}
}
pub mod RF_OR_INT {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RF_OR_INT_0: u32 = 0b0;
pub const RF_OR_INT_1: u32 = 0b1;
}
}
pub mod SF_OR_INT {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const SF_OR_INT_0: u32 = 0b0;
pub const SF_OR_INT_1: u32 = 0b1;
}
}
pub mod DMA_FIELD1_DONE {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DMA_FIELD0_DONE {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BASEADDR_CHHANGE_ERROR {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSIDMASA_STATFIFO {
pub mod DMA_START_ADDR_SFF {
pub const offset: u32 = 2;
pub const mask: u32 = 0x3fffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSIDMATS_STATFIFO {
pub mod DMA_TSF_SIZE_SFF {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSIDMASA_FB1 {
pub mod DMA_START_ADDR_FB1 {
pub const offset: u32 = 2;
pub const mask: u32 = 0x3fffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSIDMASA_FB2 {
pub mod DMA_START_ADDR_FB2 {
pub const offset: u32 = 2;
pub const mask: u32 = 0x3fffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSIFBUF_PARA {
pub mod FBUF_STRIDE {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DEINTERLACE_STRIDE {
pub const offset: u32 = 16;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSIIMAG_PARA {
pub mod IMAGE_HEIGHT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IMAGE_WIDTH {
pub const offset: u32 = 16;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSICR18 {
pub mod DEINTERLACE_EN {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DEINTERLACE_EN_0: u32 = 0b0;
pub const DEINTERLACE_EN_1: u32 = 0b1;
}
}
pub mod PARALLEL24_EN {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BASEADDR_SWITCH_EN {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BASEADDR_SWITCH_SEL {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const BASEADDR_SWITCH_SEL_0: u32 = 0b0;
pub const BASEADDR_SWITCH_SEL_1: u32 = 0b1;
}
}
pub mod FIELD0_DONE_IE {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const FIELD0_DONE_IE_0: u32 = 0b0;
pub const FIELD0_DONE_IE_1: u32 = 0b1;
}
}
pub mod DMA_FIELD1_DONE_IE {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DMA_FIELD1_DONE_IE_0: u32 = 0b0;
pub const DMA_FIELD1_DONE_IE_1: u32 = 0b1;
}
}
pub mod LAST_DMA_REQ_SEL {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const LAST_DMA_REQ_SEL_0: u32 = 0b0;
pub const LAST_DMA_REQ_SEL_1: u32 = 0b1;
}
}
pub mod BASEADDR_CHANGE_ERROR_IE {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RGB888A_FORMAT_SEL {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RGB888A_FORMAT_SEL_0: u32 = 0b0;
pub const RGB888A_FORMAT_SEL_1: u32 = 0b1;
}
}
pub mod AHB_HPROT {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MASK_OPTION {
pub const offset: u32 = 18;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MASK_OPTION_0: u32 = 0b00;
pub const MASK_OPTION_1: u32 = 0b01;
pub const MASK_OPTION_2: u32 = 0b10;
pub const MASK_OPTION_3: u32 = 0b11;
}
}
pub mod CSI_ENABLE {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSICR19 {
pub mod DMA_RFIFO_HIGHEST_FIFO_LEVEL {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
#[repr(C)]
pub struct RegisterBlock {
pub CSICR1: RWRegister<u32>,
pub CSICR2: RWRegister<u32>,
pub CSICR3: RWRegister<u32>,
pub CSISTATFIFO: RORegister<u32>,
pub CSIRFIFO: RORegister<u32>,
pub CSIRXCNT: RWRegister<u32>,
pub CSISR: RWRegister<u32>,
_reserved1: [u32; 1],
pub CSIDMASA_STATFIFO: RWRegister<u32>,
pub CSIDMATS_STATFIFO: RWRegister<u32>,
pub CSIDMASA_FB1: RWRegister<u32>,
pub CSIDMASA_FB2: RWRegister<u32>,
pub CSIFBUF_PARA: RWRegister<u32>,
pub CSIIMAG_PARA: RWRegister<u32>,
_reserved2: [u32; 4],
pub CSICR18: RWRegister<u32>,
pub CSICR19: RWRegister<u32>,
}
pub struct ResetValues {
pub CSICR1: u32,
pub CSICR2: u32,
pub CSICR3: u32,
pub CSISTATFIFO: u32,
pub CSIRFIFO: u32,
pub CSIRXCNT: u32,
pub CSISR: u32,
pub CSIDMASA_STATFIFO: u32,
pub CSIDMATS_STATFIFO: u32,
pub CSIDMASA_FB1: u32,
pub CSIDMASA_FB2: u32,
pub CSIFBUF_PARA: u32,
pub CSIIMAG_PARA: u32,
pub CSICR18: u32,
pub CSICR19: u32,
}
#[cfg(not(feature = "nosync"))]
pub struct Instance {
pub(crate) addr: u32,
pub(crate) _marker: PhantomData<*const RegisterBlock>,
}
#[cfg(not(feature = "nosync"))]
impl ::core::ops::Deref for Instance {
type Target = RegisterBlock;
#[inline(always)]
fn deref(&self) -> &RegisterBlock {
unsafe { &*(self.addr as *const _) }
}
}
#[cfg(feature = "rtfm")]
unsafe impl Send for Instance {}
pub mod CSI {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x402bc000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
CSICR1: 0x40000800,
CSICR2: 0x00000000,
CSICR3: 0x00000000,
CSISTATFIFO: 0x00000000,
CSIRFIFO: 0x00000000,
CSIRXCNT: 0x00009600,
CSISR: 0x00004000,
CSIDMASA_STATFIFO: 0x00000000,
CSIDMATS_STATFIFO: 0x00000000,
CSIDMASA_FB1: 0x00000000,
CSIDMASA_FB2: 0x00000000,
CSIFBUF_PARA: 0x00000000,
CSIIMAG_PARA: 0x00000000,
CSICR18: 0x0002D000,
CSICR19: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut CSI_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if CSI_TAKEN {
None
} else {
CSI_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if CSI_TAKEN && inst.addr == INSTANCE.addr {
CSI_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
CSI_TAKEN = true;
INSTANCE
}
}
pub const CSI: *const RegisterBlock = 0x402bc000 as *const _;