use super::GenericPeripheralGuard;
use crate::{peripherals::LCD_CAM, system};
pub mod dpi;
pub mod i8080;
pub struct Lcd<'d, Dm: crate::DriverMode> {
pub(crate) lcd_cam: LCD_CAM<'d>,
pub(crate) _mode: core::marker::PhantomData<Dm>,
pub(super) _guard: GenericPeripheralGuard<{ system::Peripheral::LcdCam as u8 }>,
}
#[derive(Debug, Clone, Copy, PartialEq, Default)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct ClockMode {
pub polarity: Polarity,
pub phase: Phase,
}
#[derive(Debug, Clone, Copy, PartialEq, Default)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Polarity {
#[default]
IdleLow,
IdleHigh,
}
#[derive(Debug, Clone, Copy, PartialEq, Default)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Phase {
#[default]
ShiftLow,
ShiftHigh,
}
#[derive(Debug, Clone, Copy, PartialEq, Default)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum DelayMode {
#[default]
None = 0,
RaisingEdge = 1,
FallingEdge = 2,
}