1 /* 2 * (C) Copyright 2022 Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 #include <errno.h> 8 #include <dm.h> 9 #include <dm/device-internal.h> 10 #include <power/power_delivery/power_delivery.h> 11 12 DECLARE_GLOBAL_DATA_PTR; 13 power_delivery_get_data(struct udevice * dev,struct power_delivery_data * pd_data)14int power_delivery_get_data(struct udevice *dev, struct power_delivery_data *pd_data) 15 { 16 const struct dm_power_delivery_ops *ops = dev_get_driver_ops(dev); 17 18 if (!ops || !ops->get_current || !ops->get_voltage || !ops->get_online) 19 return -ENOSYS; 20 21 pd_data->voltage = ops->get_voltage(dev); 22 pd_data->current = ops->get_current(dev); 23 pd_data->online = ops->get_online(dev); 24 25 return 0; 26 } 27 28 UCLASS_DRIVER(power_delivery) = { 29 .id = UCLASS_PD, 30 .name = "power_delivery", 31 }; 32