diff --git a/stm32-metapac/build.rs b/stm32-metapac/build.rs
index 1d0696ba9..046bc11f3 100644
--- a/stm32-metapac/build.rs
+++ b/stm32-metapac/build.rs
@@ -41,7 +41,7 @@ pub struct Peripheral {
     #[serde(default)]
     pub clock: Option<String>,
     #[serde(default)]
-    pub pins: Option<Vec<Pin>>,
+    pub pins: Vec<Pin>,
 }
 
 #[derive(Debug, Eq, PartialEq, Clone, Deserialize)]
@@ -52,11 +52,12 @@ pub struct Pin {
 }
 
 struct BlockInfo {
+    /// usart_v1/USART -> usart
     module: String,
-    // usart_v1/USART -> usart
+    /// usart_v1/USART -> v1
     version: String,
-    // usart_v1/USART -> v1
-    block: String,   // usart_v1/USART -> USART
+    /// usart_v1/USART -> USART
+    block: String,
 }
 
 impl BlockInfo {
@@ -161,19 +162,17 @@ fn main() {
         if let Some(block) = &p.block {
             let bi = BlockInfo::parse(block);
 
-            if let Some(pins) = &p.pins {
-                for pin in pins {
-                    let mut row = Vec::new();
-                    row.push(name.clone());
-                    row.push(bi.module.clone());
-                    row.push(bi.block.clone());
-                    row.push(pin.pin.clone());
-                    row.push(pin.signal.clone());
-                    if let Some(ref af) = pin.af {
-                        row.push(af.clone());
-                    }
-                    peripheral_pins_table.push(row);
+            for pin in &p.pins {
+                let mut row = Vec::new();
+                row.push(name.clone());
+                row.push(bi.module.clone());
+                row.push(bi.block.clone());
+                row.push(pin.pin.clone());
+                row.push(pin.signal.clone());
+                if let Some(ref af) = pin.af {
+                    row.push(af.clone());
                 }
+                peripheral_pins_table.push(row);
             }