@ -15,52 +15,20 @@
# include <asm/io.h>
# if defined(CONFIG_CPU_SH3)
struct tmu_regs {
u8 tocr ;
u8 reserved0 ;
u8 tstr ;
u8 reserved1 ;
u32 tcor0 ;
u32 tcnt0 ;
u16 tcr0 ;
u16 reserved2 ;
u32 tcor1 ;
u32 tcnt1 ;
u16 tcr1 ;
u16 reserved3 ;
u32 tcor2 ;
u32 tcnt2 ;
u16 tcr2 ;
u16 reserved4 ;
u32 tcpr2 ;
} ;
# define TSTR 0x2
# define TCNT0 0x8
# define TCR0 0xc
# endif /* CONFIG_CPU_SH3 */
# if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_RMOBILE)
struct tmu_regs {
u32 reserved ;
u8 tstr ;
u8 reserved2 [ 3 ] ;
u32 tcor0 ;
u32 tcnt0 ;
u16 tcr0 ;
u16 reserved3 ;
u32 tcor1 ;
u32 tcnt1 ;
u16 tcr1 ;
u16 reserved4 ;
u32 tcor2 ;
u32 tcnt2 ;
u16 tcr2 ;
u16 reserved5 ;
} ;
# define TSTR 0x4
# define TCNT0 0xc
# define TCR0 0x10
# endif /* CONFIG_CPU_SH4 */
# define TCR_TPSC 0x07
# define TCR_TPSC 0x07
# define TSTR_STR0 BIT(0)
static struct tmu_regs * tmu = ( struct tmu_regs * ) TMU_BASE ;
unsigned long get_tbclk ( void )
{
# ifdef CONFIG_RCAR_GEN2
@ -72,14 +40,14 @@ unsigned long get_tbclk(void)
unsigned long timer_read_counter ( void )
{
return ~ readl ( & tmu - > tcnt 0) ;
return ~ readl ( TMU_BASE + TCNT 0) ;
}
int timer_init ( void )
{
writew ( readw ( & tmu - > tcr 0) & ~ TCR_TPSC , & tmu - > tcr 0) ;
writeb ( readb ( & tmu - > tstr ) & ~ TSTR_STR0 , & tmu - > tstr ) ;
writeb ( readb ( & tmu - > tstr ) | TSTR_STR0 , & tmu - > tstr ) ;
writew ( readw ( TMU_BASE + TCR 0) & ~ TCR_TPSC , TMU_BASE + TCR 0) ;
writeb ( readb ( TMU_BASE + TSTR ) & ~ TSTR_STR0 , TMU_BASE + TSTR ) ;
writeb ( readb ( TMU_BASE + TSTR ) | TSTR_STR0 , TMU_BASE + TSTR ) ;
return 0 ;
}