diff --git a/openemc-firmware/src/supply/max14636.rs b/openemc-firmware/src/supply/max14636.rs index b5d5704..d9f54f3 100644 --- a/openemc-firmware/src/supply/max14636.rs +++ b/openemc-firmware/src/supply/max14636.rs @@ -18,7 +18,6 @@ //! MAX14636 USB charger detector driver. -use core::sync::atomic::{AtomicBool, Ordering}; use stm32f1xx_hal::gpio::{ErasedPin, Floating, Input, Output, PullUp}; use super::PowerSupply; @@ -29,7 +28,6 @@ pub struct Max14636 { sw_open: ErasedPin>, chg_al_n: ErasedPin>, chg_det: ErasedPin>, - unknown_state_warned: AtomicBool, } impl Max14636 { @@ -39,36 +37,14 @@ impl Max14636 { chg_det: ErasedPin>, ) -> Self { good_bat.set_high(); - Self { _good_bat: good_bat, sw_open, chg_al_n, chg_det, unknown_state_warned: false.into() } + Self { _good_bat: good_bat, sw_open, chg_al_n, chg_det } } /// Power supply report. pub fn report(&self) -> PowerSupply { - let sw_open_low = self.sw_open.is_low(); - let chg_al_n_low = self.chg_al_n.is_low(); - let chg_det_low = self.chg_det.is_low(); - defmt::trace!( - "MAX14636 state: sw_open={:?} chg_al_n={:?} chg_det={:?}", - !sw_open_low, - !chg_al_n_low, - !chg_det_low - ); - - match (sw_open_low, chg_al_n_low, chg_det_low) { + match (self.sw_open.is_low(), self.chg_al_n.is_low(), self.chg_det.is_low()) { (false, true, false) => PowerSupply::UsbDcp, (true, true, false) => PowerSupply::UsbCdp, - (_, _, false) => { - if !self.unknown_state_warned.load(Ordering::Relaxed) { - defmt::warn!( - "MAX14636 provided invalid state: sw_open={:?} chg_al_n={:?} chg_det={:?}", - !sw_open_low, - !chg_al_n_low, - !chg_det_low - ); - self.unknown_state_warned.store(true, Ordering::Relaxed); - } - PowerSupply::UsbCdp - } (true, true, true) => PowerSupply::UsbSdp, (false, true, true) => PowerSupply::Ps2, (false, false, true) => PowerSupply::Disconnected,