61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Copyright (c) 2020 Rockchip Electronics Co., Ltd.
|
|
*
|
|
* Author: Zorro Liu <zorro.liu@rock-chips.com>
|
|
*/
|
|
|
|
#ifndef EBC_PMIC_H
|
|
#define EBC_PMIC_H
|
|
|
|
#include "../ebc_dev.h"
|
|
|
|
#define VCOM_MIN_MV 0
|
|
#define VCOM_MAX_MV 5110
|
|
|
|
struct ebc_pmic {
|
|
struct device *dev;
|
|
char pmic_name[16];
|
|
void *drvpar;
|
|
void (*pmic_power_req)(struct ebc_pmic *pmic, bool up);
|
|
void (*pmic_pm_suspend)(struct ebc_pmic *pmic);
|
|
void (*pmic_pm_resume)(struct ebc_pmic *pmic);
|
|
int (*pmic_read_temperature)(struct ebc_pmic *pmic, int *t);
|
|
int (*pmic_get_vcom)(struct ebc_pmic *pmic);
|
|
int (*pmic_set_vcom)(struct ebc_pmic *pmic, int value);
|
|
};
|
|
|
|
static inline void ebc_pmic_power_on(struct ebc_pmic *pmic)
|
|
{
|
|
return pmic->pmic_power_req(pmic, 1);
|
|
}
|
|
|
|
static inline void ebc_pmic_power_off(struct ebc_pmic *pmic)
|
|
{
|
|
return pmic->pmic_power_req(pmic, 0);
|
|
}
|
|
|
|
static inline void ebc_pmic_suspend(struct ebc_pmic *pmic)
|
|
{
|
|
return pmic->pmic_pm_suspend(pmic);
|
|
}
|
|
|
|
static inline void ebc_pmic_resume(struct ebc_pmic *pmic)
|
|
{
|
|
return pmic->pmic_pm_resume(pmic);
|
|
}
|
|
|
|
static inline int ebc_pmic_read_temp(struct ebc_pmic *pmic, int *t)
|
|
{
|
|
return pmic->pmic_read_temperature(pmic, t);
|
|
}
|
|
|
|
static inline int ebc_pmic_get_vcom(struct ebc_pmic *pmic)
|
|
{
|
|
return pmic->pmic_get_vcom(pmic);
|
|
}
|
|
|
|
int ebc_pmic_set_vcom(struct ebc_pmic *pmic, int value);
|
|
void ebc_pmic_verity_vcom(struct ebc_pmic *pmic);
|
|
#endif
|