From fe83daf45ff2a7e8b76425b53903d75548dc458f Mon Sep 17 00:00:00 2001
From: Jacob Rosenthal <jacobrosenthal@gmail.com>
Date: Thu, 11 Nov 2021 19:49:41 -0700
Subject: [PATCH] remove const generic

---
 embassy-nrf/src/pwm.rs | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/embassy-nrf/src/pwm.rs b/embassy-nrf/src/pwm.rs
index 642620673..a850aac2d 100644
--- a/embassy-nrf/src/pwm.rs
+++ b/embassy-nrf/src/pwm.rs
@@ -24,7 +24,7 @@ pub struct SimplePwm<'d, T: Instance> {
 
 /// SequencePwm allows you to offload the updating of a sequence of duty cycles
 /// to up to four channels, as well as repeat that sequence n times.
-pub struct SequencePwm<'d, T: Instance, const N: usize> {
+pub struct SequencePwm<'d, T: Instance> {
     phantom: PhantomData<&'d mut T>,
     ch0: Option<AnyPin>,
     ch1: Option<AnyPin>,
@@ -44,7 +44,7 @@ pub enum Error {
     DMABufferNotInDataMemory,
 }
 
-impl<'d, T: Instance, const N: usize> SequencePwm<'d, T, N> {
+impl<'d, T: Instance> SequencePwm<'d, T> {
     /// Creates the interface to a `SequencePwm`.
     ///
     /// Must be started by calling `start`
@@ -62,11 +62,11 @@ impl<'d, T: Instance, const N: usize> SequencePwm<'d, T, N> {
         ch2: impl Unborrow<Target = impl GpioOptionalPin> + 'd,
         ch3: impl Unborrow<Target = impl GpioOptionalPin> + 'd,
         config: SequenceConfig,
-        sequence: [u16; N],
+        sequence: &mut [u16],
     ) -> Result<Self, Error> {
-        slice_in_ram_or(&sequence, Error::DMABufferNotInDataMemory)?;
+        slice_in_ram_or(sequence, Error::DMABufferNotInDataMemory)?;
 
-        if N > 32767 {
+        if sequence.len() > 32767 {
             return Err(Error::SequenceTooLong);
         }
 
@@ -108,7 +108,9 @@ impl<'d, T: Instance, const N: usize> SequencePwm<'d, T, N> {
         r.seq0
             .ptr
             .write(|w| unsafe { w.bits(sequence.as_ptr() as u32) });
-        r.seq0.cnt.write(|w| unsafe { w.bits(N as u32) });
+        r.seq0
+            .cnt
+            .write(|w| unsafe { w.bits(sequence.len() as u32) });
         r.seq0.refresh.write(|w| unsafe { w.bits(config.refresh) });
         r.seq0
             .enddelay
@@ -222,7 +224,7 @@ impl<'d, T: Instance, const N: usize> SequencePwm<'d, T, N> {
     }
 }
 
-impl<'a, T: Instance, const N: usize> Drop for SequencePwm<'a, T, N> {
+impl<'a, T: Instance> Drop for SequencePwm<'a, T> {
     fn drop(&mut self) {
         let r = T::regs();