aboutsummaryrefslogtreecommitdiff
path: root/embassy-rp
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2021-07-20 09:43:06 +0200
committerDario Nieuwenhuis <[email protected]>2021-07-20 09:43:06 +0200
commitda33b3a4d2fbb188c1c867e9092e7fec10b3a88e (patch)
treed0b2ef80877fca47afd4d2c6e38170a91a744601 /embassy-rp
parentdbff5cc2321b7408086bf3854a9aaeb8cc0476e6 (diff)
rp/spi: disable+enable when setting frequency
Diffstat (limited to 'embassy-rp')
-rw-r--r--embassy-rp/src/spi.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/embassy-rp/src/spi.rs b/embassy-rp/src/spi.rs
index 19c9d07c0..959ad9b0f 100644
--- a/embassy-rp/src/spi.rs
+++ b/embassy-rp/src/spi.rs
@@ -142,10 +142,17 @@ impl<'d, T: Instance> Spi<'d, T> {
142 let (presc, postdiv) = calc_prescs(freq); 142 let (presc, postdiv) = calc_prescs(freq);
143 let p = self.inner.regs(); 143 let p = self.inner.regs();
144 unsafe { 144 unsafe {
145 // disable
146 p.cr1().write(|w| w.set_sse(false));
147
148 // change stuff
145 p.cpsr().write(|w| w.set_cpsdvsr(presc)); 149 p.cpsr().write(|w| w.set_cpsdvsr(presc));
146 p.cr0().modify(|w| { 150 p.cr0().modify(|w| {
147 w.set_scr(postdiv); 151 w.set_scr(postdiv);
148 }); 152 });
153
154 // enable
155 p.cr1().write(|w| w.set_sse(true));
149 } 156 }
150 } 157 }
151} 158}