Skip to content

Commit bc35b6f

Browse files
authored
Deduplicate pin setters (#3394)
1 parent 8c75312 commit bc35b6f

File tree

2 files changed

+47
-173
lines changed

2 files changed

+47
-173
lines changed

esp-hal/src/lcd_cam/cam.rs

Lines changed: 22 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -284,164 +284,93 @@ impl<'d> Camera<'d> {
284284
self
285285
}
286286

287-
/// Configures the DATA 0 pin for the camera interface.
288-
pub fn with_data0(self, pin: impl PeripheralInput<'d>) -> Self {
287+
fn with_data_pin(self, signal: InputSignal, pin: impl PeripheralInput<'d>) -> Self {
289288
let pin = pin.into();
290289

291290
pin.init_input(Pull::None);
292-
InputSignal::CAM_DATA_0.connect_to(&pin);
291+
signal.connect_to(&pin);
293292

294293
self
295294
}
296295

296+
/// Configures the DATA 0 pin for the camera interface.
297+
pub fn with_data0(self, pin: impl PeripheralInput<'d>) -> Self {
298+
self.with_data_pin(InputSignal::CAM_DATA_0, pin)
299+
}
300+
297301
/// Configures the DATA 1 pin for the camera interface.
298302
pub fn with_data1(self, pin: impl PeripheralInput<'d>) -> Self {
299-
let pin = pin.into();
300-
301-
pin.init_input(Pull::None);
302-
InputSignal::CAM_DATA_1.connect_to(&pin);
303-
304-
self
303+
self.with_data_pin(InputSignal::CAM_DATA_1, pin)
305304
}
306305

307306
/// Configures the DATA 2 pin for the camera interface.
308307
pub fn with_data2(self, pin: impl PeripheralInput<'d>) -> Self {
309-
let pin = pin.into();
310-
311-
pin.init_input(Pull::None);
312-
InputSignal::CAM_DATA_2.connect_to(&pin);
313-
314-
self
308+
self.with_data_pin(InputSignal::CAM_DATA_2, pin)
315309
}
316310

317311
/// Configures the DATA 3 pin for the camera interface.
318312
pub fn with_data3(self, pin: impl PeripheralInput<'d>) -> Self {
319-
let pin = pin.into();
320-
321-
pin.init_input(Pull::None);
322-
InputSignal::CAM_DATA_3.connect_to(&pin);
323-
324-
self
313+
self.with_data_pin(InputSignal::CAM_DATA_3, pin)
325314
}
326315

327316
/// Configures the DATA 4 pin for the camera interface.
328317
pub fn with_data4(self, pin: impl PeripheralInput<'d>) -> Self {
329-
let pin = pin.into();
330-
331-
pin.init_input(Pull::None);
332-
InputSignal::CAM_DATA_4.connect_to(&pin);
333-
334-
self
318+
self.with_data_pin(InputSignal::CAM_DATA_4, pin)
335319
}
336320

337321
/// Configures the DATA 5 pin for the camera interface.
338322
pub fn with_data5(self, pin: impl PeripheralInput<'d>) -> Self {
339-
let pin = pin.into();
340-
341-
pin.init_input(Pull::None);
342-
InputSignal::CAM_DATA_5.connect_to(&pin);
343-
344-
self
323+
self.with_data_pin(InputSignal::CAM_DATA_5, pin)
345324
}
346325

347326
/// Configures the DATA 6 pin for the camera interface.
348327
pub fn with_data6(self, pin: impl PeripheralInput<'d>) -> Self {
349-
let pin = pin.into();
350-
351-
pin.init_input(Pull::None);
352-
InputSignal::CAM_DATA_6.connect_to(&pin);
353-
354-
self
328+
self.with_data_pin(InputSignal::CAM_DATA_6, pin)
355329
}
356330

357331
/// Configures the DATA 7 pin for the camera interface.
358332
pub fn with_data7(self, pin: impl PeripheralInput<'d>) -> Self {
359-
let pin = pin.into();
360-
361-
pin.init_input(Pull::None);
362-
InputSignal::CAM_DATA_7.connect_to(&pin);
363-
364-
self
333+
self.with_data_pin(InputSignal::CAM_DATA_7, pin)
365334
}
366335

367336
/// Configures the DATA 8 pin for the camera interface.
368337
pub fn with_data8(self, pin: impl PeripheralInput<'d>) -> Self {
369-
let pin = pin.into();
370-
371-
pin.init_input(Pull::None);
372-
InputSignal::CAM_DATA_8.connect_to(&pin);
373-
374-
self
338+
self.with_data_pin(InputSignal::CAM_DATA_8, pin)
375339
}
376340

377341
/// Configures the DATA 9 pin for the camera interface.
378342
pub fn with_data9(self, pin: impl PeripheralInput<'d>) -> Self {
379-
let pin = pin.into();
380-
381-
pin.init_input(Pull::None);
382-
InputSignal::CAM_DATA_9.connect_to(&pin);
383-
384-
self
343+
self.with_data_pin(InputSignal::CAM_DATA_9, pin)
385344
}
386345

387346
/// Configures the DATA 10 pin for the camera interface.
388347
pub fn with_data10(self, pin: impl PeripheralInput<'d>) -> Self {
389-
let pin = pin.into();
390-
391-
pin.init_input(Pull::None);
392-
InputSignal::CAM_DATA_10.connect_to(&pin);
393-
394-
self
348+
self.with_data_pin(InputSignal::CAM_DATA_10, pin)
395349
}
396350

397351
/// Configures the DATA 11 pin for the camera interface.
398352
pub fn with_data11(self, pin: impl PeripheralInput<'d>) -> Self {
399-
let pin = pin.into();
400-
401-
pin.init_input(Pull::None);
402-
InputSignal::CAM_DATA_11.connect_to(&pin);
403-
404-
self
353+
self.with_data_pin(InputSignal::CAM_DATA_11, pin)
405354
}
406355

407356
/// Configures the DATA 12 pin for the camera interface.
408357
pub fn with_data12(self, pin: impl PeripheralInput<'d>) -> Self {
409-
let pin = pin.into();
410-
411-
pin.init_input(Pull::None);
412-
InputSignal::CAM_DATA_12.connect_to(&pin);
413-
414-
self
358+
self.with_data_pin(InputSignal::CAM_DATA_12, pin)
415359
}
416360

417361
/// Configures the DATA 13 pin for the camera interface.
418362
pub fn with_data13(self, pin: impl PeripheralInput<'d>) -> Self {
419-
let pin = pin.into();
420-
421-
pin.init_input(Pull::None);
422-
InputSignal::CAM_DATA_13.connect_to(&pin);
423-
424-
self
363+
self.with_data_pin(InputSignal::CAM_DATA_13, pin)
425364
}
426365

427366
/// Configures the DATA 14 pin for the camera interface.
428367
pub fn with_data14(self, pin: impl PeripheralInput<'d>) -> Self {
429-
let pin = pin.into();
430-
431-
pin.init_input(Pull::None);
432-
InputSignal::CAM_DATA_14.connect_to(&pin);
433-
434-
self
368+
self.with_data_pin(InputSignal::CAM_DATA_14, pin)
435369
}
436370

437371
/// Configures the DATA 15 pin for the camera interface.
438372
pub fn with_data15(self, pin: impl PeripheralInput<'d>) -> Self {
439-
let pin = pin.into();
440-
441-
pin.init_input(Pull::None);
442-
InputSignal::CAM_DATA_15.connect_to(&pin);
443-
444-
self
373+
self.with_data_pin(InputSignal::CAM_DATA_15, pin)
445374
}
446375

447376
/// Starts a DMA transfer to receive data from the camera peripheral.

0 commit comments

Comments
 (0)