162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2020-2022 Loongson Technology Corporation Limited 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci#ifndef _ASM_DELAY_H 662306a36Sopenharmony_ci#define _ASM_DELAY_H 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <linux/param.h> 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciextern void __delay(unsigned long cycles); 1162306a36Sopenharmony_ciextern void __ndelay(unsigned long ns); 1262306a36Sopenharmony_ciextern void __udelay(unsigned long us); 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#define ndelay(ns) __ndelay(ns) 1562306a36Sopenharmony_ci#define udelay(us) __udelay(us) 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci/* make sure "usecs *= ..." in udelay do not overflow. */ 1862306a36Sopenharmony_ci#if HZ >= 1000 1962306a36Sopenharmony_ci#define MAX_UDELAY_MS 1 2062306a36Sopenharmony_ci#elif HZ <= 200 2162306a36Sopenharmony_ci#define MAX_UDELAY_MS 5 2262306a36Sopenharmony_ci#else 2362306a36Sopenharmony_ci#define MAX_UDELAY_MS (1000 / HZ) 2462306a36Sopenharmony_ci#endif 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci#endif /* _ASM_DELAY_H */ 27