@@ -14,7 +14,7 @@ use crate::{
14
14
} ,
15
15
gpiog:: { PG0 , PG1 , PG10 , PG11 , PG12 , PG14 , PG15 , PG6 , PG7 , PG9 } ,
16
16
gpioh:: { PH2 , PH3 } ,
17
- Alternate , AF10 , AF9 ,
17
+ Alternate , AF0 , AF10 , AF11 , AF12 , AF3 , AF4 , AF6 , AF9 ,
18
18
} ,
19
19
rcc:: { rec, CoreClocks , ResetEnable } ,
20
20
stm32,
@@ -47,165 +47,177 @@ pub trait PinIo7<OSPI> {}
47
47
// {
48
48
// }
49
49
50
- // macro_rules! pins {
51
- // (Bank1: [IO0: [$($IO0:ty),*] IO1: [$($IO1:ty),*] IO2: [$($IO2:ty),*] IO3: [$($IO3:ty),*]]) => {
52
- // $(
53
- // impl PinIo0Bank1 for $IO0 {}
54
- // )*
55
- // $(
56
- // impl PinIo1Bank1 for $IO1 {}
57
- // )*
58
- // $(
59
- // impl PinIo2Bank1 for $IO2 {}
60
- // )*
61
- // $(
62
- // impl PinIo3Bank1 for $IO3 {}
63
- // )*
64
- // };
65
-
66
- // (Bank2: [IO0: [$($IO0:ty),*] IO1: [$($IO1:ty),*] IO2: [$($IO2:ty),*] IO3: [$($IO3:ty),*]]) => {
67
- // $(
68
- // impl PinIo0Bank2 for $IO0 {}
69
- // )*
70
- // $(
71
- // impl PinIo1Bank2 for $IO1 {}
72
- // )*
73
- // $(
74
- // impl PinIo2Bank2 for $IO2 {}
75
- // )*
76
- // $(
77
- // impl PinIo3Bank2 for $IO3 {}
78
- // )*
79
- // };
80
-
81
- // (SCK: [$($SCK:ty),*], Bank1: $bank1:tt, Bank2: $bank2:tt) => {
82
- // $(
83
- // impl PinSck for $SCK {}
84
- // )*
85
- // pins!(Bank1: $bank1);
86
- // pins!(Bank2: $bank2);
87
- // };
88
- // }
50
+ macro_rules! pins {
51
+ (
52
+ $( $BANK: ident:
53
+ CLK : [ $( $CLK: ty) ,* ] NCLK : [ $( $NCLK: ty) ,* ] DQS : [ $( $DQS: ty) ,* ] NCS : [ $( $NCS: ty) ,* ]
54
+ IO0 : [ $( $IO0: ty) ,* ] IO1 : [ $( $IO1: ty) ,* ] IO2 : [ $( $IO2: ty) ,* ] IO3 : [ $( $IO3: ty) ,* ]
55
+ IO4 : [ $( $IO4: ty) ,* ] IO5 : [ $( $IO5: ty) ,* ] IO6 : [ $( $IO6: ty) ,* ] IO7 : [ $( $IO7: ty) ,* ]
56
+ ) *
57
+ ) => {
58
+ $(
59
+ $(
60
+ impl PinClk <stm32:: $BANK> for $CLK { }
61
+ ) *
62
+ $(
63
+ impl PinNclk <stm32:: $BANK> for $NCLK { }
64
+ ) *
65
+ $(
66
+ impl PinDQS <stm32:: $BANK> for $DQS { }
67
+ ) *
68
+ $(
69
+ impl PinNCS <stm32:: $BANK> for $NCS { }
70
+ ) *
71
+ $(
72
+ impl PinIo0 <stm32:: $BANK> for $IO0 { }
73
+ ) *
74
+ $(
75
+ impl PinIo1 <stm32:: $BANK> for $IO1 { }
76
+ ) *
77
+ $(
78
+ impl PinIo2 <stm32:: $BANK> for $IO2 { }
79
+ ) *
80
+ $(
81
+ impl PinIo3 <stm32:: $BANK> for $IO3 { }
82
+ ) *
83
+ $(
84
+ impl PinIo4 <stm32:: $BANK> for $IO4 { }
85
+ ) *
86
+ $(
87
+ impl PinIo5 <stm32:: $BANK> for $IO5 { }
88
+ ) *
89
+ $(
90
+ impl PinIo6 <stm32:: $BANK> for $IO6 { }
91
+ ) *
92
+ $(
93
+ impl PinIo7 <stm32:: $BANK> for $IO7 { }
94
+ ) *
95
+ ) *
96
+ } ;
97
+ }
89
98
90
- // pins! {
91
- // OCTOSPIM_P1:
92
- // CLK: [
93
- // PA3<Alternate<AF12>>,
94
- // PB2<Alternate<AF9>>,
95
- // PF10<Alternate<AF9>>
96
- // ]
97
- // NCLK: [
98
- // PB12<Alternate<AF3>>,
99
- // PF11<Alternate<AF9>>
100
- // ]
101
- // DQS: [
102
- // PA1<Alternate<AF12>>,
103
- // PB2<Alternate<AF10>>,
104
- // PC5<Alternate<AF10>>
105
- // ]
106
- // NCS: [
107
- // PB6<Alternate<AF10>>,
108
- // PB10<Alternate<AF9>>,
109
- // PC11<Alternate<AF9>>,
110
- // PE11<Alternate<AF11>>,
111
- // PG6<Alternate<AF10>>
112
- // ]
113
- // IO0: [
114
- // PA2<Alternate<AF6>>,
115
- // PB1<Alternate<AF4>>,
116
- // PB12<Alternate<AF12>>,
117
- // PC3<Alternate<AF9>>,
118
- // PC3<Alternate<AF0>>,
119
- // PC9<Alternate<AF9>>,
120
- // PD11<Alternate<AF9>>,
121
- // PF8<Alternate<AF10>>
122
- // ]
123
- // IO1: [
124
- // PB0<Alternate<AF4>>,
125
- // PC10<Alternate<AF9>>,
126
- // PD12<Alternate<AF9>>,
127
- // PF9<Alternate<AF10>>
128
- // ]
129
- // IO2: [
130
- // PA3<Alternate<AF6>>,
131
- // PA7<Alternate<AF10>>,
132
- // PB13<Alternate<AF4>>,
133
- // PC2<Alternate<AF9>>,
134
- // PC2<Alternate<AF0>>,
135
- // PE2<Alternate<AF9>>,
136
- // PF7<Alternate<AF10>>
137
- // ]
138
- // IO3: [
139
- // PA1<Alternate<AF9>>,
140
- // PA6<Alternate<AF6>>,
141
- // PD13<Alternate<AF9>>,
142
- // PF6<Alternate<AF10>>
143
- // ]
144
- // IO4: [
145
- // PC1<Alternate<AF10>>,
146
- // PD4<Alternate<AF10>>,
147
- // PE7<Alternate<AF10>>,
148
- // PH2<Alternate<AF9>>
149
- // ]
150
- // IO5: [
151
- // PC2<Alternate<AF4>>,
152
- // PC2<Alternate<AF0>>,
153
- // PD5<Alternate<AF10>>,
154
- // PE8<Alternate<AF10>>,
155
- // PH3<Alternate<AF9>>
156
- // ]
157
- // IO6: [
158
- // PC3<Alternate<AF4>>,
159
- // PC3<Alternate<AF0>>,
160
- // PD6<Alternate<AF10>>,
161
- // PE9<Alternate<AF10>>,
162
- // PG9<Alternate<AF9>>
163
- // ]
164
- // IO7: [
165
- // PD7<Alternate<AF10>>,
166
- // PE10<Alternate<AF10>>,
167
- // PG14<Alternate<AF9>>
168
- // ]
169
- // OCTOSPIM_P2:
170
- // CLK: [
171
- // PF4<Alternate<AF9>>
172
- // ]
173
- // NCLK: [
174
- // PF5<Alternate<AF9>>
175
- // ]
176
- // DQS: [
177
- // PF12<Alternate<AF9>>,
178
- // PG7<Alternate<AF9>>,
179
- // PG15<Alternate<AF9>>
180
- // ]
181
- // NCS: [
182
- // PG12<Alternate<AF3>>
183
- // ]
184
- // IO0: [
185
- // PF0<Alternate<AF9>>
186
- // ]
187
- // IO1: [
188
- // PF1<Alternate<AF9>>
189
- // ]
190
- // IO2: [
191
- // PF2<Alternate<AF9>>
192
- // ]
193
- // IO3: [
194
- // PF3<Alternate<AF9>>
195
- // ]
196
- // IO4: [
197
- // PG0<Alternate<AF9>>
198
- // ]
199
- // IO5: [
200
- // PG1<Alternate<AF9>>
201
- // ]
202
- // IO6: [
203
- // PG10<Alternate<AF3>>
204
- // ]
205
- // IO7: [
206
- // PG11<Alternate<AF9>>
207
- // ]
208
- // }
99
+ #[ cfg( any( feature = "rm0468" ) ) ] // TODO
100
+ pins ! {
101
+ OCTOSPI1 :
102
+ CLK : [
103
+ PA3 <Alternate <AF12 >>,
104
+ PB2 <Alternate <AF9 >>,
105
+ PF10 <Alternate <AF9 >>
106
+ ]
107
+ NCLK : [
108
+ PB12 <Alternate <AF3 >>,
109
+ PF11 <Alternate <AF9 >>
110
+ ]
111
+ DQS : [
112
+ PA1 <Alternate <AF12 >>,
113
+ PB2 <Alternate <AF10 >>,
114
+ PC5 <Alternate <AF10 >>
115
+ ]
116
+ NCS : [
117
+ PB6 <Alternate <AF10 >>,
118
+ PB10 <Alternate <AF9 >>,
119
+ PC11 <Alternate <AF9 >>,
120
+ PE11 <Alternate <AF11 >>,
121
+ PG6 <Alternate <AF10 >>
122
+ ]
123
+ IO0 : [
124
+ PA2 <Alternate <AF6 >>,
125
+ PB1 <Alternate <AF4 >>,
126
+ PB12 <Alternate <AF12 >>,
127
+ PC3 <Alternate <AF9 >>,
128
+ PC3 <Alternate <AF0 >>,
129
+ PC9 <Alternate <AF9 >>,
130
+ PD11 <Alternate <AF9 >>,
131
+ PF8 <Alternate <AF10 >>
132
+ ]
133
+ IO1 : [
134
+ PB0 <Alternate <AF4 >>,
135
+ PC10 <Alternate <AF9 >>,
136
+ PD12 <Alternate <AF9 >>,
137
+ PF9 <Alternate <AF10 >>
138
+ ]
139
+ IO2 : [
140
+ PA3 <Alternate <AF6 >>,
141
+ PA7 <Alternate <AF10 >>,
142
+ PB13 <Alternate <AF4 >>,
143
+ PC2 <Alternate <AF9 >>,
144
+ PC2 <Alternate <AF0 >>,
145
+ PE2 <Alternate <AF9 >>,
146
+ PF7 <Alternate <AF10 >>
147
+ ]
148
+ IO3 : [
149
+ PA1 <Alternate <AF9 >>,
150
+ PA6 <Alternate <AF6 >>,
151
+ PD13 <Alternate <AF9 >>,
152
+ PF6 <Alternate <AF10 >>
153
+ ]
154
+ IO4 : [
155
+ PC1 <Alternate <AF10 >>,
156
+ PD4 <Alternate <AF10 >>,
157
+ PE7 <Alternate <AF10 >>,
158
+ PH2 <Alternate <AF9 >>
159
+ ]
160
+ IO5 : [
161
+ PC2 <Alternate <AF4 >>,
162
+ PC2 <Alternate <AF0 >>,
163
+ PD5 <Alternate <AF10 >>,
164
+ PE8 <Alternate <AF10 >>,
165
+ PH3 <Alternate <AF9 >>
166
+ ]
167
+ IO6 : [
168
+ PC3 <Alternate <AF4 >>,
169
+ PC3 <Alternate <AF0 >>,
170
+ PD6 <Alternate <AF10 >>,
171
+ PE9 <Alternate <AF10 >>,
172
+ PG9 <Alternate <AF9 >>
173
+ ]
174
+ IO7 : [
175
+ PD7 <Alternate <AF10 >>,
176
+ PE10 <Alternate <AF10 >>,
177
+ PG14 <Alternate <AF9 >>
178
+ ]
179
+ }
180
+ pins ! {
181
+ OCTOSPI2 :
182
+ CLK : [
183
+ PF4 <Alternate <AF9 >>
184
+ ]
185
+ NCLK : [
186
+ PF5 <Alternate <AF9 >>
187
+ ]
188
+ DQS : [
189
+ PF12 <Alternate <AF9 >>,
190
+ PG7 <Alternate <AF9 >>,
191
+ PG15 <Alternate <AF9 >>
192
+ ]
193
+ NCS : [
194
+ PG12 <Alternate <AF3 >>
195
+ ]
196
+ IO0 : [
197
+ PF0 <Alternate <AF9 >>
198
+ ]
199
+ IO1 : [
200
+ PF1 <Alternate <AF9 >>
201
+ ]
202
+ IO2 : [
203
+ PF2 <Alternate <AF9 >>
204
+ ]
205
+ IO3 : [
206
+ PF3 <Alternate <AF9 >>
207
+ ]
208
+ IO4 : [
209
+ PG0 <Alternate <AF9 >>
210
+ ]
211
+ IO5 : [
212
+ PG1 <Alternate <AF9 >>
213
+ ]
214
+ IO6 : [
215
+ PG10 <Alternate <AF3 >>
216
+ ]
217
+ IO7 : [
218
+ PG11 <Alternate <AF9 >>
219
+ ]
220
+ }
209
221
210
222
pub trait OctospiExt < OSPI > : Sized {
211
223
/// The `ResetEnable` singleton for this peripheral
0 commit comments