xref: /OK3568_Linux_fs/kernel/drivers/gpu/drm/rockchip/ebc-dev/pmic/ebc_pmic.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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)28 static 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)33 static 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)38 static 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)43 static 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)48 static 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)53 static 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