3668b45d46
* architecture specific details are handled in asm/arch/time.h * ARCH_IOP13XX now selects PLAT_IOP * as suggested by Lennert use ifdef CONFIG_XSCALE to skip the cp_wait on XSC3 Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
51 lines
1 KiB
C
51 lines
1 KiB
C
#ifndef _IOP13XX_TIME_H_
|
|
#define _IOP13XX_TIME_H_
|
|
#define IRQ_IOP_TIMER0 IRQ_IOP13XX_TIMER0
|
|
|
|
#define IOP_TMR_EN 0x02
|
|
#define IOP_TMR_RELOAD 0x04
|
|
#define IOP_TMR_PRIVILEGED 0x08
|
|
#define IOP_TMR_RATIO_1_1 0x00
|
|
|
|
void iop_init_time(unsigned long tickrate);
|
|
unsigned long iop_gettimeoffset(void);
|
|
|
|
static inline void write_tmr0(u32 val)
|
|
{
|
|
asm volatile("mcr p6, 0, %0, c0, c9, 0" : : "r" (val));
|
|
}
|
|
|
|
static inline void write_tmr1(u32 val)
|
|
{
|
|
asm volatile("mcr p6, 0, %0, c1, c9, 0" : : "r" (val));
|
|
}
|
|
|
|
static inline u32 read_tcr0(void)
|
|
{
|
|
u32 val;
|
|
asm volatile("mrc p6, 0, %0, c2, c9, 0" : "=r" (val));
|
|
return val;
|
|
}
|
|
|
|
static inline u32 read_tcr1(void)
|
|
{
|
|
u32 val;
|
|
asm volatile("mrc p6, 0, %0, c3, c9, 0" : "=r" (val));
|
|
return val;
|
|
}
|
|
|
|
static inline void write_trr0(u32 val)
|
|
{
|
|
asm volatile("mcr p6, 0, %0, c4, c9, 0" : : "r" (val));
|
|
}
|
|
|
|
static inline void write_trr1(u32 val)
|
|
{
|
|
asm volatile("mcr p6, 0, %0, c5, c9, 0" : : "r" (val));
|
|
}
|
|
|
|
static inline void write_tisr(u32 val)
|
|
{
|
|
asm volatile("mcr p6, 0, %0, c6, c9, 0" : : "r" (val));
|
|
}
|
|
#endif
|