S5P: timer: Use pwm functions
PATCH 1/4 S5P: timer: Use pwm functions
Use pwm functions for timer that is PWM timer 4.
Signed-off-by Minkyu Kang <[email protected]>
Signed-off-by Kyungmin Park <[email protected]>
--- arch/arm/cpu/armv7/s5p-common/timer.c | 49 +++--------------------------- arch/arm/include/asm/arch-s5pc1xx/pwm.h | 8 +---- arch/arm/include/asm/arch-s5pc2xx/pwm.h | 8 +---- 3 files changed, 7 insertions(+), 58 deletions(-)
arch/arm/cpu/armv7/s5p-common/timer.c +5 -44
@@ -27,15 +27,7 @@#include <asm/io.h> #include <asm/arch/pwm.h> #include <asm/arch/clk.h> - -#define PRESCALER_1 (16 - 1)/* prescaler of timer 2, 3, 4 */ -#define MUX_DIV_2 1/* 1/2 period */ -#define MUX_DIV_4 2/* 1/4 period */ -#define MUX_DIV_8 3/* 1/8 period */ -#define MUX_DIV_16 4/* 1/16 period */ -#define MUX4_DIV_SHIFT 16 - -#define TCON_TIMER4_SHIFT 20 +#include <pwm.h> static unsigned long count_value;
@@ -51,41 +43,10 @@ static inline struct s5p_timer *s5p_get_base_timer(void)int timer_init (void ) { -struct s5p_timer *const timer =s5p_get_base_timer (); -u32 val; - -/* -* @ PWM Timer 4 -* Timer Freq(HZ) = -* PWM_CLK / { (prescaler_value + 1) * (divider_value) } -*/ - -/* set prescaler : 16 */ -/* set divider : 2 */ -writel ((PRESCALER_1 &0xff ) <<8 , &timer->tcfg0); -writel ((MUX_DIV_2 &0xf ) <<MUX4_DIV_SHIFT , &timer->tcfg1); - -/* count_value = 2085937.5(HZ) (per 1 sec)*/ - count_value =get_pwm_clk () / ((PRESCALER_1 +1 ) * - (MUX_DIV_2 +1 )); - -/* count_value / 100 = 20859.375(HZ) (per 10 msec) */ - count_value = count_value /100 ; - -/* set count value */ -writel (count_value, &timer->tcntb4); - lastdec = count_value; - - val = (readl (&timer->tcon) & ~(0x07 <<TCON_TIMER4_SHIFT )) | -TCON4_AUTO_RELOAD ; - -/* auto reload & manual update */ -writel (val |TCON4_UPDATE , &timer->tcon); - -/* start PWM timer 4 */ -writel (val |TCON4_START , &timer->tcon); - - timestamp =0 ; +/* PWM Timer 4 */ +pwm_init (4 ,MUX_DIV_2 ,0 ); +pwm_config (4 ,0 ,0 ); +pwm_enable (4 );return 0 ; }
arch/arm/include/asm/arch-s5pc1xx/pwm.h +1 -7
@@ -34,19 +34,13 @@#define MUX_DIV_SHIFT (x) (x * 4) -/* Interval mode(Auto Reload) of PWM Timer 4 */ -#define TCON4_AUTO_RELOAD (1 << 22) -/* Update TCNTB4 */ -#define TCON4_UPDATE (1 << 21) -/* start bit of PWM Timer 4 */ -#define TCON4_START (1 << 20) -#define TCON_OFFSET (x) ((x + 1) * (!!x) << 2)#define TCON_START (x) (1 << TCON_OFFSET(x))#define TCON_UPDATE (x) (1 << (TCON_OFFSET(x) + 1))#define TCON_INVERTER (x) (1 << (TCON_OFFSET(x) + 2))#define TCON_AUTO_RELOAD (x) (1 << (TCON_OFFSET(x) + 3)) +#define TCON4_AUTO_RELOAD (1 << 22)#ifndef __ASSEMBLY__ struct s5p_timer {
arch/arm/include/asm/arch-s5pc2xx/pwm.h +1 -7
@@ -34,19 +34,13 @@#define MUX_DIV_SHIFT (x) (x * 4) -/* Interval mode(Auto Reload) of PWM Timer 4 */ -#define TCON4_AUTO_RELOAD (1 << 22) -/* Update TCNTB4 */ -#define TCON4_UPDATE (1 << 21) -/* start bit of PWM Timer 4 */ -#define TCON4_START (1 << 20) -#define TCON_OFFSET (x) ((x + 1) * (!!x) << 2)#define TCON_START (x) (1 << TCON_OFFSET(x))#define TCON_UPDATE (x) (1 << (TCON_OFFSET(x) + 1))#define TCON_INVERTER (x) (1 << (TCON_OFFSET(x) + 2))#define TCON_AUTO_RELOAD (x) (1 << (TCON_OFFSET(x) + 3)) +#define TCON4_AUTO_RELOAD (1 << 22)#ifndef __ASSEMBLY__ struct s5p_timer {
Signature · 1 line
1.7.1
PATCH 1/4 S5P: timer: Use pwm functions
Quoted 10 lines · Minkyu Kang
Use pwm functions for timer that is PWM timer 4.
Signed-off-by Minkyu Kang <[email protected]>Signed-off-by Kyungmin Park <[email protected]>---
?arch/arm/cpu/armv7/s5p-common/timer.c ? | ? 49 +++--------------------------- ?arch/arm/include/asm/arch-s5pc1xx/pwm.h | ? ?8 +---- ?arch/arm/include/asm/arch-s5pc2xx/pwm.h | ? ?8 +----?3 files changed, 7 insertions(+), 58 deletions(-)
applied patch series to u-boot-samsung
Signature · 2 lines
from. prom. www.promsoft.net