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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#![no_std]

pub extern crate rp2040_hal as hal;

pub use hal::pac;

#[cfg(feature = "rt")]
pub use rp2040_hal::entry;

/// The linker will place this boot block at the start of our program image. We
/// need this to help the ROM bootloader get our code up and running.
#[cfg(feature = "boot2")]
#[link_section = ".boot2"]
#[no_mangle]
#[used]
pub static BOOT2_FIRMWARE: [u8; 256] = rp2040_boot2::BOOT_LOADER_W25Q080;

hal::bsp_pins!(
    Gpio0 {
        name: gpio0,
        aliases: {
            /// UART Function alias for pin [crate::Pins::gpio0].
            FunctionUart, PullNone: UartTx
        }
    },
    Gpio1 {
        name: gpio1,
        aliases: {
            /// UART Function alias for pin [crate::Pins::gpio1].
            FunctionUart, PullNone: UartRx
        }
    },
    Gpio3 { name: i2c_int },
    Gpio4 {
        name: gpio4,
        aliases: {
            /// I2C Function alias for pin [crate::Pins::gpio4].
            FunctionI2C, PullUp: I2cSda
        }
    },
    Gpio5 {
        name: gpio5,
        aliases: {
            /// I2C Function alias for pin [crate::Pins::gpio5].
            FunctionI2C, PullUp: I2cScl
        }
    },
    Gpio10 { name: p3v3_en },
    Gpio11 { name: sw_down },
    Gpio12 { name: sw_a },
    Gpio13 { name: sw_b },
    Gpio14 { name: sw_c },
    Gpio15 { name: sw_up },
    Gpio16 {
        name: miso,
        aliases: {
            /// SPI Function alias for pin [crate::Pins::gpio16].
            FunctionSpi, PullNone: Miso
        }
    },
    Gpio17 {
        name: inky_cs_gpio,
        aliases: {
            /// SPI Function alias for pin [crate::Pins::gpio17].
            FunctionSpi, PullNone: InkyCs
        }
    },
    Gpio18 {
        name: sclk,
        aliases: {
            /// SPI Function alias for pin [crate::Pins::gpio18].
            FunctionSpi, PullNone: Sclk
        }
    },
    Gpio19 {
        name: mosi,
        aliases: {
            /// SPI Function alias for pin [crate::Pins::gpio19].
            FunctionSpi, PullNone: Mosi
        }
    },
    Gpio20 { name: inky_dc },
    Gpio21 { name: inky_res },
    Gpio23 { name: user_sw },
    /// GPIO 24 is connected to vbus_detect of the badger2040.
    Gpio24 { name: vbus_detect },
    /// GPIO 25 is connected to activity LED of the badger2040.
    Gpio25 { name: led },
    Gpio26 { name: inky_busy },
    Gpio27 { name: vref_power },
    Gpio28 { name: vref_1v24 },
    /// GPIO 29 is connected to battery monitor of the badger2040
    Gpio29 { name: vbat_sense },
);

pub const XOSC_CRYSTAL_FREQ: u32 = 12_000_000;