Remove \version svn tag.
[bertos.git] / bertos / cpu / avr / drv / pwm_avr.h
index 81aeb0ab1d93c3cb9c46365bc45fa4b44e14e95c..76c162074d40dab21bcf6e2c273b349dc5aac9f5 100644 (file)
  *
  * \brief Low-level PWM module for AVR (interface).
  *
- * \version $Id$
  *
  * \author Daniele Basile <asterix@develer.com>
  *
  */
 
-#include <cpu/detect.h>
+#ifndef DRV_PWM_AVR_H
+#define DRV_PWM_AVR_H
 
-#if CPU_AVR
-       #warning TODO:No AVR implementation of PWM.
-/*#elif  Add other AVR families here */
-#else
-       #error Unknown CPU
-#endif
+#include "hw/pwm_map.h"
+
+#include <cpu/types.h>
+
+#define PWM_HW_MAX_PRESCALER_STEP         10
+#define PWM_HW_MAX_PERIOD             0xFFFF
+
+/**
+ * Type definition for pwm period.
+ */
+typedef uint16_t pwm_period_t;
+
+/**
+ * Structur definition for pwm driver.
+ */
+typedef struct PwmChannel
+{
+       /*  */
+} PwmChannel;
+
+
+void pwm_hw_init(void);
+void pwm_hw_setFrequency(PwmDev dev, uint32_t freq);
+void pwm_hw_setDutyUnlock(PwmDev dev, uint16_t duty);
+void pwm_hw_disable(PwmDev dev);
+void pwm_hw_enable(PwmDev dev);
+void pwm_hw_setPolarity(PwmDev dev, bool pol);
+pwm_period_t pwm_hw_getPeriod(PwmDev dev);
+
+#endif /* DRV_ADC_AT91_H */