Skip to content

Commit c26264d

Browse files
committed
Add I2C definitions for other H5 processors
1 parent 08afae5 commit c26264d

File tree

1 file changed

+117
-1
lines changed

1 file changed

+117
-1
lines changed

src/i2c/i2c_def.rs

Lines changed: 117 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ macro_rules! i2c {
3737

3838
match ccipr4.[<$I2CX:lower sel>]().variant() {
3939
ccipr4::I2CSEL::Pclk => Some(clocks.$pclk()),
40-
ccipr4::I2CSEL::[< $pllX:camel R>] => clocks.[< $pllX:lower _r_ck >](),
40+
ccipr4::I2CSEL::[< $pllX:camel R>] => clocks.[< $pllX:lower >]().r_ck(),
4141
ccipr4::I2CSEL::HsiKer => clocks.hsi_ck(),
4242
ccipr4::I2CSEL::CsiKer => clocks.csi_ck(),
4343
}.expect("Source clock not enabled")
@@ -95,3 +95,119 @@ mod rm492 {
9595
i2c! { I2C1: pclk1, Pll2 }
9696
i2c! { I2C2: pclk1, Pll2 }
9797
}
98+
99+
#[cfg(feature = "h523_h533")]
100+
mod h523_h533 {
101+
use super::*;
102+
use crate::stm32::{I2C1, I2C2, I2C3};
103+
104+
pins! {
105+
I2C1:
106+
SCL: [
107+
gpio::PB6<Alternate<4, OpenDrain>>,
108+
gpio::PB8<Alternate<4, OpenDrain>>
109+
]
110+
111+
SDA: [
112+
gpio::PB7<Alternate<4, OpenDrain>>,
113+
gpio::PB9<Alternate<4, OpenDrain>>
114+
]
115+
116+
I2C2:
117+
SCL: [
118+
gpio::PB10<Alternate<4, OpenDrain>>,
119+
gpio::PF1<Alternate<4, OpenDrain>>
120+
]
121+
122+
SDA: [
123+
gpio::PB3<Alternate<4, OpenDrain>>,
124+
gpio::PB12<Alternate<4, OpenDrain>>,
125+
gpio::PF0<Alternate<4, OpenDrain>>
126+
]
127+
128+
I2C3:
129+
SCL: [
130+
gpio::PA8<Alternate<4, OpenDrain>>,
131+
gpio::PD6<Alternate<4, OpenDrain>>
132+
]
133+
134+
SDA: [
135+
gpio::PB4<Alternate<9, OpenDrain>>,
136+
gpio::PC9<Alternate<4, OpenDrain>>,
137+
gpio::PD7<Alternate<4, OpenDrain>>
138+
]
139+
}
140+
141+
i2c! { I2C1: pclk1, Pll3 }
142+
i2c! { I2C2: pclk1, Pll3 }
143+
i2c! { I2C3: pclk3, Pll3 }
144+
}
145+
146+
#[cfg(feature = "h56x_h573")]
147+
mod h56x_h573 {
148+
use super::*;
149+
use crate::stm32::{I2C1, I2C2, I2C3, I2C4};
150+
151+
pins! {
152+
I2C1:
153+
SCL: [
154+
gpio::PB6<Alternate<4, OpenDrain>>,
155+
gpio::PB8<Alternate<4, OpenDrain>>
156+
]
157+
158+
SDA: [
159+
gpio::PB7<Alternate<4, OpenDrain>>,
160+
gpio::PB9<Alternate<4, OpenDrain>>
161+
]
162+
163+
I2C2:
164+
SCL: [
165+
gpio::PB10<Alternate<4, OpenDrain>>,
166+
gpio::PF1<Alternate<4, OpenDrain>>,
167+
gpio::PH4<Alternate<4, OpenDrain>>
168+
]
169+
170+
SDA: [
171+
gpio::PB3<Alternate<4, OpenDrain>>,
172+
gpio::PB11<Alternate<4, OpenDrain>>,
173+
gpio::PB12<Alternate<4, OpenDrain>>,
174+
gpio::PF0<Alternate<4, OpenDrain>>,
175+
gpio::PH5<Alternate<4, OpenDrain>>
176+
]
177+
178+
I2C3:
179+
SCL: [
180+
gpio::PA8<Alternate<4, OpenDrain>>,
181+
gpio::PH7<Alternate<4, OpenDrain>>
182+
]
183+
184+
SDA: [
185+
gpio::PC9<Alternate<4, OpenDrain>>,
186+
gpio::PH8<Alternate<4, OpenDrain>>
187+
]
188+
189+
I2C4:
190+
SCL: [
191+
gpio::PB6<Alternate<6, OpenDrain>>,
192+
gpio::PB8<Alternate<6, OpenDrain>>,
193+
gpio::PD12<Alternate<4, OpenDrain>>,
194+
gpio::PF5<Alternate<4, OpenDrain>>,
195+
gpio::PG7<Alternate<4, OpenDrain>>,
196+
gpio::PH11<Alternate<4, OpenDrain>>
197+
]
198+
199+
SDA: [
200+
gpio::PB7<Alternate<6, OpenDrain>>,
201+
gpio::PB9<Alternate<6, OpenDrain>>,
202+
gpio::PD13<Alternate<4, OpenDrain>>,
203+
gpio::PF15<Alternate<4, OpenDrain>>,
204+
gpio::PG6<Alternate<4, OpenDrain>>,
205+
gpio::PH12<Alternate<4, OpenDrain>>
206+
]
207+
}
208+
209+
i2c! { I2C1: pclk1, Pll3 }
210+
i2c! { I2C2: pclk1, Pll3 }
211+
i2c! { I2C3: pclk3, Pll3 }
212+
i2c! { I2C4: pclk3, Pll3 }
213+
}

0 commit comments

Comments
 (0)