1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ACPI_PMTMR_H_
3#define _ACPI_PMTMR_H_
4
5#include <linux/clocksource.h>
6
7/* Number of PMTMR ticks expected during calibration run */
8#define PMTMR_TICKS_PER_SEC 3579545
9
10/* limit it to 24 bits */
11#define ACPI_PM_MASK CLOCKSOURCE_MASK(24)
12
13/* Overrun value */
14#define ACPI_PM_OVRRUN	(1<<24)
15
16#ifdef CONFIG_X86_PM_TIMER
17
18extern u32 acpi_pm_read_verified(void);
19extern u32 pmtmr_ioport;
20
21static inline u32 acpi_pm_read_early(void)
22{
23	if (!pmtmr_ioport)
24		return 0;
25	/* mask the output to 24 bits */
26	return acpi_pm_read_verified() & ACPI_PM_MASK;
27}
28
29#else
30
31static inline u32 acpi_pm_read_early(void)
32{
33	return 0;
34}
35
36#endif
37
38#endif
39
40