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