Merge pull request #2763 from UPB-FILS-MA/rp_rename_pwm_channel_to_slice
rp2040: rename all usages of pwm channel to pwm slices
This commit is contained in:
		
						commit
						0e709ab0ea
					
				| @ -82,13 +82,13 @@ impl From<InputMode> for Divmode { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /// PWM driver.
 | /// PWM driver.
 | ||||||
| pub struct Pwm<'d, T: Channel> { | pub struct Pwm<'d, T: Slice> { | ||||||
|     inner: PeripheralRef<'d, T>, |     inner: PeripheralRef<'d, T>, | ||||||
|     pin_a: Option<PeripheralRef<'d, AnyPin>>, |     pin_a: Option<PeripheralRef<'d, AnyPin>>, | ||||||
|     pin_b: Option<PeripheralRef<'d, AnyPin>>, |     pin_b: Option<PeripheralRef<'d, AnyPin>>, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| impl<'d, T: Channel> Pwm<'d, T> { | impl<'d, T: Slice> Pwm<'d, T> { | ||||||
|     fn new_inner( |     fn new_inner( | ||||||
|         inner: impl Peripheral<P = T> + 'd, |         inner: impl Peripheral<P = T> + 'd, | ||||||
|         a: Option<PeripheralRef<'d, AnyPin>>, |         a: Option<PeripheralRef<'d, AnyPin>>, | ||||||
| @ -129,7 +129,7 @@ impl<'d, T: Channel> Pwm<'d, T> { | |||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn new_output_a( |     pub fn new_output_a( | ||||||
|         inner: impl Peripheral<P = T> + 'd, |         inner: impl Peripheral<P = T> + 'd, | ||||||
|         a: impl Peripheral<P = impl PwmPinA<T>> + 'd, |         a: impl Peripheral<P = impl ChannelAPin<T>> + 'd, | ||||||
|         config: Config, |         config: Config, | ||||||
|     ) -> Self { |     ) -> Self { | ||||||
|         into_ref!(a); |         into_ref!(a); | ||||||
| @ -140,7 +140,7 @@ impl<'d, T: Channel> Pwm<'d, T> { | |||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn new_output_b( |     pub fn new_output_b( | ||||||
|         inner: impl Peripheral<P = T> + 'd, |         inner: impl Peripheral<P = T> + 'd, | ||||||
|         b: impl Peripheral<P = impl PwmPinB<T>> + 'd, |         b: impl Peripheral<P = impl ChannelBPin<T>> + 'd, | ||||||
|         config: Config, |         config: Config, | ||||||
|     ) -> Self { |     ) -> Self { | ||||||
|         into_ref!(b); |         into_ref!(b); | ||||||
| @ -151,8 +151,8 @@ impl<'d, T: Channel> Pwm<'d, T> { | |||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn new_output_ab( |     pub fn new_output_ab( | ||||||
|         inner: impl Peripheral<P = T> + 'd, |         inner: impl Peripheral<P = T> + 'd, | ||||||
|         a: impl Peripheral<P = impl PwmPinA<T>> + 'd, |         a: impl Peripheral<P = impl ChannelAPin<T>> + 'd, | ||||||
|         b: impl Peripheral<P = impl PwmPinB<T>> + 'd, |         b: impl Peripheral<P = impl ChannelBPin<T>> + 'd, | ||||||
|         config: Config, |         config: Config, | ||||||
|     ) -> Self { |     ) -> Self { | ||||||
|         into_ref!(a, b); |         into_ref!(a, b); | ||||||
| @ -163,7 +163,7 @@ impl<'d, T: Channel> Pwm<'d, T> { | |||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn new_input( |     pub fn new_input( | ||||||
|         inner: impl Peripheral<P = T> + 'd, |         inner: impl Peripheral<P = T> + 'd, | ||||||
|         b: impl Peripheral<P = impl PwmPinB<T>> + 'd, |         b: impl Peripheral<P = impl ChannelBPin<T>> + 'd, | ||||||
|         mode: InputMode, |         mode: InputMode, | ||||||
|         config: Config, |         config: Config, | ||||||
|     ) -> Self { |     ) -> Self { | ||||||
| @ -175,8 +175,8 @@ impl<'d, T: Channel> Pwm<'d, T> { | |||||||
|     #[inline] |     #[inline] | ||||||
|     pub fn new_output_input( |     pub fn new_output_input( | ||||||
|         inner: impl Peripheral<P = T> + 'd, |         inner: impl Peripheral<P = T> + 'd, | ||||||
|         a: impl Peripheral<P = impl PwmPinA<T>> + 'd, |         a: impl Peripheral<P = impl ChannelAPin<T>> + 'd, | ||||||
|         b: impl Peripheral<P = impl PwmPinB<T>> + 'd, |         b: impl Peripheral<P = impl ChannelBPin<T>> + 'd, | ||||||
|         mode: InputMode, |         mode: InputMode, | ||||||
|         config: Config, |         config: Config, | ||||||
|     ) -> Self { |     ) -> Self { | ||||||
| @ -265,18 +265,18 @@ impl<'d, T: Channel> Pwm<'d, T> { | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /// Batch representation of PWM channels.
 | /// Batch representation of PWM slices.
 | ||||||
| pub struct PwmBatch(u32); | pub struct PwmBatch(u32); | ||||||
| 
 | 
 | ||||||
| impl PwmBatch { | impl PwmBatch { | ||||||
|     #[inline] |     #[inline] | ||||||
|     /// Enable a PWM channel in this batch.
 |     /// Enable a PWM slice in this batch.
 | ||||||
|     pub fn enable(&mut self, pwm: &Pwm<'_, impl Channel>) { |     pub fn enable(&mut self, pwm: &Pwm<'_, impl Slice>) { | ||||||
|         self.0 |= pwm.bit(); |         self.0 |= pwm.bit(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     #[inline] |     #[inline] | ||||||
|     /// Enable channels in this batch in a PWM.
 |     /// Enable slices in this batch in a PWM.
 | ||||||
|     pub fn set_enabled(enabled: bool, batch: impl FnOnce(&mut PwmBatch)) { |     pub fn set_enabled(enabled: bool, batch: impl FnOnce(&mut PwmBatch)) { | ||||||
|         let mut en = PwmBatch(0); |         let mut en = PwmBatch(0); | ||||||
|         batch(&mut en); |         batch(&mut en); | ||||||
| @ -288,7 +288,7 @@ impl PwmBatch { | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| impl<'d, T: Channel> Drop for Pwm<'d, T> { | impl<'d, T: Slice> Drop for Pwm<'d, T> { | ||||||
|     fn drop(&mut self) { |     fn drop(&mut self) { | ||||||
|         self.inner.regs().csr().write_clear(|w| w.set_en(false)); |         self.inner.regs().csr().write_clear(|w| w.set_en(false)); | ||||||
|         if let Some(pin) = &self.pin_a { |         if let Some(pin) = &self.pin_a { | ||||||
| @ -301,24 +301,24 @@ impl<'d, T: Channel> Drop for Pwm<'d, T> { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| mod sealed { | mod sealed { | ||||||
|     pub trait Channel {} |     pub trait Slice {} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /// PWM Channel.
 | /// PWM Slice.
 | ||||||
| pub trait Channel: Peripheral<P = Self> + sealed::Channel + Sized + 'static { | pub trait Slice: Peripheral<P = Self> + sealed::Slice + Sized + 'static { | ||||||
|     /// Channel number.
 |     /// Slice number.
 | ||||||
|     fn number(&self) -> u8; |     fn number(&self) -> u8; | ||||||
| 
 | 
 | ||||||
|     /// Channel register block.
 |     /// Slice register block.
 | ||||||
|     fn regs(&self) -> pac::pwm::Channel { |     fn regs(&self) -> pac::pwm::Channel { | ||||||
|         pac::PWM.ch(self.number() as _) |         pac::PWM.ch(self.number() as _) | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| macro_rules! channel { | macro_rules! slice { | ||||||
|     ($name:ident, $num:expr) => { |     ($name:ident, $num:expr) => { | ||||||
|         impl sealed::Channel for peripherals::$name {} |         impl sealed::Slice for peripherals::$name {} | ||||||
|         impl Channel for peripherals::$name { |         impl Slice for peripherals::$name { | ||||||
|             fn number(&self) -> u8 { |             fn number(&self) -> u8 { | ||||||
|                 $num |                 $num | ||||||
|             } |             } | ||||||
| @ -326,19 +326,19 @@ macro_rules! channel { | |||||||
|     }; |     }; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| channel!(PWM_SLICE0, 0); | slice!(PWM_SLICE0, 0); | ||||||
| channel!(PWM_SLICE1, 1); | slice!(PWM_SLICE1, 1); | ||||||
| channel!(PWM_SLICE2, 2); | slice!(PWM_SLICE2, 2); | ||||||
| channel!(PWM_SLICE3, 3); | slice!(PWM_SLICE3, 3); | ||||||
| channel!(PWM_SLICE4, 4); | slice!(PWM_SLICE4, 4); | ||||||
| channel!(PWM_SLICE5, 5); | slice!(PWM_SLICE5, 5); | ||||||
| channel!(PWM_SLICE6, 6); | slice!(PWM_SLICE6, 6); | ||||||
| channel!(PWM_SLICE7, 7); | slice!(PWM_SLICE7, 7); | ||||||
| 
 | 
 | ||||||
| /// PWM Pin A.
 | /// PWM Channel A.
 | ||||||
| pub trait PwmPinA<T: Channel>: GpioPin {} | pub trait ChannelAPin<T: Slice>: GpioPin {} | ||||||
| /// PWM Pin B.
 | /// PWM Channel B.
 | ||||||
| pub trait PwmPinB<T: Channel>: GpioPin {} | pub trait ChannelBPin<T: Slice>: GpioPin {} | ||||||
| 
 | 
 | ||||||
| macro_rules! impl_pin { | macro_rules! impl_pin { | ||||||
|     ($pin:ident, $channel:ident, $kind:ident) => { |     ($pin:ident, $channel:ident, $kind:ident) => { | ||||||
| @ -346,33 +346,33 @@ macro_rules! impl_pin { | |||||||
|     }; |     }; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| impl_pin!(PIN_0, PWM_SLICE0, PwmPinA); | impl_pin!(PIN_0, PWM_SLICE0, ChannelAPin); | ||||||
| impl_pin!(PIN_1, PWM_SLICE0, PwmPinB); | impl_pin!(PIN_1, PWM_SLICE0, ChannelBPin); | ||||||
| impl_pin!(PIN_2, PWM_SLICE1, PwmPinA); | impl_pin!(PIN_2, PWM_SLICE1, ChannelAPin); | ||||||
| impl_pin!(PIN_3, PWM_SLICE1, PwmPinB); | impl_pin!(PIN_3, PWM_SLICE1, ChannelBPin); | ||||||
| impl_pin!(PIN_4, PWM_SLICE2, PwmPinA); | impl_pin!(PIN_4, PWM_SLICE2, ChannelAPin); | ||||||
| impl_pin!(PIN_5, PWM_SLICE2, PwmPinB); | impl_pin!(PIN_5, PWM_SLICE2, ChannelBPin); | ||||||
| impl_pin!(PIN_6, PWM_SLICE3, PwmPinA); | impl_pin!(PIN_6, PWM_SLICE3, ChannelAPin); | ||||||
| impl_pin!(PIN_7, PWM_SLICE3, PwmPinB); | impl_pin!(PIN_7, PWM_SLICE3, ChannelBPin); | ||||||
| impl_pin!(PIN_8, PWM_SLICE4, PwmPinA); | impl_pin!(PIN_8, PWM_SLICE4, ChannelAPin); | ||||||
| impl_pin!(PIN_9, PWM_SLICE4, PwmPinB); | impl_pin!(PIN_9, PWM_SLICE4, ChannelBPin); | ||||||
| impl_pin!(PIN_10, PWM_SLICE5, PwmPinA); | impl_pin!(PIN_10, PWM_SLICE5, ChannelAPin); | ||||||
| impl_pin!(PIN_11, PWM_SLICE5, PwmPinB); | impl_pin!(PIN_11, PWM_SLICE5, ChannelBPin); | ||||||
| impl_pin!(PIN_12, PWM_SLICE6, PwmPinA); | impl_pin!(PIN_12, PWM_SLICE6, ChannelAPin); | ||||||
| impl_pin!(PIN_13, PWM_SLICE6, PwmPinB); | impl_pin!(PIN_13, PWM_SLICE6, ChannelBPin); | ||||||
| impl_pin!(PIN_14, PWM_SLICE7, PwmPinA); | impl_pin!(PIN_14, PWM_SLICE7, ChannelAPin); | ||||||
| impl_pin!(PIN_15, PWM_SLICE7, PwmPinB); | impl_pin!(PIN_15, PWM_SLICE7, ChannelBPin); | ||||||
| impl_pin!(PIN_16, PWM_SLICE0, PwmPinA); | impl_pin!(PIN_16, PWM_SLICE0, ChannelAPin); | ||||||
| impl_pin!(PIN_17, PWM_SLICE0, PwmPinB); | impl_pin!(PIN_17, PWM_SLICE0, ChannelBPin); | ||||||
| impl_pin!(PIN_18, PWM_SLICE1, PwmPinA); | impl_pin!(PIN_18, PWM_SLICE1, ChannelAPin); | ||||||
| impl_pin!(PIN_19, PWM_SLICE1, PwmPinB); | impl_pin!(PIN_19, PWM_SLICE1, ChannelBPin); | ||||||
| impl_pin!(PIN_20, PWM_SLICE2, PwmPinA); | impl_pin!(PIN_20, PWM_SLICE2, ChannelAPin); | ||||||
| impl_pin!(PIN_21, PWM_SLICE2, PwmPinB); | impl_pin!(PIN_21, PWM_SLICE2, ChannelBPin); | ||||||
| impl_pin!(PIN_22, PWM_SLICE3, PwmPinA); | impl_pin!(PIN_22, PWM_SLICE3, ChannelAPin); | ||||||
| impl_pin!(PIN_23, PWM_SLICE3, PwmPinB); | impl_pin!(PIN_23, PWM_SLICE3, ChannelBPin); | ||||||
| impl_pin!(PIN_24, PWM_SLICE4, PwmPinA); | impl_pin!(PIN_24, PWM_SLICE4, ChannelAPin); | ||||||
| impl_pin!(PIN_25, PWM_SLICE4, PwmPinB); | impl_pin!(PIN_25, PWM_SLICE4, ChannelBPin); | ||||||
| impl_pin!(PIN_26, PWM_SLICE5, PwmPinA); | impl_pin!(PIN_26, PWM_SLICE5, ChannelAPin); | ||||||
| impl_pin!(PIN_27, PWM_SLICE5, PwmPinB); | impl_pin!(PIN_27, PWM_SLICE5, ChannelBPin); | ||||||
| impl_pin!(PIN_28, PWM_SLICE6, PwmPinA); | impl_pin!(PIN_28, PWM_SLICE6, ChannelAPin); | ||||||
| impl_pin!(PIN_29, PWM_SLICE6, PwmPinB); | impl_pin!(PIN_29, PWM_SLICE6, ChannelBPin); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user