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));
     }