#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister, WORegister};
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod LTDC_IDR {
pub mod REV {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MINVER {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod MAJVER {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_LCR {
pub mod LNBR {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_SSCR {
pub mod VSH {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HSW {
pub const offset: u32 = 16;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_BPCR {
pub mod AVBP {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AHBP {
pub const offset: u32 = 16;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_AWCR {
pub mod AAH {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod AAW {
pub const offset: u32 = 16;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_TWCR {
pub mod TOTALH {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TOTALW {
pub const offset: u32 = 16;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_GCR {
pub mod LTDCEN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DBW {
pub const offset: u32 = 4;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DGW {
pub const offset: u32 = 8;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DRW {
pub const offset: u32 = 12;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DEN {
pub const offset: u32 = 16;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PCPOL {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DEPOL {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VSPOL {
pub const offset: u32 = 30;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HSPOL {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_GC1R {
pub mod WBCH {
pub const offset: u32 = 0;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WGCH {
pub const offset: u32 = 4;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WRCH {
pub const offset: u32 = 8;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod PRBEN {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DT {
pub const offset: u32 = 14;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GCT {
pub const offset: u32 = 17;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SHREN {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BCP {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BBEN {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod LNIP {
pub const offset: u32 = 24;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TP {
pub const offset: u32 = 25;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod IPP {
pub const offset: u32 = 26;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SPP {
pub const offset: u32 = 27;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DWP {
pub const offset: u32 = 28;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod STREN {
pub const offset: u32 = 29;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BMEN {
pub const offset: u32 = 31;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_GC2R {
pub mod EDCEN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod STSAEN {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DVAEN {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DPAEN {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BW {
pub const offset: u32 = 4;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod EDCA {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_SRCR {
pub mod IMR {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VBR {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_BCCR {
pub mod BCBLUE {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BCGREEN {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BCRED {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_IER {
pub mod LIE {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FUIE {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TERRIE {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RRIE {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_ISR {
pub mod LIF {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod FUIF {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod TERRIF {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RRIF {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_ICR {
pub mod CLIF {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CFUIF {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CTERRIF {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CRRIF {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_LIPCR {
pub mod LIPOS {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_CPSR {
pub mod CYPOS {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CXPOS {
pub const offset: u32 = 16;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_CDSR {
pub mod VDES {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HDES {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod VSYNCS {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod HSYNCS {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1CR {
pub mod LEN {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod COLKEN {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CLUTEN {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1WHPCR {
pub mod WHSTPOS {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WHSPPOS {
pub const offset: u32 = 16;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1WVPCR {
pub mod WVSTPOS {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod WVSPPOS {
pub const offset: u32 = 16;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1CKCR {
pub mod CKBLUE {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CKGREEN {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CKRED {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1PFCR {
pub mod PF {
pub const offset: u32 = 0;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1CACR {
pub mod CONSTA {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1DCCR {
pub mod DCBLUE {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DCGREEN {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DCRED {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod DCALPHA {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1BFCR {
pub mod BF2 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod BF1 {
pub const offset: u32 = 8;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1CFBAR {
pub mod CFBADD {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffffffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1CFBLR {
pub mod CFBLL {
pub const offset: u32 = 0;
pub const mask: u32 = 0x3fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CFBP {
pub const offset: u32 = 16;
pub const mask: u32 = 0x3fff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1CFBLNR {
pub mod CFBLNBR {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L1CLUTWR {
pub mod BLUE {
pub const offset: u32 = 0;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod GREEN {
pub const offset: u32 = 8;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod RED {
pub const offset: u32 = 16;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod CLUTADD {
pub const offset: u32 = 24;
pub const mask: u32 = 0xff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTDC_L2CR {
pub use super::LTDC_L1CR::CLUTEN;
pub use super::LTDC_L1CR::COLKEN;
pub use super::LTDC_L1CR::LEN;
}
pub mod LTDC_L2WHPCR {
pub use super::LTDC_L1WHPCR::WHSPPOS;
pub use super::LTDC_L1WHPCR::WHSTPOS;
}
pub mod LTDC_L2WVPCR {
pub use super::LTDC_L1WVPCR::WVSPPOS;
pub use super::LTDC_L1WVPCR::WVSTPOS;
}
pub mod LTDC_L2CKCR {
pub use super::LTDC_L1CKCR::CKBLUE;
pub use super::LTDC_L1CKCR::CKGREEN;
pub use super::LTDC_L1CKCR::CKRED;
}
pub mod LTDC_L2PFCR {
pub use super::LTDC_L1PFCR::PF;
}
pub mod LTDC_L2CACR {
pub use super::LTDC_L1CACR::CONSTA;
}
pub mod LTDC_L2DCCR {
pub use super::LTDC_L1DCCR::DCALPHA;
pub use super::LTDC_L1DCCR::DCBLUE;
pub use super::LTDC_L1DCCR::DCGREEN;
pub use super::LTDC_L1DCCR::DCRED;
}
pub mod LTDC_L2BFCR {
pub use super::LTDC_L1BFCR::BF1;
pub use super::LTDC_L1BFCR::BF2;
}
pub mod LTDC_L2CFBAR {
pub use super::LTDC_L1CFBAR::CFBADD;
}
pub mod LTDC_L2CFBLR {
pub use super::LTDC_L1CFBLR::CFBLL;
pub use super::LTDC_L1CFBLR::CFBP;
}
pub mod LTDC_L2CFBLNR {
pub use super::LTDC_L1CFBLNR::CFBLNBR;
}
pub mod LTDC_L2CLUTWR {
pub use super::LTDC_L1CLUTWR::BLUE;
pub use super::LTDC_L1CLUTWR::CLUTADD;
pub use super::LTDC_L1CLUTWR::GREEN;
pub use super::LTDC_L1CLUTWR::RED;
}
#[repr(C)]
pub struct RegisterBlock {
pub LTDC_IDR: RORegister<u32>,
pub LTDC_LCR: RORegister<u32>,
pub LTDC_SSCR: RWRegister<u32>,
pub LTDC_BPCR: RWRegister<u32>,
pub LTDC_AWCR: RWRegister<u32>,
pub LTDC_TWCR: RWRegister<u32>,
pub LTDC_GCR: RWRegister<u32>,
pub LTDC_GC1R: RORegister<u32>,
pub LTDC_GC2R: RORegister<u32>,
pub LTDC_SRCR: RWRegister<u32>,
_reserved1: [u32; 1],
pub LTDC_BCCR: RWRegister<u32>,
_reserved2: [u32; 1],
pub LTDC_IER: RWRegister<u32>,
pub LTDC_ISR: RORegister<u32>,
pub LTDC_ICR: WORegister<u32>,
pub LTDC_LIPCR: RWRegister<u32>,
pub LTDC_CPSR: RORegister<u32>,
pub LTDC_CDSR: RORegister<u32>,
_reserved3: [u32; 14],
pub LTDC_L1CR: RWRegister<u32>,
pub LTDC_L1WHPCR: RWRegister<u32>,
pub LTDC_L1WVPCR: RWRegister<u32>,
pub LTDC_L1CKCR: RWRegister<u32>,
pub LTDC_L1PFCR: RWRegister<u32>,
pub LTDC_L1CACR: RWRegister<u32>,
pub LTDC_L1DCCR: RWRegister<u32>,
pub LTDC_L1BFCR: RWRegister<u32>,
_reserved4: [u32; 2],
pub LTDC_L1CFBAR: RWRegister<u32>,
pub LTDC_L1CFBLR: RWRegister<u32>,
pub LTDC_L1CFBLNR: RWRegister<u32>,
_reserved5: [u32; 3],
pub LTDC_L1CLUTWR: WORegister<u32>,
_reserved6: [u32; 15],
pub LTDC_L2CR: RWRegister<u32>,
pub LTDC_L2WHPCR: RWRegister<u32>,
pub LTDC_L2WVPCR: RWRegister<u32>,
pub LTDC_L2CKCR: RWRegister<u32>,
pub LTDC_L2PFCR: RWRegister<u32>,
pub LTDC_L2CACR: RWRegister<u32>,
pub LTDC_L2DCCR: RWRegister<u32>,
pub LTDC_L2BFCR: RWRegister<u32>,
_reserved7: [u32; 2],
pub LTDC_L2CFBAR: RWRegister<u32>,
pub LTDC_L2CFBLR: RWRegister<u32>,
pub LTDC_L2CFBLNR: RWRegister<u32>,
_reserved8: [u32; 3],
pub LTDC_L2CLUTWR: WORegister<u32>,
}
pub struct ResetValues {
pub LTDC_IDR: u32,
pub LTDC_LCR: u32,
pub LTDC_SSCR: u32,
pub LTDC_BPCR: u32,
pub LTDC_AWCR: u32,
pub LTDC_TWCR: u32,
pub LTDC_GCR: u32,
pub LTDC_GC1R: u32,
pub LTDC_GC2R: u32,
pub LTDC_SRCR: u32,
pub LTDC_BCCR: u32,
pub LTDC_IER: u32,
pub LTDC_ISR: u32,
pub LTDC_ICR: u32,
pub LTDC_LIPCR: u32,
pub LTDC_CPSR: u32,
pub LTDC_CDSR: u32,
pub LTDC_L1CR: u32,
pub LTDC_L1WHPCR: u32,
pub LTDC_L1WVPCR: u32,
pub LTDC_L1CKCR: u32,
pub LTDC_L1PFCR: u32,
pub LTDC_L1CACR: u32,
pub LTDC_L1DCCR: u32,
pub LTDC_L1BFCR: u32,
pub LTDC_L1CFBAR: u32,
pub LTDC_L1CFBLR: u32,
pub LTDC_L1CFBLNR: u32,
pub LTDC_L1CLUTWR: u32,
pub LTDC_L2CR: u32,
pub LTDC_L2WHPCR: u32,
pub LTDC_L2WVPCR: u32,
pub LTDC_L2CKCR: u32,
pub LTDC_L2PFCR: u32,
pub LTDC_L2CACR: u32,
pub LTDC_L2DCCR: u32,
pub LTDC_L2BFCR: u32,
pub LTDC_L2CFBAR: u32,
pub LTDC_L2CFBLR: u32,
pub LTDC_L2CFBLNR: u32,
pub LTDC_L2CLUTWR: 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 = "rtic")]
unsafe impl Send for Instance {}
pub mod LTDC {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x5a001000,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
LTDC_IDR: 0x00010300,
LTDC_LCR: 0x00000002,
LTDC_SSCR: 0x00000000,
LTDC_BPCR: 0x00000000,
LTDC_AWCR: 0x00000000,
LTDC_TWCR: 0x00000000,
LTDC_GCR: 0x00002220,
LTDC_GC1R: 0x6BE2D888,
LTDC_GC2R: 0x00000030,
LTDC_SRCR: 0x00000000,
LTDC_BCCR: 0x00000000,
LTDC_IER: 0x00000000,
LTDC_ISR: 0x00000000,
LTDC_ICR: 0x00000000,
LTDC_LIPCR: 0x00000000,
LTDC_CPSR: 0x00000000,
LTDC_CDSR: 0x0000000F,
LTDC_L1CR: 0x00000000,
LTDC_L1WHPCR: 0x00000000,
LTDC_L1WVPCR: 0x00000000,
LTDC_L1CKCR: 0x00000000,
LTDC_L1PFCR: 0x00000000,
LTDC_L1CACR: 0x000000FF,
LTDC_L1DCCR: 0x00000000,
LTDC_L1BFCR: 0x00000607,
LTDC_L1CFBAR: 0x00000000,
LTDC_L1CFBLR: 0x00000000,
LTDC_L1CFBLNR: 0x00000000,
LTDC_L1CLUTWR: 0x00000000,
LTDC_L2CR: 0x00000000,
LTDC_L2WHPCR: 0x00000000,
LTDC_L2WVPCR: 0x00000000,
LTDC_L2CKCR: 0x00000000,
LTDC_L2PFCR: 0x00000000,
LTDC_L2CACR: 0x000000FF,
LTDC_L2DCCR: 0x00000000,
LTDC_L2BFCR: 0x00000607,
LTDC_L2CFBAR: 0x00000000,
LTDC_L2CFBLR: 0x00000000,
LTDC_L2CFBLNR: 0x00000000,
LTDC_L2CLUTWR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut LTDC_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if LTDC_TAKEN {
None
} else {
LTDC_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if LTDC_TAKEN && inst.addr == INSTANCE.addr {
LTDC_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
LTDC_TAKEN = true;
INSTANCE
}
}
pub const LTDC: *const RegisterBlock = 0x5a001000 as *const _;