sam3_hal/pio/
pioa.rs

1//! Wrapper struct for [`PIOA`] and its pins.
2#![allow(unused_imports)]
3
4#[cfg(feature = "3fn")]
5use crate::pio::peripheral::PeripheralC;
6#[cfg(feature = "4fn")]
7use crate::pio::peripheral::PeripheralD;
8use crate::{
9    pac::PIOA,
10    pio::peripheral::{PeripheralA, PeripheralB},
11};
12use seq_macro::seq;
13
14seq! {N in 0..32 {
15    crate::pio::def_pioc! {
16        PioA(PIOA) => {
17            #(Pa: N,)*
18        }
19    }
20}}
21
22#[cfg(any(feature = "sam3a", feature = "sam3x"))]
23crate::pio::pin_peripherals! {
24    pio: PIOA,
25    pinopts: [
26        [pin: Pa0, peripherals: [A, B]],
27        [pin: Pa1, peripherals: [A, B]],
28        [pin: Pa2, peripherals: [A, B]],
29        [pin: Pa3, peripherals: [A, B]],
30        [pin: Pa4, peripherals: [A, B]],
31        [pin: Pa5, peripherals: [A, B]],
32        [pin: Pa6, peripherals: [A, B]],
33        [pin: Pa7, peripherals: [A, B]],
34        [pin: Pa8, peripherals: [A, B]],
35        [pin: Pa9, peripherals: [A, B]],
36        [pin: Pa10, peripherals: [A, B]],
37        [pin: Pa11, peripherals: [A, B]],
38        [pin: Pa12, peripherals: [A, B]],
39        [pin: Pa13, peripherals: [A, B]],
40        [pin: Pa14, peripherals: [A, B]],
41        [pin: Pa15, peripherals: [A, B]],
42        [pin: Pa16, peripherals: [A, B]],
43        [pin: Pa17, peripherals: [A, B]],
44        [pin: Pa18, peripherals: [A, B]],
45        [pin: Pa19, peripherals: [A, B]],
46        [pin: Pa20, peripherals: [A, B]],
47        [pin: Pa21, peripherals: [A, B]],
48        [pin: Pa22, peripherals: [A, B]],
49        [pin: Pa23, peripherals: [A, B]],
50        [pin: Pa24, peripherals: [A, B]],
51        [pin: Pa25, peripherals: [A, B]],
52        [pin: Pa26, peripherals: [A, B]],
53        [pin: Pa27, peripherals: [A, B]],
54        [pin: Pa28, peripherals: [A, B]],
55        [pin: Pa29, peripherals: [A, B]],
56    ],
57}
58
59#[cfg(feature = "sam3x217")]
60crate::pio::pin_peripherals! {
61    pio: PIOA,
62    pinopts: [
63        [pin: Pa30, peripherals: [A, B]],
64        [pin: Pa31, peripherals: [A, B]],
65    ],
66}
67
68#[cfg(feature = "sam3n")]
69crate::pio::pin_peripherals! {
70    pio: PIOA,
71    pinopts: [
72        [pin: Pa0, peripherals: [A, B]],
73        [pin: Pa1, peripherals: [A, B]],
74        [pin: Pa2, peripherals: [A, B, C]],
75        [pin: Pa3, peripherals: [A, B]],
76        [pin: Pa4, peripherals: [A, B]],
77        [pin: Pa5, peripherals: [A, B]],
78        [pin: Pa6, peripherals: [A, B]],
79        [pin: Pa7, peripherals: [A, B]],
80        [pin: Pa8, peripherals: [A, B]],
81        [pin: Pa9, peripherals: [A, B]],
82        [pin: Pa10, peripherals: [A, B]],
83        [pin: Pa11, peripherals: [A, B]],
84        [pin: Pa12, peripherals: [A, B]],
85        [pin: Pa13, peripherals: [A, B]],
86        [pin: Pa14, peripherals: [A, B]],
87        [pin: Pa15, peripherals: [B]],
88        [pin: Pa16, peripherals: [B]],
89        [pin: Pa17, peripherals: [B]],
90        [pin: Pa18, peripherals: [B]],
91    ],
92}
93
94#[cfg(any(feature = "sam3n64", feature = "sam3n100"))]
95crate::pio::pin_peripherals! {
96    pio: PIOA,
97    pinopts: [
98        [pin: Pa21, peripherals: [A, B]],
99        [pin: Pa22, peripherals: [A, B]],
100        [pin: Pa23, peripherals: [A, B]],
101        [pin: Pa24, peripherals: [A, B]],
102        [pin: Pa25, peripherals: [A, B]],
103        [pin: Pa26, peripherals: [B]],
104        [pin: Pa27, peripherals: [B]],
105        [pin: Pa28, peripherals: [B]],
106        [pin: Pa29, peripherals: [B]],
107        [pin: Pa30, peripherals: [B]],
108        [pin: Pa31, peripherals: [A, B]],
109    ],
110}
111
112#[cfg(feature = "sam3s")]
113crate::pio::pin_peripherals! {
114    pio: PIOA,
115    pinopts: [
116        [pin: Pa0, peripherals: [A, B, C]],
117        [pin: Pa1, peripherals: [A, B, C]],
118        [pin: Pa2, peripherals: [A, B, C]],
119        [pin: Pa3, peripherals: [A, B]],
120        [pin: Pa4, peripherals: [A, B]],
121        [pin: Pa5, peripherals: [A, B]],
122        [pin: Pa6, peripherals: [A, B]],
123        [pin: Pa7, peripherals: [A, B]],
124        [pin: Pa8, peripherals: [A, B]],
125        [pin: Pa9, peripherals: [A, B, C]],
126        [pin: Pa10, peripherals: [A, B]],
127        [pin: Pa11, peripherals: [A, B]],
128        [pin: Pa12, peripherals: [A, B]],
129        [pin: Pa13, peripherals: [A, B]],
130        [pin: Pa14, peripherals: [A, B]],
131        [pin: Pa15, peripherals: [A, B, C]],
132        [pin: Pa16, peripherals: [A, B, C]],
133        [pin: Pa17, peripherals: [A, B, C]],
134        [pin: Pa18, peripherals: [A, B, C]],
135        [pin: Pa19, peripherals: [A, B, C]],
136        [pin: Pa20, peripherals: [A, B, C]],
137    ],
138}
139
140#[cfg(any(feature = "sam3s64", feature = "sam3s100"))]
141crate::pio::pin_peripherals! {
142    pio: PIOA,
143    pinopts: [
144        [pin: Pa21, peripherals: [A, B]],
145        [pin: Pa22, peripherals: [A, B, C]],
146        [pin: Pa23, peripherals: [A, B, C]],
147        [pin: Pa24, peripherals: [A, B, C]],
148        [pin: Pa25, peripherals: [A, B, C]],
149        [pin: Pa26, peripherals: [A, B, C]],
150        [pin: Pa27, peripherals: [A, B, C]],
151        [pin: Pa28, peripherals: [A, B, C]],
152        [pin: Pa29, peripherals: [A, B, C]],
153        [pin: Pa30, peripherals: [A, B, C]],
154        [pin: Pa31, peripherals: [A, B, C]],
155    ],
156}
157
158#[cfg(feature = "sam3s8")]
159crate::pio::pin_peripherals! {
160    pio: PIOA,
161    pinopts: [
162        [pin: Pa0, peripherals: [A, B, C]],
163        [pin: Pa1, peripherals: [A, B, C]],
164        [pin: Pa2, peripherals: [A, B, C]],
165        [pin: Pa3, peripherals: [A, B]],
166        [pin: Pa4, peripherals: [A, B]],
167        [pin: Pa5, peripherals: [A, B]],
168        [pin: Pa6, peripherals: [A, B]],
169        [pin: Pa7, peripherals: [A, B]],
170        [pin: Pa8, peripherals: [A, B, C]],
171        [pin: Pa9, peripherals: [A, B]],
172        [pin: Pa10, peripherals: [A, B]],
173        [pin: Pa11, peripherals: [A, B]],
174        [pin: Pa12, peripherals: [A, B]],
175        [pin: Pa13, peripherals: [A, B]],
176        [pin: Pa14, peripherals: [A, B]],
177        [pin: Pa15, peripherals: [A, B, C, D]],
178        [pin: Pa16, peripherals: [A, B, C, D]],
179        [pin: Pa17, peripherals: [A, B, C]],
180        [pin: Pa18, peripherals: [A, B, C]],
181        [pin: Pa19, peripherals: [A, B, C]],
182        [pin: Pa20, peripherals: [A, B, C]],
183    ],
184}
185
186#[cfg(any(feature = "sam3s864", feature = "sam3s8100"))]
187crate::pio::pin_peripherals! {
188    pio: PIOA,
189    pinopts: [
190        [pin: Pa21, peripherals: [A, B]],
191        [pin: Pa22, peripherals: [A, B, C]],
192        [pin: Pa23, peripherals: [A, B, C, D]],
193        [pin: Pa24, peripherals: [A, B, C, D]],
194        [pin: Pa25, peripherals: [A, B, C, D]],
195        [pin: Pa26, peripherals: [A, B, C, D]],
196        [pin: Pa27, peripherals: [A, B, C, D]],
197        [pin: Pa28, peripherals: [A, B, C, D]],
198        [pin: Pa29, peripherals: [A, B, C, D]],
199        [pin: Pa30, peripherals: [A, B, C, D]],
200        [pin: Pa31, peripherals: [A, B, C, D]],
201    ],
202}
203
204#[cfg(feature = "sam3u")]
205crate::pio::pin_peripherals! {
206    pio: PIOA,
207    pinopts: [
208        [pin: Pa0, peripherals: [A, B]],
209        [pin: Pa1, peripherals: [A, B]],
210        [pin: Pa2, peripherals: [A, B]],
211        [pin: Pa3, peripherals: [A, B]],
212        [pin: Pa4, peripherals: [A, B]],
213        [pin: Pa5, peripherals: [A, B]],
214        [pin: Pa6, peripherals: [A, B]],
215        [pin: Pa7, peripherals: [A, B]],
216        [pin: Pa8, peripherals: [A, B]],
217        [pin: Pa9, peripherals: [A, B]],
218        [pin: Pa10, peripherals: [A, B]],
219        [pin: Pa11, peripherals: [A, B]],
220        [pin: Pa12, peripherals: [A, B]],
221        [pin: Pa13, peripherals: [A]],
222        [pin: Pa14, peripherals: [A]],
223        [pin: Pa15, peripherals: [A, B]],
224        [pin: Pa16, peripherals: [A, B]],
225        [pin: Pa17, peripherals: [A, B]],
226        [pin: Pa18, peripherals: [A, B]],
227        [pin: Pa19, peripherals: [A, B]],
228        [pin: Pa20, peripherals: [A, B]],
229        [pin: Pa21, peripherals: [A, B]],
230        [pin: Pa22, peripherals: [A, B]],
231        [pin: Pa23, peripherals: [A, B]],
232        [pin: Pa24, peripherals: [A, B]],
233        [pin: Pa25, peripherals: [A, B]],
234        [pin: Pa26, peripherals: [A, B]],
235        [pin: Pa27, peripherals: [A, B]],
236        [pin: Pa28, peripherals: [A, B]],
237        [pin: Pa29, peripherals: [A, B]],
238        [pin: Pa30, peripherals: [A, B]],
239        [pin: Pa31, peripherals: [A, B]],
240    ],
241}