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
//! # GPIO configuration module (ESP32-C6)
//!
//! ## Overview
//!
//! The `GPIO` module provides functions and configurations for controlling the
//! `General Purpose Input/Output` pins on the `ESP32-C6` chip. It allows you to
//! configure pins as inputs or outputs, set their state and read their state.
//!
//! Let's get through the functionality and configurations provided by this GPIO
//! module:
//! - `gpio` block:
//! * Defines the pin configurations for various GPIO pins. Each line represents a pin and its
//! associated options such as input/output mode, analog capability, and corresponding
//! functions.
//! - `analog` block:
//! * Block defines the analog capabilities of various GPIO pins. Each line represents a pin
//! and its associated options such as mux selection, function selection, and input enable.
//! - `enum InputSignal`:
//! * This enumeration defines input signals for the GPIO mux. Each input signal is assigned a
//! specific value.
//! - `enum OutputSignal`:
//! * This enumeration defines output signals for the GPIO mux. Each output signal is assigned
//! a specific value.
//!
//! This trait provides functions to read the interrupt status and NMI status
//! registers for both the `PRO CPU` and `APP CPU`. The implementation uses the
//! `gpio` peripheral to access the appropriate registers.
cratelp_gpio!