@@ -16,11 +16,31 @@ pub trait PinD0 {}
16
16
pub trait PinD1 { }
17
17
pub trait PinD2 { }
18
18
pub trait PinD3 { }
19
+ pub trait PinD4 { }
20
+ pub trait PinD5 { }
21
+ pub trait PinD6 { }
22
+ pub trait PinD7 { }
19
23
20
24
pub trait Pins {
21
25
const BUSWIDTH : Buswidth ;
22
26
}
23
27
28
+ impl < CLK , CMD , D0 , D1 , D2 , D3 , D4 , D5 , D6 , D7 > Pins for ( CLK , CMD , D0 , D1 , D2 , D3 , D4 , D5 , D6 , D7 )
29
+ where
30
+ CLK : PinClk ,
31
+ CMD : PinCmd ,
32
+ D0 : PinD0 ,
33
+ D1 : PinD1 ,
34
+ D2 : PinD2 ,
35
+ D3 : PinD3 ,
36
+ D4 : PinD4 ,
37
+ D5 : PinD5 ,
38
+ D6 : PinD6 ,
39
+ D7 : PinD7 ,
40
+ {
41
+ const BUSWIDTH : Buswidth = Buswidth :: Buswidth8 ;
42
+ }
43
+
24
44
impl < CLK , CMD , D0 , D1 , D2 , D3 > Pins for ( CLK , CMD , D0 , D1 , D2 , D3 )
25
45
where
26
46
CLK : PinClk ,
43
63
}
44
64
45
65
macro_rules! pins {
46
- ( $( CLK : [ $( $CLK: ty) ,* ] CMD : [ $( $CMD: ty) ,* ] D0 : [ $( $D0: ty) ,* ] D1 : [ $( $D1: ty) ,* ] D2 : [ $( $D2: ty) ,* ] D3 : [ $( $D3: ty) ,* ] ) +) => {
66
+ ( $( CLK : [ $( $CLK: ty) ,* ] CMD : [ $( $CMD: ty) ,* ] D0 : [ $( $D0: ty) ,* ] D1 : [ $( $D1: ty) ,* ] D2 : [ $( $D2: ty) ,* ] D3 : [ $( $D3: ty) ,* ] D4 : [ $ ( $D4 : ty ) , * ] D5 : [ $ ( $D5 : ty ) , * ] D6 : [ $ ( $D6 : ty ) , * ] D7 : [ $ ( $D7 : ty ) , * ] ) +) => {
47
67
$(
48
68
$(
49
69
impl PinClk for $CLK { }
@@ -63,6 +83,18 @@ macro_rules! pins {
63
83
$(
64
84
impl PinD3 for $D3 { }
65
85
) *
86
+ $(
87
+ impl PinD4 for $D4 { }
88
+ ) *
89
+ $(
90
+ impl PinD5 for $D5 { }
91
+ ) *
92
+ $(
93
+ impl PinD6 for $D6 { }
94
+ ) *
95
+ $(
96
+ impl PinD7 for $D7 { }
97
+ ) *
66
98
) +
67
99
}
68
100
}
@@ -92,6 +124,10 @@ pins! {
92
124
D1 : [ gpio:: PC9 <Alternate <PushPull , 12 >>]
93
125
D2 : [ gpio:: PC10 <Alternate <PushPull , 12 >>]
94
126
D3 : [ gpio:: PC11 <Alternate <PushPull , 12 >>]
127
+ D4 : [ gpio:: PB8 <Alternate <PushPull , 12 >>]
128
+ D5 : [ gpio:: PB9 <Alternate <PushPull , 12 >>]
129
+ D6 : [ gpio:: PC6 <Alternate <PushPull , 12 >>]
130
+ D7 : [ gpio:: PC7 <Alternate <PushPull , 12 >>]
95
131
}
96
132
97
133
#[ cfg( any( feature = "stm32f412" , feature = "stm32f413" , feature = "stm32f423" ) ) ]
@@ -102,6 +138,10 @@ pins! {
102
138
D1 : [ gpio:: PA8 <Alternate <PushPull , 12 >>]
103
139
D2 : [ gpio:: PA9 <Alternate <PushPull , 12 >>]
104
140
D3 : [ gpio:: PB5 <Alternate <PushPull , 12 >>]
141
+ D4 : [ ]
142
+ D5 : [ ]
143
+ D6 : [ gpio:: PB14 <Alternate <PushPull , 12 >>]
144
+ D7 : [ gpio:: PB10 <Alternate <PushPull , 12 >>]
105
145
}
106
146
107
147
#[ cfg( feature = "stm32f411" ) ]
@@ -112,12 +152,17 @@ pins! {
112
152
D1 : [ gpio:: PA8 <Alternate <PushPull , 12 >>]
113
153
D2 : [ gpio:: PA9 <Alternate <PushPull , 12 >>]
114
154
D3 : [ gpio:: PB5 <Alternate <PushPull , 12 >>]
155
+ D4 : [ ]
156
+ D5 : [ ]
157
+ D6 : [ gpio:: PB14 <Alternate <PushPull , 12 >>]
158
+ D7 : [ gpio:: PB10 <Alternate <PushPull , 12 >>]
115
159
}
116
160
117
161
#[ derive( Copy , Clone , Eq , PartialEq ) ]
118
162
pub enum Buswidth {
119
163
Buswidth1 = 0 ,
120
164
Buswidth4 = 1 ,
165
+ Buswidth8 = 2 ,
121
166
}
122
167
123
168
/// Clock frequency of a SDIO bus.
0 commit comments