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
#[doc = r"Register block"]
#[repr(C)]
pub struct RegisterBlock {
#[doc = "0x00 - GPIO data value read/write register"]
pub data_value: crate::Reg<data_value::DATA_VALUE_SPEC>,
#[doc = "0x04 - GPIO data read/write enable register"]
pub data_enable: crate::Reg<data_enable::DATA_ENABLE_SPEC>,
#[doc = "0x08 - GPIO direction register"]
pub direction: crate::Reg<direction::DIRECTION_SPEC>,
#[doc = "0x0c - Internal pull up mask register"]
pub pull_up: crate::Reg<pull_up::PULL_UP_SPEC>,
#[doc = "0x10 - Alternate function enable register\n\n Each bit corresponds to whether the corresponding GPIO multiplexing function is turned on.\n\n When the bit is set, the multiplexing function depends on the corresponding bits of registers `function_high` and `function_low`."]
pub alternate_enable: crate::Reg<alternate_enable::ALTERNATE_ENABLE_SPEC>,
#[doc = "0x14 - Alternate function select high register\n\n This register and `function_low` jointly determine multiplexing function number."]
pub function_high: crate::Reg<function_high::FUNCTION_HIGH_SPEC>,
#[doc = "0x18 - Alternate function select low register\n\n This register and `function_high` jointly determine multiplexing function number."]
pub function_low: crate::Reg<function_low::FUNCTION_LOW_SPEC>,
#[doc = "0x1c - Internal pull down register"]
pub pull_down: crate::Reg<pull_down::PULL_DOWN_SPEC>,
#[doc = "0x20 - Interrupt trigger mode selection"]
pub trigger_mode: crate::Reg<trigger_mode::TRIGGER_MODE_SPEC>,
#[doc = "0x24 - Interrupt trigger on both sides selection"]
pub trigger_both: crate::Reg<trigger_both::TRIGGER_BOTH_SPEC>,
#[doc = "0x28 - Interrupt trigger edge or level type selection"]
pub trigger_edge_level: crate::Reg<trigger_edge_level::TRIGGER_EDGE_LEVEL_SPEC>,
#[doc = "0x2c - Interrupt enable register"]
pub interrupt_enable: crate::Reg<interrupt_enable::INTERRUPT_ENABLE_SPEC>,
#[doc = "0x30 - Raw interrupt state register\n\n GPIO bare interrupt status before masking."]
pub interrupt_state_raw: crate::Reg<interrupt_state_raw::INTERRUPT_STATE_RAW_SPEC>,
#[doc = "0x34 - Masked interrupt state register"]
pub interrupt_state: crate::Reg<interrupt_state::INTERRUPT_STATE_SPEC>,
#[doc = "0x38 - Clear interrupt register"]
pub interrupt_clear: crate::Reg<interrupt_clear::INTERRUPT_CLEAR_SPEC>,
}
#[doc = "data_value register accessor: an alias for `Reg<DATA_VALUE_SPEC>`"]
pub type DATA_VALUE = crate::Reg<data_value::DATA_VALUE_SPEC>;
#[doc = "GPIO data value read/write register"]
pub mod data_value;
#[doc = "data_enable register accessor: an alias for `Reg<DATA_ENABLE_SPEC>`"]
pub type DATA_ENABLE = crate::Reg<data_enable::DATA_ENABLE_SPEC>;
#[doc = "GPIO data read/write enable register"]
pub mod data_enable;
#[doc = "direction register accessor: an alias for `Reg<DIRECTION_SPEC>`"]
pub type DIRECTION = crate::Reg<direction::DIRECTION_SPEC>;
#[doc = "GPIO direction register"]
pub mod direction;
#[doc = "pull_up register accessor: an alias for `Reg<PULL_UP_SPEC>`"]
pub type PULL_UP = crate::Reg<pull_up::PULL_UP_SPEC>;
#[doc = "Internal pull up mask register"]
pub mod pull_up;
#[doc = "alternate_enable register accessor: an alias for `Reg<ALTERNATE_ENABLE_SPEC>`"]
pub type ALTERNATE_ENABLE = crate::Reg<alternate_enable::ALTERNATE_ENABLE_SPEC>;
#[doc = "Alternate function enable register\n\n Each bit corresponds to whether the corresponding GPIO multiplexing function is turned on.\n\n When the bit is set, the multiplexing function depends on the corresponding bits of registers `function_high` and `function_low`."]
pub mod alternate_enable;
#[doc = "function_high register accessor: an alias for `Reg<FUNCTION_HIGH_SPEC>`"]
pub type FUNCTION_HIGH = crate::Reg<function_high::FUNCTION_HIGH_SPEC>;
#[doc = "Alternate function select high register\n\n This register and `function_low` jointly determine multiplexing function number."]
pub mod function_high;
#[doc = "function_low register accessor: an alias for `Reg<FUNCTION_LOW_SPEC>`"]
pub type FUNCTION_LOW = crate::Reg<function_low::FUNCTION_LOW_SPEC>;
#[doc = "Alternate function select low register\n\n This register and `function_high` jointly determine multiplexing function number."]
pub mod function_low;
#[doc = "pull_down register accessor: an alias for `Reg<PULL_DOWN_SPEC>`"]
pub type PULL_DOWN = crate::Reg<pull_down::PULL_DOWN_SPEC>;
#[doc = "Internal pull down register"]
pub mod pull_down;
#[doc = "trigger_mode register accessor: an alias for `Reg<TRIGGER_MODE_SPEC>`"]
pub type TRIGGER_MODE = crate::Reg<trigger_mode::TRIGGER_MODE_SPEC>;
#[doc = "Interrupt trigger mode selection"]
pub mod trigger_mode;
#[doc = "trigger_both register accessor: an alias for `Reg<TRIGGER_BOTH_SPEC>`"]
pub type TRIGGER_BOTH = crate::Reg<trigger_both::TRIGGER_BOTH_SPEC>;
#[doc = "Interrupt trigger on both sides selection"]
pub mod trigger_both;
#[doc = "trigger_edge_level register accessor: an alias for `Reg<TRIGGER_EDGE_LEVEL_SPEC>`"]
pub type TRIGGER_EDGE_LEVEL = crate::Reg<trigger_edge_level::TRIGGER_EDGE_LEVEL_SPEC>;
#[doc = "Interrupt trigger edge or level type selection"]
pub mod trigger_edge_level;
#[doc = "interrupt_enable register accessor: an alias for `Reg<INTERRUPT_ENABLE_SPEC>`"]
pub type INTERRUPT_ENABLE = crate::Reg<interrupt_enable::INTERRUPT_ENABLE_SPEC>;
#[doc = "Interrupt enable register"]
pub mod interrupt_enable;
#[doc = "interrupt_state_raw register accessor: an alias for `Reg<INTERRUPT_STATE_RAW_SPEC>`"]
pub type INTERRUPT_STATE_RAW = crate::Reg<interrupt_state_raw::INTERRUPT_STATE_RAW_SPEC>;
#[doc = "Raw interrupt state register\n\n GPIO bare interrupt status before masking."]
pub mod interrupt_state_raw;
#[doc = "interrupt_state register accessor: an alias for `Reg<INTERRUPT_STATE_SPEC>`"]
pub type INTERRUPT_STATE = crate::Reg<interrupt_state::INTERRUPT_STATE_SPEC>;
#[doc = "Masked interrupt state register"]
pub mod interrupt_state;
#[doc = "interrupt_clear register accessor: an alias for `Reg<INTERRUPT_CLEAR_SPEC>`"]
pub type INTERRUPT_CLEAR = crate::Reg<interrupt_clear::INTERRUPT_CLEAR_SPEC>;
#[doc = "Clear interrupt register"]
pub mod interrupt_clear;