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