kernel-brax3-ubuntu-touch/drivers/misc/mediatek/apusys/power/2.5/inc/apu_common.h
erascape f319b992b1 kernel-5.15: Initial import brax3 UT kernel
* halium configs enabled

Signed-off-by: erascape <erascape@proton.me>
2025-09-23 15:17:10 +00:00

52 lines
1.4 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2020 MediaTek Inc.
*/
#ifndef __APU_POWER_H__
#define __APU_POWER_H__
#include "apu_devfreq.h"
#include "apu_gov.h"
#define KHZ (1000)
#define MHZ (1000*KHZ)
#define TOMHZ(x) (x / MHZ)
#define TOKHZ(x) (x / KHZ)
#define MV (1000)
#define TOMV(x) (x / MV)
/* round_khz, and input unit is hz */
static inline bool round_khz(unsigned long x, unsigned long y)
{
return (abs((x) - (y)) < KHZ);
}
/* round_Mhz, and input unit is hz */
static inline bool round_Mhz(unsigned long x, unsigned long y)
{
return (abs((x) - (y)) < MHZ);
}
static inline const char *apu_dev_name(struct device *dev)
{
return ((struct apu_dev *)dev_get_drvdata(dev))->name;
}
const char *apu_dev_string(enum DVFS_USER user);
enum DVFS_USER apu_dev_user(const char *name);
struct apu_dev *apu_find_device(enum DVFS_USER user);
int apu_add_devfreq(struct apu_dev *ad);
int apu_del_devfreq(struct apu_dev *ad);
int apu_boost2opp(struct apu_dev *ad, int boost);
int apu_boost2freq(struct apu_dev *ad, int boost);
int apu_opp2freq(struct apu_dev *ad, int opp);
int apu_opp2boost(struct apu_dev *ad, int opp);
int apu_freq2opp(struct apu_dev *ad, unsigned long freq);
int apu_freq2boost(struct apu_dev *ad, unsigned long freq);
int apu_volt2opp(struct apu_dev *ad, int volt);
int apu_volt2boost(struct apu_dev *ad, int volt);
int apu_get_recommend_freq_volt(struct device *dev, unsigned long *freq,
unsigned long *volt, int flag);
#endif