-/**
- * Set PWM polarity of pwm \p dev.
- */
-INLINE void pwm_setPolarity(PwmDev dev, bool pol)
-{
- pwm_hw_setPolarity(dev, pol);
-}
+ struct PwmHardware; //Fwd declaration
+
+ /**
+ * PWM context structure.
+ */
+ typedef struct Pwm
+ {
+ unsigned ch;
+ pwm_duty_t duty;
+ PwmPolarity pol;
+ bool enabled;
+ struct PwmHardware *hw;
+ } Pwm;
+
+ void pwm_setDuty(Pwm *ctx, pwm_duty_t duty);
+ void pwm_setFrequency(Pwm *ctx, pwm_freq_t freq);
+ void pwm_setPolarity(Pwm *ctx, PwmPolarity pol);
+ void pwm_enable(Pwm *ctx, bool state);
+ void pwm_init(Pwm *ctx, unsigned channel);
+ /** \} */ //defgroup pwm_api
+#endif
+
+
+#if CFG_PWM_ENABLE_OLD_API
+ /**
+ * \defgroup pwm_old_api Old PWM API
+ * This API has strong limititations, so it has been deprecated.
+ * It is active by default for backward compatibility reasons, but
+ * for new projects please use the new PWM API.
+ * In order to disable this API, check CFG_PWM_ENABLE_OLD_API.
+ * \see pwm_api
+ * \see CFG_PWM_ENABLE_OLD_API
+ * \{
+ */