diff options
author | mokopatches <mokopatches@openmoko.org> | 2008-11-19 17:03:12 +0000 |
---|---|---|
committer | warmcat <andy@warmcat.com> | 2008-11-19 17:03:12 +0000 |
commit | ce90a0e00afd546c6f01bd3d645e7e29f6f2d2fc (patch) | |
tree | 38c10a9c2e7af1e6b29ccc7cc2af4810672608bd /include/asm-arm | |
parent | 2ddb75cf210a1258d30b3044f7675616a98573a1 (diff) |
s3c2410-pwm.patch
This patch adds a PWM api abstraction for the S3C2410 SoC
Signed-off-by: Javi Roman <javiroman@kernel-labs.org>
Signed-off-by: Harald Welte <laforge@openmoko.org>
Diffstat (limited to 'include/asm-arm')
-rw-r--r-- | include/asm-arm/arch-s3c2410/pwm.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/include/asm-arm/arch-s3c2410/pwm.h b/include/asm-arm/arch-s3c2410/pwm.h new file mode 100644 index 00000000000..a797ec359e2 --- /dev/null +++ b/include/asm-arm/arch-s3c2410/pwm.h @@ -0,0 +1,40 @@ +#ifndef __S3C2410_PWM_H +#define __S3C2410_PWM_H + +#include <linux/err.h> +#include <linux/platform_device.h> +#include <linux/clk.h> + +#include <asm-arm/io.h> +#include <asm/arch/hardware.h> +#include <asm/mach-types.h> +#include <asm/plat-s3c/regs-timer.h> +#include <asm/arch/gta01.h> + +enum pwm_timer { + PWM0, + PWM1, + PWM2, + PWM3, + PWM4 +}; + +struct s3c2410_pwm { + enum pwm_timer timerid; + struct clk *pclk; + unsigned long pclk_rate; + unsigned long prescaler; + unsigned long divider; + unsigned long counter; + unsigned long comparer; +}; + +int s3c2410_pwm_init(struct s3c2410_pwm *s3c2410_pwm); +int s3c2410_pwm_enable(struct s3c2410_pwm *s3c2410_pwm); +int s3c2410_pwm_disable(struct s3c2410_pwm *s3c2410_pwm); +int s3c2410_pwm_start(struct s3c2410_pwm *s3c2410_pwm); +int s3c2410_pwm_stop(struct s3c2410_pwm *s3c2410_pwm); +int s3c2410_pwm_duty_cycle(int reg_value, struct s3c2410_pwm *s3c2410_pwm); +int s3c2410_pwm_dumpregs(void); + +#endif /* __S3C2410_PWM_H */ |