diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index 18fd2f4..6b03e78 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -592,7 +592,15 @@ fn parse_group( } for pin in parsed.pins { if let Some(pin_name) = gpio_af::clean_pin(&pin.name) { - group.pins.insert(pin_name, pin); + group + .pins + .entry(pin_name) + .and_modify(|p| { + // merge signals. + p.signals.extend_from_slice(&pin.signals); + p.signals.dedup(); + }) + .or_insert(pin); } }