1 /* SPDX-License-Identifier: GPL-2.0 */
5 #include <linux/clocksource.h>
7 /* Number of PMTMR ticks expected during calibration run */
8 #define PMTMR_TICKS_PER_SEC 3579545
10 /* limit it to 24 bits */
11 #define ACPI_PM_MASK CLOCKSOURCE_MASK(24)
14 #define ACPI_PM_OVRRUN (1<<24)
16 #ifdef CONFIG_X86_PM_TIMER
18 extern u32
acpi_pm_read_verified(void);
19 extern u32 pmtmr_ioport
;
21 static inline u32
acpi_pm_read_early(void)
25 /* mask the output to 24 bits */
26 return acpi_pm_read_verified() & ACPI_PM_MASK
;
30 * Register callback for suspend and resume event
32 * @cb Callback triggered on suspend and resume
33 * @data Data passed with the callback
35 void acpi_pmtmr_register_suspend_resume_callback(void (*cb
)(void *data
, bool suspend
), void *data
);
38 * Remove registered callback for suspend and resume event
40 void acpi_pmtmr_unregister_suspend_resume_callback(void);
44 static inline u32
acpi_pm_read_early(void)