acpi_pmtmr.h 674 B

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