@@ -13,10 +13,10 @@ use embassy_sync::waitqueue::AtomicWaker;
13
13
use super :: DePin ;
14
14
use super :: {
15
15
clear_interrupt_flags, configure, half_duplex_set_rx_tx_before_write, rdr, reconfigure, send_break, set_baudrate,
16
- sr, tdr, Config , ConfigError , CtsPin , Duplex , Error , HalfDuplexConfig , HalfDuplexReadback , Info , Instance , Regs ,
17
- RtsPin , RxPin , TxPin ,
16
+ sr, tdr, Config , ConfigError , CtsPin , Duplex , Error , HalfDuplexReadback , Info , Instance , Regs , RtsPin , RxPin ,
17
+ TxPin ,
18
18
} ;
19
- use crate :: gpio:: { AfType , AnyPin , OutputType , Pull , SealedPin as _, Speed } ;
19
+ use crate :: gpio:: { AfType , AnyPin , Pull , SealedPin as _} ;
20
20
use crate :: interrupt:: { self , InterruptExt } ;
21
21
use crate :: time:: Hertz ;
22
22
@@ -217,8 +217,8 @@ impl<'d> BufferedUart<'d> {
217
217
) -> Result < Self , ConfigError > {
218
218
Self :: new_inner (
219
219
peri,
220
- new_pin ! ( rx, AfType :: input ( config. rx_pull ) ) ,
221
- new_pin ! ( tx, AfType :: output ( OutputType :: PushPull , Speed :: Medium ) ) ,
220
+ new_pin ! ( rx, config. rx_af ( ) ) ,
221
+ new_pin ! ( tx, config . tx_af ( ) ) ,
222
222
None ,
223
223
None ,
224
224
None ,
@@ -242,10 +242,10 @@ impl<'d> BufferedUart<'d> {
242
242
) -> Result < Self , ConfigError > {
243
243
Self :: new_inner (
244
244
peri,
245
- new_pin ! ( rx, AfType :: input ( Pull :: None ) ) ,
246
- new_pin ! ( tx, AfType :: output ( OutputType :: PushPull , Speed :: Medium ) ) ,
247
- new_pin ! ( rts, AfType :: output ( OutputType :: PushPull , Speed :: Medium ) ) ,
248
- new_pin ! ( cts, AfType :: input( Pull :: None ) ) ,
245
+ new_pin ! ( rx, config . rx_af ( ) ) ,
246
+ new_pin ! ( tx, config . tx_af ( ) ) ,
247
+ new_pin ! ( rts, config . rts_config . af_type ( ) ) ,
248
+ new_pin ! ( cts, AfType :: input( config . cts_pull ) ) ,
249
249
None ,
250
250
tx_buffer,
251
251
rx_buffer,
@@ -266,8 +266,8 @@ impl<'d> BufferedUart<'d> {
266
266
) -> Result < Self , ConfigError > {
267
267
Self :: new_inner (
268
268
peri,
269
- new_pin ! ( rx, AfType :: input ( Pull :: None ) ) ,
270
- new_pin ! ( tx, AfType :: output ( OutputType :: PushPull , Speed :: Medium ) ) ,
269
+ new_pin ! ( rx, config . rx_af ( ) ) ,
270
+ new_pin ! ( tx, config . tx_af ( ) ) ,
271
271
None ,
272
272
None ,
273
273
new_pin ! ( rts, AfType :: input( Pull :: None ) ) , // RTS mapped used as DE
@@ -290,8 +290,8 @@ impl<'d> BufferedUart<'d> {
290
290
) -> Result < Self , ConfigError > {
291
291
Self :: new_inner (
292
292
peri,
293
- new_pin ! ( rx, AfType :: input ( Pull :: None ) ) ,
294
- new_pin ! ( tx, AfType :: output ( OutputType :: PushPull , Speed :: Medium ) ) ,
293
+ new_pin ! ( rx, config . rx_af ( ) ) ,
294
+ new_pin ! ( tx, config . tx_af ( ) ) ,
295
295
new_pin ! ( rts, AfType :: input( Pull :: None ) ) ,
296
296
None , // no CTS
297
297
None , // no DE
@@ -315,11 +315,11 @@ impl<'d> BufferedUart<'d> {
315
315
) -> Result < Self , ConfigError > {
316
316
Self :: new_inner (
317
317
peri,
318
- new_pin ! ( rx, AfType :: input ( config. rx_pull ) ) ,
319
- new_pin ! ( tx, AfType :: output ( OutputType :: PushPull , Speed :: Medium ) ) ,
318
+ new_pin ! ( rx, config. rx_af ( ) ) ,
319
+ new_pin ! ( tx, config . tx_af ( ) ) ,
320
320
None ,
321
321
None ,
322
- new_pin ! ( de, AfType :: output ( OutputType :: PushPull , Speed :: Medium ) ) ,
322
+ new_pin ! ( de, config . de_config . af_type ( ) ) ,
323
323
tx_buffer,
324
324
rx_buffer,
325
325
config,
@@ -346,7 +346,6 @@ impl<'d> BufferedUart<'d> {
346
346
rx_buffer : & ' d mut [ u8 ] ,
347
347
mut config : Config ,
348
348
readback : HalfDuplexReadback ,
349
- half_duplex : HalfDuplexConfig ,
350
349
) -> Result < Self , ConfigError > {
351
350
#[ cfg( not( any( usart_v1, usart_v2) ) ) ]
352
351
{
@@ -357,7 +356,7 @@ impl<'d> BufferedUart<'d> {
357
356
Self :: new_inner (
358
357
peri,
359
358
None ,
360
- new_pin ! ( tx, half_duplex . af_type ( ) ) ,
359
+ new_pin ! ( tx, config . tx_af ( ) ) ,
361
360
None ,
362
361
None ,
363
362
None ,
@@ -386,14 +385,13 @@ impl<'d> BufferedUart<'d> {
386
385
rx_buffer : & ' d mut [ u8 ] ,
387
386
mut config : Config ,
388
387
readback : HalfDuplexReadback ,
389
- half_duplex : HalfDuplexConfig ,
390
388
) -> Result < Self , ConfigError > {
391
389
config. swap_rx_tx = true ;
392
390
config. duplex = Duplex :: Half ( readback) ;
393
391
394
392
Self :: new_inner (
395
393
peri,
396
- new_pin ! ( rx, half_duplex . af_type ( ) ) ,
394
+ new_pin ! ( rx, config . rx_af ( ) ) ,
397
395
None ,
398
396
None ,
399
397
None ,
0 commit comments