xref: /rk3399_rockchip-uboot/drivers/power/charge-display-uclass.c (revision f36a2342cd11fdba0bd6a6c62e77f8a9e916dbe9)
155b6f88eSJoseph Chen /*
255b6f88eSJoseph Chen  * (C) Copyright 2017 Rockchip Electronics Co., Ltd
355b6f88eSJoseph Chen  *
455b6f88eSJoseph Chen  * SPDX-License-Identifier:     GPL-2.0+
555b6f88eSJoseph Chen  */
655b6f88eSJoseph Chen 
755b6f88eSJoseph Chen #include <command.h>
855b6f88eSJoseph Chen #include <common.h>
955b6f88eSJoseph Chen #include <dm.h>
1055b6f88eSJoseph Chen #include <power/charge_display.h>
1155b6f88eSJoseph Chen 
12*f36a2342SJoseph Chen static int charge_display_show(struct udevice *dev)
1355b6f88eSJoseph Chen {
1455b6f88eSJoseph Chen 	const struct dm_charge_display_ops *ops = dev_get_driver_ops(dev);
1555b6f88eSJoseph Chen 
1655b6f88eSJoseph Chen 	if (!ops || !ops->show)
1755b6f88eSJoseph Chen 		return -ENOSYS;
1855b6f88eSJoseph Chen 
1955b6f88eSJoseph Chen 	return ops->show(dev);
2055b6f88eSJoseph Chen }
2155b6f88eSJoseph Chen 
22*f36a2342SJoseph Chen int charge_display(void)
23*f36a2342SJoseph Chen {
24*f36a2342SJoseph Chen 	struct udevice *dev;
25*f36a2342SJoseph Chen 	int ret;
26*f36a2342SJoseph Chen 
27*f36a2342SJoseph Chen 	ret = uclass_get_device(UCLASS_CHARGE_DISPLAY, 0, &dev);
28*f36a2342SJoseph Chen 	if (ret) {
29*f36a2342SJoseph Chen 		debug("Get charge display failed, ret=%d\n", ret);
30*f36a2342SJoseph Chen 		return ret;
31*f36a2342SJoseph Chen 	}
32*f36a2342SJoseph Chen 
33*f36a2342SJoseph Chen 	return charge_display_show(dev);
34*f36a2342SJoseph Chen }
35*f36a2342SJoseph Chen 
3655b6f88eSJoseph Chen UCLASS_DRIVER(charge_display) = {
3755b6f88eSJoseph Chen 	.id	= UCLASS_CHARGE_DISPLAY,
3855b6f88eSJoseph Chen 	.name	= "charge_display",
3955b6f88eSJoseph Chen };
40