/* SPDX-License-Identifier: GPL-2.0-only */

#include <arch/hpet.h>
#include <southbridge/intel/common/rcba.h>
#include <stdint.h>

#include "hpet.h"

#define HPTC		0x3404

#define HPET32(x) (*((volatile u32 *)(HPET_BASE_ADDRESS + (x))))

void enable_hpet(void)
{
	u32 reg32;
	reg32 = RCBA32(HPTC);
	reg32 &= ~0x03;
	reg32 |= (1 << 7);
	RCBA32(HPTC) = reg32;
	/* Read back for posted write to take effect */
	RCBA32(HPTC);
	HPET32(0x10) = HPET32(0x10) | 1;
}

void hpet_udelay(u32 delay)
{
	u32 start, finish, now;

	delay *= 15; /* now in usec */

	start = HPET32(0xf0);
	finish = start + delay;
	while (1) {
		now = HPET32(0xf0);
		if (finish > start) {
			if (now >= finish)
				break;
		} else {
			if ((now < start) && (now >= finish))
				break;
		}
	}
}
