aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-nrf/src/spim.rs39
1 files changed, 22 insertions, 17 deletions
diff --git a/embassy-nrf/src/spim.rs b/embassy-nrf/src/spim.rs
index a29c1a3ee..0ca18d88c 100644
--- a/embassy-nrf/src/spim.rs
+++ b/embassy-nrf/src/spim.rs
@@ -100,24 +100,29 @@ impl<'d, T: Instance> Spim<'d, T> {
100 // Configure mode. 100 // Configure mode.
101 let mode = config.mode; 101 let mode = config.mode;
102 r.config.write(|w| { 102 r.config.write(|w| {
103 // Can't match on `mode` due to embedded-hal, see https://github.com/rust-embedded/embedded-hal/pull/126 103 match mode {
104 if mode == MODE_0 { 104 MODE_0 => {
105 w.order().msb_first(); 105 w.order().msb_first();
106 w.cpol().active_high(); 106 w.cpol().active_high();
107 w.cpha().leading(); 107 w.cpha().leading();
108 } else if mode == MODE_1 { 108 }
109 w.order().msb_first(); 109 MODE_1 => {
110 w.cpol().active_high(); 110 w.order().msb_first();
111 w.cpha().trailing(); 111 w.cpol().active_high();
112 } else if mode == MODE_2 { 112 w.cpha().trailing();
113 w.order().msb_first(); 113 }
114 w.cpol().active_low(); 114 MODE_2 => {
115 w.cpha().leading(); 115 w.order().msb_first();
116 } else { 116 w.cpol().active_low();
117 w.order().msb_first(); 117 w.cpha().leading();
118 w.cpol().active_low(); 118 }
119 w.cpha().trailing(); 119 MODE_3 => {
120 w.order().msb_first();
121 w.cpol().active_low();
122 w.cpha().trailing();
123 }
120 } 124 }
125
121 w 126 w
122 }); 127 });
123 128