MIPS: Add new GIC clockevent driver.
Add new clockevent driver that uses the counter present on the MIPS Global Interrupt Controller. Signed-off-by: Raghu Gandham <Raghu.Gandham@imgtec.com> Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com>
This commit is contained in:

committed by
Ralf Baechle

parent
2675fa7c7b
commit
0ab2b7d08e
@@ -33,7 +33,7 @@ static struct gic_pcpu_mask pcpu_masks[NR_CPUS];
|
||||
static struct gic_pending_regs pending_regs[NR_CPUS];
|
||||
static struct gic_intrmask_regs intrmask_regs[NR_CPUS];
|
||||
|
||||
#ifdef CONFIG_CSRC_GIC
|
||||
#if defined(CONFIG_CSRC_GIC) || defined(CONFIG_CEVT_GIC)
|
||||
cycle_t gic_read_count(void)
|
||||
{
|
||||
unsigned int hi, hi2, lo;
|
||||
@@ -46,6 +46,24 @@ cycle_t gic_read_count(void)
|
||||
|
||||
return (((cycle_t) hi) << 32) + lo;
|
||||
}
|
||||
|
||||
void gic_write_compare(cycle_t cnt)
|
||||
{
|
||||
GICWRITE(GIC_REG(VPE_LOCAL, GIC_VPE_COMPARE_HI),
|
||||
(int)(cnt >> 32));
|
||||
GICWRITE(GIC_REG(VPE_LOCAL, GIC_VPE_COMPARE_LO),
|
||||
(int)(cnt & 0xffffffff));
|
||||
}
|
||||
|
||||
cycle_t gic_read_compare(void)
|
||||
{
|
||||
unsigned int hi, lo;
|
||||
|
||||
GICREAD(GIC_REG(VPE_LOCAL, GIC_VPE_COMPARE_HI), hi);
|
||||
GICREAD(GIC_REG(VPE_LOCAL, GIC_VPE_COMPARE_LO), lo);
|
||||
|
||||
return (((cycle_t) hi) << 32) + lo;
|
||||
}
|
||||
#endif
|
||||
|
||||
unsigned int gic_get_timer_pending(void)
|
||||
@@ -134,6 +152,17 @@ static void __init vpe_local_setup(unsigned int numvpes)
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int gic_compare_int(void)
|
||||
{
|
||||
unsigned int pending;
|
||||
|
||||
GICREAD(GIC_REG(VPE_LOCAL, GIC_VPE_PEND), pending);
|
||||
if (pending & GIC_VPE_PEND_CMP_MSK)
|
||||
return 1;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned int gic_get_int(void)
|
||||
{
|
||||
unsigned int i;
|
||||
|
Reference in New Issue
Block a user