diff --git a/rust/kernel/pwm.rs b/rust/kernel/pwm.rs index 6f2f78c687d5..b19661b83b0f 100644 --- a/rust/kernel/pwm.rs +++ b/rust/kernel/pwm.rs @@ -15,38 +15,7 @@ prelude::*, types::{ARef, AlwaysRefCounted, Opaque}, }; -use core::{convert::TryFrom, marker::PhantomData, ptr::NonNull}; - -/// PWM polarity. Mirrors [`enum pwm_polarity`](srctree/include/linux/pwm.h). -#[derive(Copy, Clone, Debug, PartialEq, Eq)] -pub enum Polarity { - /// Normal polarity (duty cycle defines the high period of the signal). - Normal, - - /// Inversed polarity (duty cycle defines the low period of the signal). - Inversed, -} - -impl TryFrom for Polarity { - type Error = Error; - - fn try_from(polarity: bindings::pwm_polarity) -> Result { - match polarity { - bindings::pwm_polarity_PWM_POLARITY_NORMAL => Ok(Polarity::Normal), - bindings::pwm_polarity_PWM_POLARITY_INVERSED => Ok(Polarity::Inversed), - _ => Err(EINVAL), - } - } -} - -impl From for bindings::pwm_polarity { - fn from(polarity: Polarity) -> Self { - match polarity { - Polarity::Normal => bindings::pwm_polarity_PWM_POLARITY_NORMAL, - Polarity::Inversed => bindings::pwm_polarity_PWM_POLARITY_INVERSED, - } - } -} +use core::{marker::PhantomData, ptr::NonNull}; /// Represents a PWM waveform configuration. /// Mirrors struct [`struct pwm_waveform`](srctree/include/linux/pwm.h). @@ -89,22 +58,6 @@ fn from(wf: Waveform) -> Self { } } -/// Wrapper for PWM state [`struct pwm_state`](srctree/include/linux/pwm.h). -#[repr(transparent)] -pub struct State(bindings::pwm_state); - -impl State { - /// Creates a `State` wrapper by taking ownership of a C `pwm_state` value. - pub(crate) fn from_c(c_state: bindings::pwm_state) -> Self { - State(c_state) - } - - /// Returns `true` if the PWM signal is enabled. - pub fn enabled(&self) -> bool { - self.0.enabled - } -} - /// Describes the outcome of a `round_waveform` operation. #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum RoundingOutcome { @@ -164,13 +117,6 @@ pub fn label(&self) -> Option<&CStr> { Some(unsafe { CStr::from_char_ptr(label_ptr) }) } - /// Gets a copy of the current state of this PWM device. - pub fn state(&self) -> State { - // SAFETY: `self.as_raw()` gives a valid pointer. `(*self.as_raw()).state` - // is a valid `pwm_state` struct. `State::from_c` copies this data. - State::from_c(unsafe { (*self.as_raw()).state }) - } - /// Sets the PWM waveform configuration and enables the PWM signal. pub fn set_waveform(&self, wf: &Waveform, exact: bool) -> Result { let c_wf = bindings::pwm_waveform::from(*wf);