#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::RWRegister;
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod CTRL {
pub mod ENABLE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IRQ_ENABLE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NEXT_IRQ_ENABLE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ENABLE_LCD_HANDSHAKE {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD0 {
pub const offset: u32 = 5;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ROTATE {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ROT_0: u32 = 0b00;
pub const ROT_90: u32 = 0b01;
pub const ROT_180: u32 = 0b10;
pub const ROT_270: u32 = 0b11;
}
}
pub mod HFLIP {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VFLIP {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD1 {
pub const offset: u32 = 12;
pub const mask: u32 = 0x3ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ROT_POS {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BLOCK_SIZE {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const _8X8: u32 = 0b0;
pub const _16X16: u32 = 0b1;
}
}
pub mod RSVD3 {
pub const offset: u32 = 24;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EN_REPEAT {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD4 {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CLKGATE {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SFTRST {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CTRL_SET {
pub use super::CTRL::BLOCK_SIZE;
pub use super::CTRL::CLKGATE;
pub use super::CTRL::ENABLE;
pub use super::CTRL::ENABLE_LCD_HANDSHAKE;
pub use super::CTRL::EN_REPEAT;
pub use super::CTRL::HFLIP;
pub use super::CTRL::IRQ_ENABLE;
pub use super::CTRL::NEXT_IRQ_ENABLE;
pub use super::CTRL::ROTATE;
pub use super::CTRL::ROT_POS;
pub use super::CTRL::RSVD0;
pub use super::CTRL::RSVD1;
pub use super::CTRL::RSVD3;
pub use super::CTRL::RSVD4;
pub use super::CTRL::SFTRST;
pub use super::CTRL::VFLIP;
}
pub mod CTRL_CLR {
pub use super::CTRL::BLOCK_SIZE;
pub use super::CTRL::CLKGATE;
pub use super::CTRL::ENABLE;
pub use super::CTRL::ENABLE_LCD_HANDSHAKE;
pub use super::CTRL::EN_REPEAT;
pub use super::CTRL::HFLIP;
pub use super::CTRL::IRQ_ENABLE;
pub use super::CTRL::NEXT_IRQ_ENABLE;
pub use super::CTRL::ROTATE;
pub use super::CTRL::ROT_POS;
pub use super::CTRL::RSVD0;
pub use super::CTRL::RSVD1;
pub use super::CTRL::RSVD3;
pub use super::CTRL::RSVD4;
pub use super::CTRL::SFTRST;
pub use super::CTRL::VFLIP;
}
pub mod CTRL_TOG {
pub use super::CTRL::BLOCK_SIZE;
pub use super::CTRL::CLKGATE;
pub use super::CTRL::ENABLE;
pub use super::CTRL::ENABLE_LCD_HANDSHAKE;
pub use super::CTRL::EN_REPEAT;
pub use super::CTRL::HFLIP;
pub use super::CTRL::IRQ_ENABLE;
pub use super::CTRL::NEXT_IRQ_ENABLE;
pub use super::CTRL::ROTATE;
pub use super::CTRL::ROT_POS;
pub use super::CTRL::RSVD0;
pub use super::CTRL::RSVD1;
pub use super::CTRL::RSVD3;
pub use super::CTRL::RSVD4;
pub use super::CTRL::SFTRST;
pub use super::CTRL::VFLIP;
}
pub mod STAT {
pub mod IRQ {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AXI_WRITE_ERROR {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AXI_READ_ERROR {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod NEXT_IRQ {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AXI_ERROR_ID {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LUT_DMA_LOAD_DONE_IRQ {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD2 {
pub const offset: u32 = 9;
pub const mask: u32 = 0x7f << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BLOCKY {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BLOCKX {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod STAT_SET {
pub use super::STAT::AXI_ERROR_ID;
pub use super::STAT::AXI_READ_ERROR;
pub use super::STAT::AXI_WRITE_ERROR;
pub use super::STAT::BLOCKX;
pub use super::STAT::BLOCKY;
pub use super::STAT::IRQ;
pub use super::STAT::LUT_DMA_LOAD_DONE_IRQ;
pub use super::STAT::NEXT_IRQ;
pub use super::STAT::RSVD2;
}
pub mod STAT_CLR {
pub use super::STAT::AXI_ERROR_ID;
pub use super::STAT::AXI_READ_ERROR;
pub use super::STAT::AXI_WRITE_ERROR;
pub use super::STAT::BLOCKX;
pub use super::STAT::BLOCKY;
pub use super::STAT::IRQ;
pub use super::STAT::LUT_DMA_LOAD_DONE_IRQ;
pub use super::STAT::NEXT_IRQ;
pub use super::STAT::RSVD2;
}
pub mod STAT_TOG {
pub use super::STAT::AXI_ERROR_ID;
pub use super::STAT::AXI_READ_ERROR;
pub use super::STAT::AXI_WRITE_ERROR;
pub use super::STAT::BLOCKX;
pub use super::STAT::BLOCKY;
pub use super::STAT::IRQ;
pub use super::STAT::LUT_DMA_LOAD_DONE_IRQ;
pub use super::STAT::NEXT_IRQ;
pub use super::STAT::RSVD2;
}
pub mod OUT_CTRL {
pub mod FORMAT {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ARGB8888: u32 = 0b00000;
pub const RGB888: u32 = 0b00100;
pub const RGB888P: u32 = 0b00101;
pub const ARGB1555: u32 = 0b01000;
pub const ARGB4444: u32 = 0b01001;
pub const RGB555: u32 = 0b01100;
pub const RGB444: u32 = 0b01101;
pub const RGB565: u32 = 0b01110;
pub const YUV1P444: u32 = 0b10000;
pub const UYVY1P422: u32 = 0b10010;
pub const VYUY1P422: u32 = 0b10011;
pub const Y8: u32 = 0b10100;
pub const Y4: u32 = 0b10101;
pub const YUV2P422: u32 = 0b11000;
pub const YUV2P420: u32 = 0b11001;
pub const YVU2P422: u32 = 0b11010;
pub const YVU2P420: u32 = 0b11011;
}
}
pub mod RSVD0 {
pub const offset: u32 = 5;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod INTERLACED_OUTPUT {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const PROGRESSIVE: u32 = 0b00;
pub const FIELD0: u32 = 0b01;
pub const FIELD1: u32 = 0b10;
pub const INTERLACED: u32 = 0b11;
}
}
pub mod RSVD1 {
pub const offset: u32 = 10;
pub const mask: u32 = 0x1fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ALPHA_OUTPUT {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ALPHA {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod OUT_CTRL_SET {
pub use super::OUT_CTRL::ALPHA;
pub use super::OUT_CTRL::ALPHA_OUTPUT;
pub use super::OUT_CTRL::FORMAT;
pub use super::OUT_CTRL::INTERLACED_OUTPUT;
pub use super::OUT_CTRL::RSVD0;
pub use super::OUT_CTRL::RSVD1;
}
pub mod OUT_CTRL_CLR {
pub use super::OUT_CTRL::ALPHA;
pub use super::OUT_CTRL::ALPHA_OUTPUT;
pub use super::OUT_CTRL::FORMAT;
pub use super::OUT_CTRL::INTERLACED_OUTPUT;
pub use super::OUT_CTRL::RSVD0;
pub use super::OUT_CTRL::RSVD1;
}
pub mod OUT_CTRL_TOG {
pub use super::OUT_CTRL::ALPHA;
pub use super::OUT_CTRL::ALPHA_OUTPUT;
pub use super::OUT_CTRL::FORMAT;
pub use super::OUT_CTRL::INTERLACED_OUTPUT;
pub use super::OUT_CTRL::RSVD0;
pub use super::OUT_CTRL::RSVD1;
}
pub mod OUT_BUF {
pub mod ADDR {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod OUT_BUF2 {
pub use super::OUT_BUF::ADDR;
}
pub mod OUT_PITCH {
pub mod PITCH {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD {
pub const offset: u32 = 16;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod OUT_LRC {
pub mod Y {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD0 {
pub const offset: u32 = 14;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod X {
pub const offset: u32 = 16;
pub const mask: u32 = 0x3fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD1 {
pub const offset: u32 = 30;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod OUT_PS_ULC {
pub use super::OUT_LRC::RSVD0;
pub use super::OUT_LRC::RSVD1;
pub use super::OUT_LRC::X;
pub use super::OUT_LRC::Y;
}
pub mod OUT_PS_LRC {
pub use super::OUT_LRC::RSVD0;
pub use super::OUT_LRC::RSVD1;
pub use super::OUT_LRC::X;
pub use super::OUT_LRC::Y;
}
pub mod OUT_AS_ULC {
pub use super::OUT_LRC::RSVD0;
pub use super::OUT_LRC::RSVD1;
pub use super::OUT_LRC::X;
pub use super::OUT_LRC::Y;
}
pub mod OUT_AS_LRC {
pub use super::OUT_LRC::RSVD0;
pub use super::OUT_LRC::RSVD1;
pub use super::OUT_LRC::X;
pub use super::OUT_LRC::Y;
}
pub mod PS_CTRL {
pub mod FORMAT {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const RGB888: u32 = 0b00100;
pub const RGB555: u32 = 0b01100;
pub const RGB444: u32 = 0b01101;
pub const RGB565: u32 = 0b01110;
pub const YUV1P444: u32 = 0b10000;
pub const UYVY1P422: u32 = 0b10010;
pub const VYUY1P422: u32 = 0b10011;
pub const Y8: u32 = 0b10100;
pub const Y4: u32 = 0b10101;
pub const YUV2P422: u32 = 0b11000;
pub const YUV2P420: u32 = 0b11001;
pub const YVU2P422: u32 = 0b11010;
pub const YVU2P420: u32 = 0b11011;
pub const YUV422: u32 = 0b11110;
pub const YUV420: u32 = 0b11111;
}
}
pub mod WB_SWAP {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD0 {
pub const offset: u32 = 6;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DECY {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISABLE: u32 = 0b00;
pub const DECY2: u32 = 0b01;
pub const DECY4: u32 = 0b10;
pub const DECY8: u32 = 0b11;
}
}
pub mod DECX {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const DISABLE: u32 = 0b00;
pub const DECX2: u32 = 0b01;
pub const DECX4: u32 = 0b10;
pub const DECX8: u32 = 0b11;
}
}
pub mod RSVD1 {
pub const offset: u32 = 12;
pub const mask: u32 = 0xfffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod PS_CTRL_SET {
pub use super::PS_CTRL::DECX;
pub use super::PS_CTRL::DECY;
pub use super::PS_CTRL::FORMAT;
pub use super::PS_CTRL::RSVD0;
pub use super::PS_CTRL::RSVD1;
pub use super::PS_CTRL::WB_SWAP;
}
pub mod PS_CTRL_CLR {
pub use super::PS_CTRL::DECX;
pub use super::PS_CTRL::DECY;
pub use super::PS_CTRL::FORMAT;
pub use super::PS_CTRL::RSVD0;
pub use super::PS_CTRL::RSVD1;
pub use super::PS_CTRL::WB_SWAP;
}
pub mod PS_CTRL_TOG {
pub use super::PS_CTRL::DECX;
pub use super::PS_CTRL::DECY;
pub use super::PS_CTRL::FORMAT;
pub use super::PS_CTRL::RSVD0;
pub use super::PS_CTRL::RSVD1;
pub use super::PS_CTRL::WB_SWAP;
}
pub mod PS_BUF {
pub use super::OUT_BUF::ADDR;
}
pub mod PS_UBUF {
pub use super::OUT_BUF::ADDR;
}
pub mod PS_VBUF {
pub use super::OUT_BUF::ADDR;
}
pub mod PS_PITCH {
pub use super::OUT_PITCH::PITCH;
pub use super::OUT_PITCH::RSVD;
}
pub mod PS_BACKGROUND {
pub mod COLOR {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod PS_SCALE {
pub mod XSCALE {
pub const offset: u32 = 0;
pub const mask: u32 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD1 {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod YSCALE {
pub const offset: u32 = 16;
pub const mask: u32 = 0x7fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD2 {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod PS_OFFSET {
pub mod XOFFSET {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD1 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod YOFFSET {
pub const offset: u32 = 16;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD2 {
pub const offset: u32 = 28;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod PS_CLRKEYLOW {
pub mod PIXEL {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD1 {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod PS_CLRKEYHIGH {
pub use super::PS_CLRKEYLOW::PIXEL;
pub use super::PS_CLRKEYLOW::RSVD1;
}
pub mod AS_CTRL {
pub mod RSVD0 {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ALPHA_CTRL {
pub const offset: u32 = 1;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Embedded: u32 = 0b00;
pub const Override: u32 = 0b01;
pub const Multiply: u32 = 0b10;
pub const ROPs: u32 = 0b11;
}
}
pub mod ENABLE_COLORKEY {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FORMAT {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const ARGB8888: u32 = 0b0000;
pub const RGB888: u32 = 0b0100;
pub const ARGB1555: u32 = 0b1000;
pub const ARGB4444: u32 = 0b1001;
pub const RGB555: u32 = 0b1100;
pub const RGB444: u32 = 0b1101;
pub const RGB565: u32 = 0b1110;
}
}
pub mod ALPHA {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod ROP {
pub const offset: u32 = 16;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const MASKAS: u32 = 0b0000;
pub const MASKNOTAS: u32 = 0b0001;
pub const MASKASNOT: u32 = 0b0010;
pub const MERGEAS: u32 = 0b0011;
pub const MERGENOTAS: u32 = 0b0100;
pub const MERGEASNOT: u32 = 0b0101;
pub const NOTCOPYAS: u32 = 0b0110;
pub const NOT: u32 = 0b0111;
pub const NOTMASKAS: u32 = 0b1000;
pub const NOTMERGEAS: u32 = 0b1001;
pub const XORAS: u32 = 0b1010;
pub const NOTXORAS: u32 = 0b1011;
}
}
pub mod ALPHA_INVERT {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD1 {
pub const offset: u32 = 21;
pub const mask: u32 = 0x7ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod AS_BUF {
pub use super::OUT_BUF::ADDR;
}
pub mod AS_PITCH {
pub use super::OUT_PITCH::PITCH;
pub use super::OUT_PITCH::RSVD;
}
pub mod AS_CLRKEYLOW {
pub use super::PS_CLRKEYLOW::PIXEL;
pub use super::PS_CLRKEYLOW::RSVD1;
}
pub mod AS_CLRKEYHIGH {
pub use super::PS_CLRKEYLOW::PIXEL;
pub use super::PS_CLRKEYLOW::RSVD1;
}
pub mod CSC1_COEF0 {
pub mod Y_OFFSET {
pub const offset: u32 = 0;
pub const mask: u32 = 0x1ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod UV_OFFSET {
pub const offset: u32 = 9;
pub const mask: u32 = 0x1ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod C0 {
pub const offset: u32 = 18;
pub const mask: u32 = 0x7ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD1 {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BYPASS {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod YCBCR_MODE {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSC1_COEF1 {
pub mod C4 {
pub const offset: u32 = 0;
pub const mask: u32 = 0x7ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD0 {
pub const offset: u32 = 11;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod C1 {
pub const offset: u32 = 16;
pub const mask: u32 = 0x7ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD1 {
pub const offset: u32 = 27;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CSC1_COEF2 {
pub mod C3 {
pub const offset: u32 = 0;
pub const mask: u32 = 0x7ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD0 {
pub const offset: u32 = 11;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod C2 {
pub const offset: u32 = 16;
pub const mask: u32 = 0x7ff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD1 {
pub const offset: u32 = 27;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod POWER {
pub mod ROT_MEM_LP_STATE {
pub const offset: u32 = 9;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const NONE: u32 = 0b000;
pub const LS: u32 = 0b001;
pub const DS: u32 = 0b010;
pub const SD: u32 = 0b100;
}
}
pub mod CTRL {
pub const offset: u32 = 12;
pub const mask: u32 = 0xfffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod NEXT {
pub mod ENABLED {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RSVD {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod POINTER {
pub const offset: u32 = 2;
pub const mask: u32 = 0x3fffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod PORTER_DUFF_CTRL {
pub mod POTER_DUFF_ENABLE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod S0_S1_FACTOR_MODE {
pub const offset: u32 = 1;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod S0_GLOBAL_ALPHA_MODE {
pub const offset: u32 = 3;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod S0_ALPHA_MODE {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod S0_COLOR_MODE {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod S1_S0_FACTOR_MODE {
pub const offset: u32 = 8;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod S1_GLOBAL_ALPHA_MODE {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod S1_ALPHA_MODE {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod S1_COLOR_MODE {
pub const offset: u32 = 13;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod S0_GLOBAL_ALPHA {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod S1_GLOBAL_ALPHA {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
#[repr(C)]
pub struct RegisterBlock {
pub CTRL: RWRegister<u32>,
pub CTRL_SET: RWRegister<u32>,
pub CTRL_CLR: RWRegister<u32>,
pub CTRL_TOG: RWRegister<u32>,
pub STAT: RWRegister<u32>,
pub STAT_SET: RWRegister<u32>,
pub STAT_CLR: RWRegister<u32>,
pub STAT_TOG: RWRegister<u32>,
pub OUT_CTRL: RWRegister<u32>,
pub OUT_CTRL_SET: RWRegister<u32>,
pub OUT_CTRL_CLR: RWRegister<u32>,
pub OUT_CTRL_TOG: RWRegister<u32>,
pub OUT_BUF: RWRegister<u32>,
_reserved1: [u32; 3],
pub OUT_BUF2: RWRegister<u32>,
_reserved2: [u32; 3],
pub OUT_PITCH: RWRegister<u32>,
_reserved3: [u32; 3],
pub OUT_LRC: RWRegister<u32>,
_reserved4: [u32; 3],
pub OUT_PS_ULC: RWRegister<u32>,
_reserved5: [u32; 3],
pub OUT_PS_LRC: RWRegister<u32>,
_reserved6: [u32; 3],
pub OUT_AS_ULC: RWRegister<u32>,
_reserved7: [u32; 3],
pub OUT_AS_LRC: RWRegister<u32>,
_reserved8: [u32; 3],
pub PS_CTRL: RWRegister<u32>,
pub PS_CTRL_SET: RWRegister<u32>,
pub PS_CTRL_CLR: RWRegister<u32>,
pub PS_CTRL_TOG: RWRegister<u32>,
pub PS_BUF: RWRegister<u32>,
_reserved9: [u32; 3],
pub PS_UBUF: RWRegister<u32>,
_reserved10: [u32; 3],
pub PS_VBUF: RWRegister<u32>,
_reserved11: [u32; 3],
pub PS_PITCH: RWRegister<u32>,
_reserved12: [u32; 3],
pub PS_BACKGROUND: RWRegister<u32>,
_reserved13: [u32; 3],
pub PS_SCALE: RWRegister<u32>,
_reserved14: [u32; 3],
pub PS_OFFSET: RWRegister<u32>,
_reserved15: [u32; 3],
pub PS_CLRKEYLOW: RWRegister<u32>,
_reserved16: [u32; 3],
pub PS_CLRKEYHIGH: RWRegister<u32>,
_reserved17: [u32; 3],
pub AS_CTRL: RWRegister<u32>,
_reserved18: [u32; 3],
pub AS_BUF: RWRegister<u32>,
_reserved19: [u32; 3],
pub AS_PITCH: RWRegister<u32>,
_reserved20: [u32; 3],
pub AS_CLRKEYLOW: RWRegister<u32>,
_reserved21: [u32; 3],
pub AS_CLRKEYHIGH: RWRegister<u32>,
_reserved22: [u32; 3],
pub CSC1_COEF0: RWRegister<u32>,
_reserved23: [u32; 3],
pub CSC1_COEF1: RWRegister<u32>,
_reserved24: [u32; 3],
pub CSC1_COEF2: RWRegister<u32>,
_reserved25: [u32; 87],
pub POWER: RWRegister<u32>,
_reserved26: [u32; 55],
pub NEXT: RWRegister<u32>,
_reserved27: [u32; 15],
pub PORTER_DUFF_CTRL: RWRegister<u32>,
}
pub struct ResetValues {
pub CTRL: u32,
pub CTRL_SET: u32,
pub CTRL_CLR: u32,
pub CTRL_TOG: u32,
pub STAT: u32,
pub STAT_SET: u32,
pub STAT_CLR: u32,
pub STAT_TOG: u32,
pub OUT_CTRL: u32,
pub OUT_CTRL_SET: u32,
pub OUT_CTRL_CLR: u32,
pub OUT_CTRL_TOG: u32,
pub OUT_BUF: u32,
pub OUT_BUF2: u32,
pub OUT_PITCH: u32,
pub OUT_LRC: u32,
pub OUT_PS_ULC: u32,
pub OUT_PS_LRC: u32,
pub OUT_AS_ULC: u32,
pub OUT_AS_LRC: u32,
pub PS_CTRL: u32,
pub PS_CTRL_SET: u32,
pub PS_CTRL_CLR: u32,
pub PS_CTRL_TOG: u32,
pub PS_BUF: u32,
pub PS_UBUF: u32,
pub PS_VBUF: u32,
pub PS_PITCH: u32,
pub PS_BACKGROUND: u32,
pub PS_SCALE: u32,
pub PS_OFFSET: u32,
pub PS_CLRKEYLOW: u32,
pub PS_CLRKEYHIGH: u32,
pub AS_CTRL: u32,
pub AS_BUF: u32,
pub AS_PITCH: u32,
pub AS_CLRKEYLOW: u32,
pub AS_CLRKEYHIGH: u32,
pub CSC1_COEF0: u32,
pub CSC1_COEF1: u32,
pub CSC1_COEF2: u32,
pub POWER: u32,
pub NEXT: u32,
pub PORTER_DUFF_CTRL: 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 PXP {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x402b4000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
CTRL: 0xC0000000,
CTRL_SET: 0xC0000000,
CTRL_CLR: 0xC0000000,
CTRL_TOG: 0xC0000000,
STAT: 0x00000000,
STAT_SET: 0x00000000,
STAT_CLR: 0x00000000,
STAT_TOG: 0x00000000,
OUT_CTRL: 0x00000000,
OUT_CTRL_SET: 0x00000000,
OUT_CTRL_CLR: 0x00000000,
OUT_CTRL_TOG: 0x00000000,
OUT_BUF: 0x00000000,
OUT_BUF2: 0x00000000,
OUT_PITCH: 0x00000000,
OUT_LRC: 0x00000000,
OUT_PS_ULC: 0x00000000,
OUT_PS_LRC: 0x00000000,
OUT_AS_ULC: 0x00000000,
OUT_AS_LRC: 0x00000000,
PS_CTRL: 0x00000000,
PS_CTRL_SET: 0x00000000,
PS_CTRL_CLR: 0x00000000,
PS_CTRL_TOG: 0x00000000,
PS_BUF: 0x00000000,
PS_UBUF: 0x00000000,
PS_VBUF: 0x00000000,
PS_PITCH: 0x00000000,
PS_BACKGROUND: 0x00000000,
PS_SCALE: 0x10001000,
PS_OFFSET: 0x00000000,
PS_CLRKEYLOW: 0x00FFFFFF,
PS_CLRKEYHIGH: 0x00000000,
AS_CTRL: 0x00000000,
AS_BUF: 0x00000000,
AS_PITCH: 0x00000000,
AS_CLRKEYLOW: 0x00FFFFFF,
AS_CLRKEYHIGH: 0x00000000,
CSC1_COEF0: 0x04000000,
CSC1_COEF1: 0x01230208,
CSC1_COEF2: 0x079B076C,
POWER: 0x00000000,
NEXT: 0x00000000,
PORTER_DUFF_CTRL: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut PXP_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if PXP_TAKEN {
None
} else {
PXP_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if PXP_TAKEN && inst.addr == INSTANCE.addr {
PXP_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
PXP_TAKEN = true;
INSTANCE
}
}
pub const PXP: *const RegisterBlock = 0x402b4000 as *const _;