diff options
| author | Dario Nieuwenhuis <[email protected]> | 2021-06-03 12:05:22 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-06-03 12:05:22 +0200 |
| commit | 31feed53d5b4b1d6cb12e8e49997b762b7fddd4f (patch) | |
| tree | 25463dd3fcf5c244cab2bcb48ef52d73d6778c03 | |
| parent | 0dd00c94aa1ff8f12ce311b985d0e7eb544bbbd8 (diff) | |
| parent | 990d83d424f12d3935944aa133a5c63e8199476f (diff) | |
Merge pull request #220 from folkertdev/match-on-mode
match on SPI mode
| -rw-r--r-- | embassy-nrf/src/spim.rs | 39 |
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 | ||
