xref: /linux-6.15/include/linux/i8253.h (revision 531b2ca0)
1334955efSRalf Baechle /*
2334955efSRalf Baechle  * This file is subject to the terms and conditions of the GNU General Public
3334955efSRalf Baechle  * License.  See the file "COPYING" in the main directory of this archive
4334955efSRalf Baechle  * for more details.
5cb2455aaSRalf Baechle  *
6cb2455aaSRalf Baechle  *  Machine specific IO port address definition for generic.
7cb2455aaSRalf Baechle  *  Written by Osamu Tomita <[email protected]>
8334955efSRalf Baechle  */
9334955efSRalf Baechle #ifndef __LINUX_I8253_H
10334955efSRalf Baechle #define __LINUX_I8253_H
11334955efSRalf Baechle 
1249cf3f29SRalf Baechle #include <linux/param.h>
13cb2455aaSRalf Baechle #include <linux/spinlock.h>
1449cf3f29SRalf Baechle #include <linux/timex.h>
15334955efSRalf Baechle 
16cb2455aaSRalf Baechle /* i8253A PIT registers */
17cb2455aaSRalf Baechle #define PIT_MODE	0x43
18cb2455aaSRalf Baechle #define PIT_CH0		0x40
19cb2455aaSRalf Baechle #define PIT_CH2		0x42
20cb2455aaSRalf Baechle 
2149cf3f29SRalf Baechle #define PIT_LATCH	((PIT_TICK_RATE + HZ/2) / HZ)
2249cf3f29SRalf Baechle 
23cb2455aaSRalf Baechle extern raw_spinlock_t i8253_lock;
24e6220bdcSThomas Gleixner extern struct clock_event_device i8253_clockevent;
25e6220bdcSThomas Gleixner extern void clockevent_i8253_init(bool oneshot);
26*70e6b7d9SDavid Woodhouse extern void clockevent_i8253_disable(void);
27cb2455aaSRalf Baechle 
2885049276SRalf Baechle extern void setup_pit_timer(void);
2985049276SRalf Baechle 
30334955efSRalf Baechle #endif /* __LINUX_I8253_H */
31