hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// 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