dm: add charge display uclass
This is mainly used for charge animation. Change-Id: Iac4ffe76b1985abfa44181a797a15df74e5bcf14 Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This commit is contained in:
parent
7569b0b942
commit
55b6f88e0e
|
|
@ -8,6 +8,12 @@ source "drivers/power/pmic/Kconfig"
|
||||||
|
|
||||||
source "drivers/power/regulator/Kconfig"
|
source "drivers/power/regulator/Kconfig"
|
||||||
|
|
||||||
|
config DM_CHARGE_DISPLAY
|
||||||
|
bool "Enable driver model for charge display support"
|
||||||
|
depends on DM
|
||||||
|
help
|
||||||
|
This adds a simple uclass for charge display.
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "Select Sunxi PMIC Variant"
|
prompt "Select Sunxi PMIC Variant"
|
||||||
depends on ARCH_SUNXI
|
depends on ARCH_SUNXI
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0+
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
#
|
#
|
||||||
|
|
||||||
|
obj-$(CONFIG_DM_CHARGE_DISPLAY) += charge-display-uclass.o
|
||||||
|
|
||||||
obj-$(CONFIG_AXP152_POWER) += axp152.o
|
obj-$(CONFIG_AXP152_POWER) += axp152.o
|
||||||
obj-$(CONFIG_AXP209_POWER) += axp209.o
|
obj-$(CONFIG_AXP209_POWER) += axp209.o
|
||||||
obj-$(CONFIG_AXP221_POWER) += axp221.o
|
obj-$(CONFIG_AXP221_POWER) += axp221.o
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2017 Rockchip Electronics Co., Ltd
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <command.h>
|
||||||
|
#include <common.h>
|
||||||
|
#include <dm.h>
|
||||||
|
#include <power/charge_display.h>
|
||||||
|
|
||||||
|
int charge_display_get_power_on_soc(struct udevice *dev)
|
||||||
|
{
|
||||||
|
const struct dm_charge_display_ops *ops = dev_get_driver_ops(dev);
|
||||||
|
|
||||||
|
if (!ops || !ops->get_power_on_soc)
|
||||||
|
return -ENOSYS;
|
||||||
|
|
||||||
|
return ops->get_power_on_soc(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
int charge_display_get_power_on_voltage(struct udevice *dev)
|
||||||
|
{
|
||||||
|
const struct dm_charge_display_ops *ops = dev_get_driver_ops(dev);
|
||||||
|
|
||||||
|
if (!ops || !ops->get_power_on_voltage)
|
||||||
|
return -ENOSYS;
|
||||||
|
|
||||||
|
return ops->get_power_on_voltage(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
int charge_display_show(struct udevice *dev)
|
||||||
|
{
|
||||||
|
const struct dm_charge_display_ops *ops = dev_get_driver_ops(dev);
|
||||||
|
|
||||||
|
if (!ops || !ops->show)
|
||||||
|
return -ENOSYS;
|
||||||
|
|
||||||
|
return ops->show(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
UCLASS_DRIVER(charge_display) = {
|
||||||
|
.id = UCLASS_CHARGE_DISPLAY,
|
||||||
|
.name = "charge_display",
|
||||||
|
};
|
||||||
|
|
@ -94,6 +94,7 @@ enum uclass_id {
|
||||||
UCLASS_FG,
|
UCLASS_FG,
|
||||||
UCLASS_KEY,
|
UCLASS_KEY,
|
||||||
UCLASS_RC, /* Remote Controller */
|
UCLASS_RC, /* Remote Controller */
|
||||||
|
UCLASS_CHARGE_DISPLAY, /* Charge display */
|
||||||
|
|
||||||
UCLASS_COUNT,
|
UCLASS_COUNT,
|
||||||
UCLASS_INVALID = -1,
|
UCLASS_INVALID = -1,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2017 Rockchip Electronics Co., Ltd
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _CHARGE_DISPLAY_H_
|
||||||
|
#define _CHARGE_DISPLAY_H_
|
||||||
|
|
||||||
|
struct dm_charge_display_ops {
|
||||||
|
int (*get_power_on_soc)(struct udevice *dev);
|
||||||
|
int (*get_power_on_voltage)(struct udevice *dev);
|
||||||
|
int (*show)(struct udevice *dev);
|
||||||
|
};
|
||||||
|
|
||||||
|
int charge_display_get_power_on_soc(struct udevice *dev);
|
||||||
|
int charge_display_get_power_on_voltage(struct udevice *dev);
|
||||||
|
int charge_display_show(struct udevice *dev);
|
||||||
|
|
||||||
|
#endif
|
||||||
Loading…
Reference in New Issue