sam3_hal/pio/
pioc.rs

1//! Wrapper struct for [`PIOC`] 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::PIOC,
10    pio::peripheral::{PeripheralA, PeripheralB},
11};
12use seq_macro::seq;
13
14#[cfg(any(feature = "sam3a", feature = "sam3x"))]
15seq! {N in 0..31 { // why is this only different for these?????????????????????
16    crate::pio::def_pioc! {
17        PioC(PIOC) => {
18            #(Pc: N,)*
19        }
20    }
21}}
22
23#[cfg(any(feature = "sam3x144", feature = "sam3x217"))]
24crate::pio::pin_peripherals! {
25    pio: PIOC,
26    pinopts: [
27        [pin: Pc2, peripherals: [A, B]],
28        [pin: Pc3, peripherals: [A, B]],
29        [pin: Pc4, peripherals: [A, B]],
30        [pin: Pc5, peripherals: [A, B]],
31        [pin: Pc6, peripherals: [A, B]],
32        [pin: Pc7, peripherals: [A, B]],
33        [pin: Pc8, peripherals: [A, B]],
34        [pin: Pc9, peripherals: [A, B]],
35        [pin: Pc10, peripherals: [A, B]],
36        [pin: Pc11, peripherals: [A, B]],
37        [pin: Pc12, peripherals: [A, B]],
38        [pin: Pc13, peripherals: [A, B]],
39        [pin: Pc14, peripherals: [A, B]],
40        [pin: Pc15, peripherals: [A, B]],
41        [pin: Pc16, peripherals: [A, B]],
42        [pin: Pc17, peripherals: [A, B]],
43        [pin: Pc18, peripherals: [A, B]],
44        [pin: Pc19, peripherals: [A, B]],
45        [pin: Pc20, peripherals: [A, B]],
46        [pin: Pc21, peripherals: [A, B]],
47        [pin: Pc22, peripherals: [A, B]],
48        [pin: Pc23, peripherals: [A, B]],
49        [pin: Pc24, peripherals: [A, B]],
50        [pin: Pc25, peripherals: [A, B]],
51        [pin: Pc26, peripherals: [A, B]],
52        [pin: Pc27, peripherals: [A, B]],
53        [pin: Pc28, peripherals: [A, B]],
54        [pin: Pc29, peripherals: [A, B]],
55        [pin: Pc30, peripherals: [A, B]],
56    ],
57}
58
59#[cfg(any(
60    feature = "sam3n100",
61    feature = "sam3s100",
62    feature = "sam3s8100",
63    feature = "sam3u144"
64))]
65seq! {N in 0..32 {
66    crate::pio::def_pioc! {
67        PioC(PIOC) => {
68            #(Pc: N,)*
69        }
70    }
71}}
72
73#[cfg(feature = "sam3n100")]
74crate::pio::pin_peripherals! {
75    pio: PIOC,
76    pinopts: [
77        [pin: Pc4, peripherals: [B]],
78        [pin: Pc7, peripherals: [B]],
79        [pin: Pc8, peripherals: [B]],
80        [pin: Pc9, peripherals: [B]],
81        [pin: Pc10, peripherals: [B]],
82        [pin: Pc11, peripherals: [B]],
83        [pin: Pc14, peripherals: [B]],
84        [pin: Pc16, peripherals: [B]],
85        [pin: Pc17, peripherals: [B]],
86        [pin: Pc18, peripherals: [B]],
87        [pin: Pc19, peripherals: [B]],
88        [pin: Pc20, peripherals: [B]],
89        [pin: Pc21, peripherals: [B]],
90        [pin: Pc22, peripherals: [B]],
91        [pin: Pc23, peripherals: [B]],
92        [pin: Pc24, peripherals: [B]],
93        [pin: Pc25, peripherals: [B]],
94        [pin: Pc26, peripherals: [B]],
95        [pin: Pc27, peripherals: [B]],
96        [pin: Pc28, peripherals: [B]],
97        [pin: Pc29, peripherals: [B]],
98        [pin: Pc30, peripherals: [B]],
99        [pin: Pc31, peripherals: [B]],
100    ],
101}
102
103#[cfg(feature = "sam3s100")]
104crate::pio::pin_peripherals! {
105    pio: PIOC,
106    pinopts: [
107        [pin: Pc0, peripherals: [A, B]],
108        [pin: Pc1, peripherals: [A, B]],
109        [pin: Pc2, peripherals: [A, B]],
110        [pin: Pc3, peripherals: [A, B]],
111        [pin: Pc4, peripherals: [A, B]],
112        [pin: Pc5, peripherals: [A]],
113        [pin: Pc6, peripherals: [A]],
114        [pin: Pc7, peripherals: [A]],
115        [pin: Pc8, peripherals: [A]],
116        [pin: Pc9, peripherals: [A]],
117        [pin: Pc10, peripherals: [A]],
118        [pin: Pc11, peripherals: [A]],
119        [pin: Pc12, peripherals: [A]],
120        [pin: Pc13, peripherals: [A, B]],
121        [pin: Pc14, peripherals: [A]],
122        [pin: Pc15, peripherals: [A, B]],
123        [pin: Pc16, peripherals: [A]],
124        [pin: Pc17, peripherals: [A]],
125        [pin: Pc18, peripherals: [A, B]],
126        [pin: Pc19, peripherals: [A, B]],
127        [pin: Pc20, peripherals: [A, B]],
128        [pin: Pc21, peripherals: [A, B]],
129        [pin: Pc22, peripherals: [A, B]],
130        [pin: Pc23, peripherals: [A, B]],
131        [pin: Pc24, peripherals: [A, B]],
132        [pin: Pc25, peripherals: [A, B]],
133        [pin: Pc26, peripherals: [A, B]],
134        [pin: Pc27, peripherals: [A, B]],
135        [pin: Pc28, peripherals: [A, B]],
136        [pin: Pc29, peripherals: [A, B]],
137        [pin: Pc30, peripherals: [A, B]],
138        [pin: Pc31, peripherals: [A, B]],
139    ],
140}
141
142#[cfg(feature = "sam3s8100")]
143crate::pio::pin_peripherals! {
144    pio: PIOC,
145    pinopts: [
146        [pin: Pc0, peripherals: [A, B]],
147        [pin: Pc1, peripherals: [A, B]],
148        [pin: Pc2, peripherals: [A, B]],
149        [pin: Pc3, peripherals: [A, B]],
150        [pin: Pc4, peripherals: [A, B]],
151        [pin: Pc5, peripherals: [A]],
152        [pin: Pc6, peripherals: [A]],
153        [pin: Pc7, peripherals: [A]],
154        [pin: Pc8, peripherals: [A]],
155        [pin: Pc9, peripherals: [A, B]],
156        [pin: Pc10, peripherals: [A, B]],
157        [pin: Pc11, peripherals: [A]],
158        [pin: Pc12, peripherals: [A]],
159        [pin: Pc13, peripherals: [A, B]],
160        [pin: Pc14, peripherals: [A, B]],
161        [pin: Pc15, peripherals: [A, B]],
162        [pin: Pc16, peripherals: [A, B]],
163        [pin: Pc17, peripherals: [A, B]],
164        [pin: Pc18, peripherals: [A, B]],
165        [pin: Pc19, peripherals: [A, B]],
166        [pin: Pc20, peripherals: [A, B]],
167        [pin: Pc21, peripherals: [A, B]],
168        [pin: Pc22, peripherals: [A, B]],
169        [pin: Pc23, peripherals: [A, B]],
170        [pin: Pc24, peripherals: [A, B]],
171        [pin: Pc25, peripherals: [A, B]],
172        [pin: Pc26, peripherals: [A, B]],
173        [pin: Pc27, peripherals: [A, B]],
174        [pin: Pc28, peripherals: [A, B]],
175        [pin: Pc29, peripherals: [A, B]],
176        [pin: Pc30, peripherals: [A, B]],
177        [pin: Pc31, peripherals: [A, B]],
178    ],
179}
180
181#[cfg(feature = "sam3u144")]
182crate::pio::pin_peripherals! {
183    pio: PIOC,
184    pinopts: [
185        [pin: Pc0, peripherals: [A]],
186        [pin: Pc1, peripherals: [A]],
187        [pin: Pc2, peripherals: [A]],
188        [pin: Pc3, peripherals: [A, B]],
189        [pin: Pc4, peripherals: [A, B]],
190        [pin: Pc5, peripherals: [A, B]],
191        [pin: Pc6, peripherals: [A, B]],
192        [pin: Pc7, peripherals: [A, B]],
193        [pin: Pc8, peripherals: [A, B]],
194        [pin: Pc9, peripherals: [A, B]],
195        [pin: Pc10, peripherals: [A, B]],
196        [pin: Pc11, peripherals: [A, B]],
197        [pin: Pc12, peripherals: [A, B]],
198        [pin: Pc13, peripherals: [A, B]],
199        [pin: Pc14, peripherals: [A, B]],
200        [pin: Pc15, peripherals: [A]],
201        [pin: Pc16, peripherals: [A, B]],
202        [pin: Pc17, peripherals: [A]],
203        [pin: Pc18, peripherals: [A]],
204        [pin: Pc19, peripherals: [A, B]],
205        [pin: Pc20, peripherals: [A]],
206        [pin: Pc21, peripherals: [A]],
207        [pin: Pc22, peripherals: [A]],
208        [pin: Pc23, peripherals: [A]],
209        [pin: Pc24, peripherals: [A, B]],
210        [pin: Pc25, peripherals: [A, B]],
211        [pin: Pc26, peripherals: [A, B]],
212        [pin: Pc27, peripherals: [A, B]],
213        [pin: Pc28, peripherals: [B]],
214        [pin: Pc29, peripherals: [A, B]],
215        [pin: Pc30, peripherals: [A, B]],
216        [pin: Pc31, peripherals: [A, B]],
217    ],
218}