diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84357e1e..e35a2036 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,13 +50,14 @@ jobs: command: test args: --lib --target x86_64-unknown-linux-gnu --features rt,unproven,${{ matrix.mcu.id }}${{ matrix.mcu.additional-features }} - ci-r9: + ci-rx: runs-on: ubuntu-latest strategy: matrix: rust: - stable mcu: + - { id: stm32l4r5, additional-features: "" } - { id: stm32l4r9, additional-features: "" } - { id: stm32l4s9, additional-features: "" } diff --git a/Cargo.toml b/Cargo.toml index 692c72bf..ba526aea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ edition = "2018" [dependencies] cortex-m = "0.7" nb = "0.1.1" -stm32l4 = "0.14.0" +stm32l4 = "0.15.0" embedded-dma = "0.1" bxcan = ">=0.4, <0.7" fugit = "0.3.5" @@ -98,11 +98,11 @@ stm32l486 = [ "stm32l4/stm32l4x6" ] stm32l496 = [ "stm32l4/stm32l4x6" ] stm32l4a6 = [ "stm32l4/stm32l4x6" ] -# L4+ series PAC support?? +# L4+ #stm32l4p5 = [ "stm32l4/stm32l4x5" ] #stm32l4q5 = [ "stm32l4/stm32l4x5" ] -#stm32l4r5 = [ "stm32l4/stm32l4x5" ] -#stm32l4s5 = [ "stm32l4/stm32l4x5" ] +stm32l4r5 = [ "stm32l4/stm32l4r5" ] +stm32l4s5 = [ "stm32l4/stm32l4r5" ] # L4x7 #stm32l4r7 = [ "stm32l4/stm32l4x7" ] diff --git a/src/adc.rs b/src/adc.rs index 27785f0b..6a8b6972 100644 --- a/src/adc.rs +++ b/src/adc.rs @@ -916,8 +916,8 @@ adc_pins!( feature = "stm32l443", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -930,8 +930,8 @@ adc!(ADC2 => (adc2, ADC_COMMON)); feature = "stm32l443", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", diff --git a/src/dma.rs b/src/dma.rs index b91fd21e..15edb2cb 100644 --- a/src/dma.rs +++ b/src/dma.rs @@ -694,8 +694,8 @@ macro_rules! dma { #[cfg(not(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -1126,8 +1126,8 @@ macro_rules! dma { #[cfg(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", diff --git a/src/dmamux.rs b/src/dmamux.rs index 83bed1c2..d43ac053 100644 --- a/src/dmamux.rs +++ b/src/dmamux.rs @@ -11,8 +11,8 @@ use crate::dma::{dma1, dma2}; #[cfg(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -132,8 +132,8 @@ pub enum DmaInput { #[cfg(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -240,8 +240,8 @@ enum DMAREQ_ID_A { #[cfg(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -256,8 +256,8 @@ impl From<DMAREQ_ID_A> for u8 { #[cfg(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -372,8 +372,8 @@ impl TryFrom<DmaInput> for DMAREQ_ID_A { #[cfg(not(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -419,8 +419,8 @@ macro_rules! cselr { #[cfg(not(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -565,8 +565,8 @@ macro_rules! dmamux { #[cfg(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -586,8 +586,8 @@ macro_rules! dmamux { #[cfg(not(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", diff --git a/src/gpio.rs b/src/gpio.rs index 94a8427c..53ebf28a 100644 --- a/src/gpio.rs +++ b/src/gpio.rs @@ -727,8 +727,8 @@ gpio!(GPIOE, gpioe, PEx, 'E', 4, [ feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -762,8 +762,8 @@ gpio!(GPIOF, gpiof, PFx, 'F', 5, [ feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -801,7 +801,7 @@ gpio!(GPIOG, gpiog, PGx, 'G', 6, // feature = "stm32l4p5", // feature = "stm32l4q5", // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -846,7 +846,7 @@ impl<const P: char> Gpio<P> { // feature = "stm32l4p5", // feature = "stm32l4q5", // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -864,7 +864,7 @@ impl<const P: char> Gpio<P> { // feature = "stm32l4p5", // feature = "stm32l4q5", // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -882,7 +882,7 @@ impl<const P: char> Gpio<P> { // feature = "stm32l4p5", // feature = "stm32l4q5", // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", diff --git a/src/i2c.rs b/src/i2c.rs index 9fae79f6..7b2d7d0e 100644 --- a/src/i2c.rs +++ b/src/i2c.rs @@ -12,8 +12,8 @@ use crate::hal::blocking::i2c::{Read, Write, WriteRead}; feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -208,8 +208,8 @@ hal!(I2C3, i2c3); feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -613,8 +613,8 @@ mod stm32l4x6_pins { #[cfg(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", diff --git a/src/lib.rs b/src/lib.rs index e0788a66..96c63647 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -27,11 +27,10 @@ feature = "stm32l486", feature = "stm32l496", feature = "stm32l4a6", - // note L4+ PAC support is mostly missing so other than r9/s9 these features don't actually exist yet // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", // these have PAC support. Hal integration is very slim though @@ -46,6 +45,7 @@ This crate requires one of the following features enabled: stm32l433, stm32l443 stm32l475, stm32l476, stm32l486, stm32l496, stm32l4a6 + stm32l4r5, stm32l4s5 stm32l4r9, stm32l4s9 " ); @@ -110,6 +110,12 @@ pub use stm32l4::stm32l4x5 as pac; ))] pub use stm32l4::stm32l4x6 as pac; +#[cfg(any( + feature = "stm32l4r5", + feature = "stm32l4s5" +))] +pub use stm32l4::stm32l4r5 as pac; + #[cfg(any(feature = "stm32l4r9", feature = "stm32l4s9",))] pub use stm32l4::stm32l4r9 as pac; diff --git a/src/pwm.rs b/src/pwm.rs index 2c371bb0..e96c5c26 100644 --- a/src/pwm.rs +++ b/src/pwm.rs @@ -370,7 +370,7 @@ macro_rules! pwm_channels { #[inline(always)] fn get_duty(&self) -> Self::Duty { - unsafe { (*$TIMX::ptr()).$ccrX.read().$ccr().bits() } + unsafe { (*$TIMX::ptr()).$ccrX().read().$ccr().bits() } } #[inline(always)] @@ -380,7 +380,7 @@ macro_rules! pwm_channels { #[inline(always)] fn set_duty(&mut self, duty: Self::Duty) { - unsafe { (*$TIMX::ptr()).$ccrX.write(|w| w.$ccr().bits(duty)) } + unsafe { (*$TIMX::ptr()).$ccrX().write(|w| w.$ccr().bits(duty)) } } } )+ diff --git a/src/rcc/enable.rs b/src/rcc/enable.rs index 67b9ac9f..990a46e3 100644 --- a/src/rcc/enable.rs +++ b/src/rcc/enable.rs @@ -143,8 +143,8 @@ bus! { #[cfg(not(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -164,15 +164,15 @@ bus! { #[cfg(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", feature = "stm32l4s9", ))] bus! { - ADC => (AHB2, adcen, adcfssmen, adcrst), // 13 + ADC1 => (AHB2, adcen, adcfssmen, adcrst), // 13 FIREWALL => (APB2, fwen,,), // 7 LTCD => (APB2, ltdcen, ltdcsmen, ltdcrst), // 26 @@ -188,8 +188,8 @@ bus! { feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -235,8 +235,6 @@ bus! { feature = "stm32l431", feature = "stm32l451", feature = "stm32l471", - feature = "stm32l412", - feature = "stm32l422", feature = "stm32l432", feature = "stm32l442", feature = "stm32l452", @@ -245,20 +243,31 @@ bus! { feature = "stm32l443", feature = "stm32l475", ))] +bus! { + DAC => (APB1R1, dac1en, dac1smen, dac1rst), // 29 + + SDMMC => (APB2, sdmmcen, sdmmcsmen, sdmmcrst), // 10 +} + +#[cfg(any( + feature = "stm32l412", + feature = "stm32l422", +))] bus! { DAC1 => (APB1R1, dac1en, dac1smen, dac1rst), // 29 SDMMC => (APB2, sdmmcen, sdmmcsmen, sdmmcrst), // 10 } + // L4x1, L4x2, L4x5, or L4x6 #[cfg(not(any( feature = "stm32l433", feature = "stm32l443", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -323,8 +332,8 @@ bus! { feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -360,8 +369,8 @@ bus! { #[cfg(any( // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", diff --git a/src/rtc.rs b/src/rtc.rs index 944a0744..d06c6d38 100644 --- a/src/rtc.rs +++ b/src/rtc.rs @@ -271,7 +271,32 @@ impl Rtc { rtc_registers::clear_alarm_a_flag(rtc); while !rtc_registers::is_alarm_a_accessible(rtc) {} - rtc.alrmar.modify(|_, w| unsafe { + #[cfg(any( + feature = "stm32l431", + feature = "stm32l451", + feature = "stm32l471", + feature = "stm32l412", + feature = "stm32l422", + feature = "stm32l432", + feature = "stm32l442", + feature = "stm32l452", + feature = "stm32l462", + feature = "stm32l433", + feature = "stm32l443", + feature = "stm32l475", + feature = "stm32l476", + feature = "stm32l486", + feature = "stm32l496", + feature = "stm32l4a6", + ))] + let mut alrmar = rtc.alrmar(); + + #[cfg(any( + feature = "stm32l4r5" + ))] + let mut alrmar = rtc.alrmar; + + alrmar.modify(|_, w| unsafe { w.dt() .bits(dt) .du() @@ -307,7 +332,32 @@ impl Rtc { rtc_registers::clear_alarm_b_flag(rtc); while !rtc_registers::is_alarm_b_accessible(rtc) {} - rtc.alrmbr.modify(|_, w| unsafe { + #[cfg(any( + feature = "stm32l431", + feature = "stm32l451", + feature = "stm32l471", + feature = "stm32l412", + feature = "stm32l422", + feature = "stm32l432", + feature = "stm32l442", + feature = "stm32l452", + feature = "stm32l462", + feature = "stm32l433", + feature = "stm32l443", + feature = "stm32l475", + feature = "stm32l476", + feature = "stm32l486", + feature = "stm32l496", + feature = "stm32l4a6", + ))] + let mut alrmbr = rtc.alrmbr(); + + #[cfg(any( + feature = "stm32l4r5" + ))] + let mut alrmbr = rtc.alrmbr; + + alrmbr.modify(|_, w| unsafe { w.dt() .bits(dt) .du() diff --git a/src/serial.rs b/src/serial.rs index 2e36c7b4..ac8d34dc 100644 --- a/src/serial.rs +++ b/src/serial.rs @@ -35,8 +35,8 @@ use crate::time::{Bps, U32Ext}; feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -869,8 +869,8 @@ hal! { feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -890,8 +890,8 @@ hal! { feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -1046,8 +1046,8 @@ impl_pin_traits! { feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -1074,8 +1074,8 @@ impl_pin_traits! { feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", diff --git a/src/spi.rs b/src/spi.rs index dea33abe..5c2615fc 100644 --- a/src/spi.rs +++ b/src/spi.rs @@ -294,8 +294,8 @@ use crate::gpio::gpiod::*; feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -324,8 +324,8 @@ pins!(SPI1, 5, feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -357,8 +357,8 @@ pins!(SPI3, 6, feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", diff --git a/src/timer.rs b/src/timer.rs index 6e47acf7..744277b8 100644 --- a/src/timer.rs +++ b/src/timer.rs @@ -17,8 +17,8 @@ use crate::hal::timer::{Cancel, CountDown, Periodic}; feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", // feature = "stm32l4r9", @@ -45,8 +45,8 @@ use crate::stm32::{TIM15, TIM16, TIM2, TIM6}; feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", feature = "stm32l4r9", @@ -301,8 +301,8 @@ hal! { feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", // feature = "stm32l4r9", @@ -332,8 +332,8 @@ hal! { feature = "stm32l4a6", // feature = "stm32l4p5", // feature = "stm32l4q5", - // feature = "stm32l4r5", - // feature = "stm32l4s5", + feature = "stm32l4r5", + feature = "stm32l4s5", // feature = "stm32l4r7", // feature = "stm32l4s7", // feature = "stm32l4r9", diff --git a/src/tsc.rs b/src/tsc.rs index 4cef1085..10278e7e 100644 --- a/src/tsc.rs +++ b/src/tsc.rs @@ -267,7 +267,7 @@ impl<SPIN> Tsc<SPIN> { /// Reads the tsc group 2 count register /// WARNING, just returns the contents of the register! No validation of the correct pin pub fn read_unchecked(&self) -> u16 { - self.tsc.iog2cr.read().cnt().bits() + self.tsc.iog2cr().read().cnt().bits() } /// Is the tsc performing an aquisition diff --git a/src/watchdog.rs b/src/watchdog.rs index de60d9c9..6c95ffec 100644 --- a/src/watchdog.rs +++ b/src/watchdog.rs @@ -39,6 +39,15 @@ impl IndependentWatchdog { feature = "stm32l462", feature = "stm32l433", feature = "stm32l443", + feature = "stm32l475", + feature = "stm32l476", + feature = "stm32l486", + feature = "stm32l496", + feature = "stm32l4a6", + feature = "stm32l4r5", + feature = "stm32l4s5", + feature = "stm32l4r9", + feature = "stm32l4s9", ))] dbgmcu.apb1fzr1.modify(|_, w| w.dbg_iwdg_stop().bit(stop)); #[cfg(not(any( @@ -53,6 +62,15 @@ impl IndependentWatchdog { feature = "stm32l462", feature = "stm32l433", feature = "stm32l443", + feature = "stm32l475", + feature = "stm32l476", + feature = "stm32l486", + feature = "stm32l496", + feature = "stm32l4a6", + feature = "stm32l4r5", + feature = "stm32l4s5", + feature = "stm32l4r9", + feature = "stm32l4s9" )))] dbgmcu.apb1_fzr1.modify(|_, w| w.dbg_iwdg_stop().bit(stop)); }