nrf52840/
gpio.rs

1// Licensed under the Apache License, Version 2.0 or the MIT License.
2// SPDX-License-Identifier: Apache-2.0 OR MIT
3// Copyright Tock Contributors 2022.
4
5pub use nrf52::gpio::{GPIOPin, Pin, Port};
6
7pub const NUM_PINS: usize = 48;
8
9pub const fn nrf52840_gpio_create<'a>() -> Port<'a, NUM_PINS> {
10    Port::new([
11        GPIOPin::new(Pin::P0_00),
12        GPIOPin::new(Pin::P0_01),
13        GPIOPin::new(Pin::P0_02),
14        GPIOPin::new(Pin::P0_03),
15        GPIOPin::new(Pin::P0_04),
16        GPIOPin::new(Pin::P0_05),
17        GPIOPin::new(Pin::P0_06),
18        GPIOPin::new(Pin::P0_07),
19        GPIOPin::new(Pin::P0_08),
20        GPIOPin::new(Pin::P0_09),
21        GPIOPin::new(Pin::P0_10),
22        GPIOPin::new(Pin::P0_11),
23        GPIOPin::new(Pin::P0_12),
24        GPIOPin::new(Pin::P0_13),
25        GPIOPin::new(Pin::P0_14),
26        GPIOPin::new(Pin::P0_15),
27        GPIOPin::new(Pin::P0_16),
28        GPIOPin::new(Pin::P0_17),
29        GPIOPin::new(Pin::P0_18),
30        GPIOPin::new(Pin::P0_19),
31        GPIOPin::new(Pin::P0_20),
32        GPIOPin::new(Pin::P0_21),
33        GPIOPin::new(Pin::P0_22),
34        GPIOPin::new(Pin::P0_23),
35        GPIOPin::new(Pin::P0_24),
36        GPIOPin::new(Pin::P0_25),
37        GPIOPin::new(Pin::P0_26),
38        GPIOPin::new(Pin::P0_27),
39        GPIOPin::new(Pin::P0_28),
40        GPIOPin::new(Pin::P0_29),
41        GPIOPin::new(Pin::P0_30),
42        GPIOPin::new(Pin::P0_31),
43        GPIOPin::new(Pin::P1_00),
44        GPIOPin::new(Pin::P1_01),
45        GPIOPin::new(Pin::P1_02),
46        GPIOPin::new(Pin::P1_03),
47        GPIOPin::new(Pin::P1_04),
48        GPIOPin::new(Pin::P1_05),
49        GPIOPin::new(Pin::P1_06),
50        GPIOPin::new(Pin::P1_07),
51        GPIOPin::new(Pin::P1_08),
52        GPIOPin::new(Pin::P1_09),
53        GPIOPin::new(Pin::P1_10),
54        GPIOPin::new(Pin::P1_11),
55        GPIOPin::new(Pin::P1_12),
56        GPIOPin::new(Pin::P1_13),
57        GPIOPin::new(Pin::P1_14),
58        GPIOPin::new(Pin::P1_15),
59    ])
60}