1*c92e7ef1SLaurent Vivier /* SPDX-License-Identifier: GPL-2.0 */ 2*c92e7ef1SLaurent Vivier /* 3*c92e7ef1SLaurent Vivier * goldfish-timer clocksource 4*c92e7ef1SLaurent Vivier * Registers definition for the goldfish-timer device 5*c92e7ef1SLaurent Vivier */ 6*c92e7ef1SLaurent Vivier 7*c92e7ef1SLaurent Vivier #ifndef _CLOCKSOURCE_TIMER_GOLDFISH_H 8*c92e7ef1SLaurent Vivier #define _CLOCKSOURCE_TIMER_GOLDFISH_H 9*c92e7ef1SLaurent Vivier 10*c92e7ef1SLaurent Vivier /* 11*c92e7ef1SLaurent Vivier * TIMER_TIME_LOW get low bits of current time and update TIMER_TIME_HIGH 12*c92e7ef1SLaurent Vivier * TIMER_TIME_HIGH get high bits of time at last TIMER_TIME_LOW read 13*c92e7ef1SLaurent Vivier * TIMER_ALARM_LOW set low bits of alarm and activate it 14*c92e7ef1SLaurent Vivier * TIMER_ALARM_HIGH set high bits of next alarm 15*c92e7ef1SLaurent Vivier * TIMER_IRQ_ENABLED enable alarm interrupt 16*c92e7ef1SLaurent Vivier * TIMER_CLEAR_ALARM disarm an existing alarm 17*c92e7ef1SLaurent Vivier * TIMER_ALARM_STATUS alarm status (running or not) 18*c92e7ef1SLaurent Vivier * TIMER_CLEAR_INTERRUPT clear interrupt 19*c92e7ef1SLaurent Vivier */ 20*c92e7ef1SLaurent Vivier #define TIMER_TIME_LOW 0x00 21*c92e7ef1SLaurent Vivier #define TIMER_TIME_HIGH 0x04 22*c92e7ef1SLaurent Vivier #define TIMER_ALARM_LOW 0x08 23*c92e7ef1SLaurent Vivier #define TIMER_ALARM_HIGH 0x0c 24*c92e7ef1SLaurent Vivier #define TIMER_IRQ_ENABLED 0x10 25*c92e7ef1SLaurent Vivier #define TIMER_CLEAR_ALARM 0x14 26*c92e7ef1SLaurent Vivier #define TIMER_ALARM_STATUS 0x18 27*c92e7ef1SLaurent Vivier #define TIMER_CLEAR_INTERRUPT 0x1c 28*c92e7ef1SLaurent Vivier 29*c92e7ef1SLaurent Vivier extern int goldfish_timer_init(int irq, void __iomem *base); 30*c92e7ef1SLaurent Vivier 31*c92e7ef1SLaurent Vivier #endif /* _CLOCKSOURCE_TIMER_GOLDFISH_H */ 32