diff --git a/rp2040-hal/CHANGELOG.md b/rp2040-hal/CHANGELOG.md index f7ca329cb..9c22fb99c 100644 --- a/rp2040-hal/CHANGELOG.md +++ b/rp2040-hal/CHANGELOG.md @@ -18,6 +18,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 more slowly than on the Raspberry Pico. - Some reorganization of ADC code, making sure that AdcPin can only be created for pins that can actually be used as ADC channels. +- Breaking change: Clear the input-enable flag of all pins on bank 0 in `Pins::new`. + They will automatically be enabled when setting a pin function, so most users + won't be affected by that change. Notable exception: If you rely on the fact that + PIO can read all pins as input even if the pin is not configured to the PIO function, + you may need to set the input-enable flag manually. - #755 @jannic ## [0.9.1] diff --git a/rp2040-hal/src/gpio/mod.rs b/rp2040-hal/src/gpio/mod.rs index 86a44c886..6fd94646b 100644 --- a/rp2040-hal/src/gpio/mod.rs +++ b/rp2040-hal/src/gpio/mod.rs @@ -1049,6 +1049,8 @@ macro_rules! gpio { impl Pins { /// Take ownership of the PAC peripherals and SIO slice and split it into discrete [`Pin`]s + /// + /// This clears the input-enable flag for all Bank0 pads. pub fn new(io : [], pads: [], sio: [], reset : &mut $crate::pac::RESETS) -> Self { use $crate::resets::SubsystemReset; pads.reset_bring_down(reset);