xref: /rk3399_rockchip-uboot/include/power/power_delivery/power_delivery.h (revision d0d19ce567b80fd20136b16231fc24ae079c91f5)
1a2c81616SWang Jie /*
2a2c81616SWang Jie  * (C) Copyright 2020 Rockchip Electronics Co., Ltd
3a2c81616SWang Jie  *
4a2c81616SWang Jie  * SPDX-License-Identifier:     GPL-2.0+
5a2c81616SWang Jie  */
6a2c81616SWang Jie 
7a2c81616SWang Jie #ifndef _power_delivery_H_
8a2c81616SWang Jie #define _power_delivery_H_
9a2c81616SWang Jie 
10a2c81616SWang Jie /* Capability */
11a2c81616SWang Jie #define FG_CAP_FUEL_GAUGE	BIT(0)
12a2c81616SWang Jie #define FG_CAP_CHARGER		BIT(1)
13a2c81616SWang Jie 
14a2c81616SWang Jie struct dm_power_delivery_ops {
15a2c81616SWang Jie 	int (*get_voltage)(struct udevice *dev);
16a2c81616SWang Jie 	int (*get_current)(struct udevice *dev);
17a2c81616SWang Jie 	int (*get_online)(struct udevice *dev);
18a2c81616SWang Jie };
19a2c81616SWang Jie 
20a2c81616SWang Jie struct power_delivery_data {
21a2c81616SWang Jie 	int voltage;
22a2c81616SWang Jie 	int current;
23a2c81616SWang Jie 	int online;
24a2c81616SWang Jie };
25a2c81616SWang Jie 
26*d0d19ce5SWang Jie #ifdef CONFIG_DM_POWER_DELIVERY
27a2c81616SWang Jie int power_delivery_get_data(struct udevice *dev, struct power_delivery_data *pd_data);
28*d0d19ce5SWang Jie #else
power_delivery_get_data(struct udevice * dev,struct power_delivery_data * pd_data)29*d0d19ce5SWang Jie inline int power_delivery_get_data(struct udevice *dev,
30*d0d19ce5SWang Jie 				   struct power_delivery_data *pd_data)
31*d0d19ce5SWang Jie {
32*d0d19ce5SWang Jie 	return -ENOSYS;
33*d0d19ce5SWang Jie }
34*d0d19ce5SWang Jie #endif
35a2c81616SWang Jie #endif
36