pub type R = crate::R<BGPFCCRrs>;
pub type W = crate::W<BGPFCCRrs>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum CM {
Argb8888 = 0,
Rgb888 = 1,
Rgb565 = 2,
Argb1555 = 3,
Argb4444 = 4,
L8 = 5,
Al44 = 6,
Al88 = 7,
L4 = 8,
A8 = 9,
A4 = 10,
}
impl From<CM> for u8 {
#[inline(always)]
fn from(variant: CM) -> Self {
variant as _
}
}
impl crate::FieldSpec for CM {
type Ux = u8;
}
impl crate::IsEnum for CM {}
pub type CM_R = crate::FieldReader<CM>;
impl CM_R {
#[inline(always)]
pub const fn variant(&self) -> Option<CM> {
match self.bits {
0 => Some(CM::Argb8888),
1 => Some(CM::Rgb888),
2 => Some(CM::Rgb565),
3 => Some(CM::Argb1555),
4 => Some(CM::Argb4444),
5 => Some(CM::L8),
6 => Some(CM::Al44),
7 => Some(CM::Al88),
8 => Some(CM::L4),
9 => Some(CM::A8),
10 => Some(CM::A4),
_ => None,
}
}
#[inline(always)]
pub fn is_argb8888(&self) -> bool {
*self == CM::Argb8888
}
#[inline(always)]
pub fn is_rgb888(&self) -> bool {
*self == CM::Rgb888
}
#[inline(always)]
pub fn is_rgb565(&self) -> bool {
*self == CM::Rgb565
}
#[inline(always)]
pub fn is_argb1555(&self) -> bool {
*self == CM::Argb1555
}
#[inline(always)]
pub fn is_argb4444(&self) -> bool {
*self == CM::Argb4444
}
#[inline(always)]
pub fn is_l8(&self) -> bool {
*self == CM::L8
}
#[inline(always)]
pub fn is_al44(&self) -> bool {
*self == CM::Al44
}
#[inline(always)]
pub fn is_al88(&self) -> bool {
*self == CM::Al88
}
#[inline(always)]
pub fn is_l4(&self) -> bool {
*self == CM::L4
}
#[inline(always)]
pub fn is_a8(&self) -> bool {
*self == CM::A8
}
#[inline(always)]
pub fn is_a4(&self) -> bool {
*self == CM::A4
}
}
pub type CM_W<'a, REG> = crate::FieldWriter<'a, REG, 4, CM>;
impl<'a, REG> CM_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[inline(always)]
pub fn argb8888(self) -> &'a mut crate::W<REG> {
self.variant(CM::Argb8888)
}
#[inline(always)]
pub fn rgb888(self) -> &'a mut crate::W<REG> {
self.variant(CM::Rgb888)
}
#[inline(always)]
pub fn rgb565(self) -> &'a mut crate::W<REG> {
self.variant(CM::Rgb565)
}
#[inline(always)]
pub fn argb1555(self) -> &'a mut crate::W<REG> {
self.variant(CM::Argb1555)
}
#[inline(always)]
pub fn argb4444(self) -> &'a mut crate::W<REG> {
self.variant(CM::Argb4444)
}
#[inline(always)]
pub fn l8(self) -> &'a mut crate::W<REG> {
self.variant(CM::L8)
}
#[inline(always)]
pub fn al44(self) -> &'a mut crate::W<REG> {
self.variant(CM::Al44)
}
#[inline(always)]
pub fn al88(self) -> &'a mut crate::W<REG> {
self.variant(CM::Al88)
}
#[inline(always)]
pub fn l4(self) -> &'a mut crate::W<REG> {
self.variant(CM::L4)
}
#[inline(always)]
pub fn a8(self) -> &'a mut crate::W<REG> {
self.variant(CM::A8)
}
#[inline(always)]
pub fn a4(self) -> &'a mut crate::W<REG> {
self.variant(CM::A4)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum CCM {
Argb8888 = 0,
Rgb888 = 1,
}
impl From<CCM> for bool {
#[inline(always)]
fn from(variant: CCM) -> Self {
variant as u8 != 0
}
}
pub type CCM_R = crate::BitReader<CCM>;
impl CCM_R {
#[inline(always)]
pub const fn variant(&self) -> CCM {
match self.bits {
false => CCM::Argb8888,
true => CCM::Rgb888,
}
}
#[inline(always)]
pub fn is_argb8888(&self) -> bool {
*self == CCM::Argb8888
}
#[inline(always)]
pub fn is_rgb888(&self) -> bool {
*self == CCM::Rgb888
}
}
pub type CCM_W<'a, REG> = crate::BitWriter<'a, REG, CCM>;
impl<'a, REG> CCM_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn argb8888(self) -> &'a mut crate::W<REG> {
self.variant(CCM::Argb8888)
}
#[inline(always)]
pub fn rgb888(self) -> &'a mut crate::W<REG> {
self.variant(CCM::Rgb888)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum START {
Start = 1,
}
impl From<START> for bool {
#[inline(always)]
fn from(variant: START) -> Self {
variant as u8 != 0
}
}
pub type START_R = crate::BitReader<START>;
impl START_R {
#[inline(always)]
pub const fn variant(&self) -> Option<START> {
match self.bits {
true => Some(START::Start),
_ => None,
}
}
#[inline(always)]
pub fn is_start(&self) -> bool {
*self == START::Start
}
}
pub type START_W<'a, REG> = crate::BitWriter<'a, REG, START>;
impl<'a, REG> START_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn start(self) -> &'a mut crate::W<REG> {
self.variant(START::Start)
}
}
pub type CS_R = crate::FieldReader;
pub type CS_W<'a, REG> = crate::FieldWriter<'a, REG, 8, u8, crate::Safe>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum AM {
NoModify = 0,
Replace = 1,
Multiply = 2,
}
impl From<AM> for u8 {
#[inline(always)]
fn from(variant: AM) -> Self {
variant as _
}
}
impl crate::FieldSpec for AM {
type Ux = u8;
}
impl crate::IsEnum for AM {}
pub type AM_R = crate::FieldReader<AM>;
impl AM_R {
#[inline(always)]
pub const fn variant(&self) -> Option<AM> {
match self.bits {
0 => Some(AM::NoModify),
1 => Some(AM::Replace),
2 => Some(AM::Multiply),
_ => None,
}
}
#[inline(always)]
pub fn is_no_modify(&self) -> bool {
*self == AM::NoModify
}
#[inline(always)]
pub fn is_replace(&self) -> bool {
*self == AM::Replace
}
#[inline(always)]
pub fn is_multiply(&self) -> bool {
*self == AM::Multiply
}
}
pub type AM_W<'a, REG> = crate::FieldWriter<'a, REG, 2, AM>;
impl<'a, REG> AM_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
REG::Ux: From<u8>,
{
#[inline(always)]
pub fn no_modify(self) -> &'a mut crate::W<REG> {
self.variant(AM::NoModify)
}
#[inline(always)]
pub fn replace(self) -> &'a mut crate::W<REG> {
self.variant(AM::Replace)
}
#[inline(always)]
pub fn multiply(self) -> &'a mut crate::W<REG> {
self.variant(AM::Multiply)
}
}
pub type ALPHA_R = crate::FieldReader;
pub type ALPHA_W<'a, REG> = crate::FieldWriter<'a, REG, 8, u8, crate::Safe>;
impl R {
#[inline(always)]
pub fn cm(&self) -> CM_R {
CM_R::new((self.bits & 0x0f) as u8)
}
#[inline(always)]
pub fn ccm(&self) -> CCM_R {
CCM_R::new(((self.bits >> 4) & 1) != 0)
}
#[inline(always)]
pub fn start(&self) -> START_R {
START_R::new(((self.bits >> 5) & 1) != 0)
}
#[inline(always)]
pub fn cs(&self) -> CS_R {
CS_R::new(((self.bits >> 8) & 0xff) as u8)
}
#[inline(always)]
pub fn am(&self) -> AM_R {
AM_R::new(((self.bits >> 16) & 3) as u8)
}
#[inline(always)]
pub fn alpha(&self) -> ALPHA_R {
ALPHA_R::new(((self.bits >> 24) & 0xff) as u8)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("BGPFCCR")
.field("alpha", &self.alpha())
.field("am", &self.am())
.field("cs", &self.cs())
.field("start", &self.start())
.field("ccm", &self.ccm())
.field("cm", &self.cm())
.finish()
}
}
impl W {
#[inline(always)]
pub fn cm(&mut self) -> CM_W<BGPFCCRrs> {
CM_W::new(self, 0)
}
#[inline(always)]
pub fn ccm(&mut self) -> CCM_W<BGPFCCRrs> {
CCM_W::new(self, 4)
}
#[inline(always)]
pub fn start(&mut self) -> START_W<BGPFCCRrs> {
START_W::new(self, 5)
}
#[inline(always)]
pub fn cs(&mut self) -> CS_W<BGPFCCRrs> {
CS_W::new(self, 8)
}
#[inline(always)]
pub fn am(&mut self) -> AM_W<BGPFCCRrs> {
AM_W::new(self, 16)
}
#[inline(always)]
pub fn alpha(&mut self) -> ALPHA_W<BGPFCCRrs> {
ALPHA_W::new(self, 24)
}
}
pub struct BGPFCCRrs;
impl crate::RegisterSpec for BGPFCCRrs {
type Ux = u32;
}
impl crate::Readable for BGPFCCRrs {}
impl crate::Writable for BGPFCCRrs {
type Safety = crate::Unsafe;
}
impl crate::Resettable for BGPFCCRrs {}