1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Copyright (c) 2020 Rockchip Electronics Co. Ltd. 4 * 5 * Author: Zorro Liu <zorro.liu@rock-chips.com> 6 */ 7 8 #ifndef EBC_PMIC_H 9 #define EBC_PMIC_H 10 11 #include "../ebc_dev.h" 12 13 #define VCOM_MIN_MV 0 14 #define VCOM_MAX_MV 5110 15 16 struct ebc_pmic { 17 struct device *dev; 18 char pmic_name[16]; 19 void *drvpar; 20 void (*pmic_power_req)(struct ebc_pmic *pmic, bool up); 21 void (*pmic_pm_suspend)(struct ebc_pmic *pmic); 22 void (*pmic_pm_resume)(struct ebc_pmic *pmic); 23 int (*pmic_read_temperature)(struct ebc_pmic *pmic, int *t); 24 int (*pmic_get_vcom)(struct ebc_pmic *pmic); 25 int (*pmic_set_vcom)(struct ebc_pmic *pmic, int value); 26 }; 27 ebc_pmic_power_on(struct ebc_pmic * pmic)28static inline void ebc_pmic_power_on(struct ebc_pmic *pmic) 29 { 30 return pmic->pmic_power_req(pmic, 1); 31 } 32 ebc_pmic_power_off(struct ebc_pmic * pmic)33static inline void ebc_pmic_power_off(struct ebc_pmic *pmic) 34 { 35 return pmic->pmic_power_req(pmic, 0); 36 } 37 ebc_pmic_suspend(struct ebc_pmic * pmic)38static inline void ebc_pmic_suspend(struct ebc_pmic *pmic) 39 { 40 return pmic->pmic_pm_suspend(pmic); 41 } 42 ebc_pmic_resume(struct ebc_pmic * pmic)43static inline void ebc_pmic_resume(struct ebc_pmic *pmic) 44 { 45 return pmic->pmic_pm_resume(pmic); 46 } 47 ebc_pmic_read_temp(struct ebc_pmic * pmic,int * t)48static inline int ebc_pmic_read_temp(struct ebc_pmic *pmic, int *t) 49 { 50 return pmic->pmic_read_temperature(pmic, t); 51 } 52 ebc_pmic_get_vcom(struct ebc_pmic * pmic)53static inline int ebc_pmic_get_vcom(struct ebc_pmic *pmic) 54 { 55 return pmic->pmic_get_vcom(pmic); 56 } 57 58 int ebc_pmic_set_vcom(struct ebc_pmic *pmic, int value); 59 void ebc_pmic_verity_vcom(struct ebc_pmic *pmic); 60 #endif 61