1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! General Purpose I/Os
//!
//! To get access to the pins, you first need to convert them into a HAL
//! designed struct from the pac struct `GPIO` and `IO_MUX` using `IO::new`.
//!
//! ```no_run
//! let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
//! let mut led = io.pins.gpio5.into_push_pull_output();
//! ```
use esp_hal_common::gpio::{types::*, *};

gpio! {
    Function1,
    SingleCore,

    Gpio0:  ( gpio0,  0,  gpio[0], IO, RTC, Bank0, None),
    Gpio1:  ( gpio1,  1,  gpio[1], IO, RTC, Bank0, None),
    Gpio2:  ( gpio2,  2,  gpio[2], IO, RTC, Bank0, None), (FSPIQ: Function2), (FSPIQ: Function2),
    Gpio3:  ( gpio3,  3,  gpio[3], IO, RTC, Bank0, None),
    Gpio4:  ( gpio4,  4,  gpio[4], IO, RTC, Bank0, None), (FSPIHD: Function2), (USB_JTAG_TMS: Function0, FSPIHD: Function2),
    Gpio5:  ( gpio5,  5,  gpio[5], IO, RTC, Bank0, None), (FSPIWP: Function2), (USB_JTAG_TDI: Function0, FSPIWP: Function2),
    Gpio6:  ( gpio6,  6,  gpio[6], IO,   0, Bank0, None), (FSPICLK: Function2), (USB_JTAG_TCK: Function0, FSPICLK_MUX: Function2),
    Gpio7:  ( gpio7,  7,  gpio[7], IO,   0, Bank0, None), (FSPID: Function2), (USB_JTAG_TDO: Function0, FSPID: Function2),
    Gpio8:  ( gpio8,  8,  gpio[8], IO,   0, Bank0, None),
    Gpio9:  ( gpio9,  9,  gpio[9], IO,   0, Bank0, None),
    Gpio10: (gpio10, 10, gpio[10], IO,   0, Bank0, None), (FSPICS0: Function2), (FSPICS0: Function2),
    Gpio11: (gpio11, 11, gpio[11], IO,   0, Bank0, None),
    Gpio12: (gpio12, 12, gpio[12], IO,   0, Bank0, None), (SPIHD: Function0), (SPIHD: Function0),
    Gpio13: (gpio13, 13, gpio[13], IO,   0, Bank0, None), (SPIWP: Function0), (SPIWP: Function0),
    Gpio14: (gpio14, 14, gpio[14], IO,   0, Bank0, None), (), (SPICS0: Function0),
    Gpio15: (gpio15, 15, gpio[15], IO,   0, Bank0, None), (), (SPICLK_MUX: Function0),
    Gpio16: (gpio16, 16, gpio[16], IO,   0, Bank0, None), (SPID: Function0), (SPID: Function0),
    Gpio17: (gpio17, 17, gpio[17], IO,   0, Bank0, None), (SPIQ: Function0), (SPIQ: Function0),
    Gpio18: (gpio18, 18, gpio[18], IO,   0, Bank0, None),
    Gpio19: (gpio19, 19, gpio[19], IO,   0, Bank0, None),
    Gpio20: (gpio20, 20, gpio[20], IO,   0, Bank0, None), (U0RXD: Function0), (),
    Gpio21: (gpio21, 21, gpio[21], IO,   0, Bank0, None), (), (U0TXD: Function0),
}

analog! {
    Gpio0 => 0
    Gpio1 => 1
    Gpio2 => 2
    Gpio3 => 3
    Gpio4 => 4
    Gpio5 => 4
}