From 0cd6d3b96ff337995ff290b22e24325c43229bad Mon Sep 17 00:00:00 2001 From: Joseph Chen Date: Tue, 14 Nov 2017 21:07:53 +0800 Subject: [PATCH] dm: charge display: add interface to get and update fdt parameter Change-Id: Ie2ab5c8c68fb629fd7628310f8a67084ef751f21 Signed-off-by: Joseph Chen --- drivers/power/charge-display-uclass.c | 40 +++++++++++++++++++++++++++ include/power/charge_display.h | 9 ++++++ 2 files changed, 49 insertions(+) diff --git a/drivers/power/charge-display-uclass.c b/drivers/power/charge-display-uclass.c index 41bed07ce8..d3899b972f 100644 --- a/drivers/power/charge-display-uclass.c +++ b/drivers/power/charge-display-uclass.c @@ -29,6 +29,16 @@ int charge_display_get_power_on_voltage(struct udevice *dev) return ops->get_power_on_voltage(dev); } +int charge_display_get_screen_on_voltage(struct udevice *dev) +{ + const struct dm_charge_display_ops *ops = dev_get_driver_ops(dev); + + if (!ops || !ops->get_screen_on_voltage) + return -ENOSYS; + + return ops->get_screen_on_voltage(dev); +} + int charge_display_show(struct udevice *dev) { const struct dm_charge_display_ops *ops = dev_get_driver_ops(dev); @@ -39,6 +49,36 @@ int charge_display_show(struct udevice *dev) return ops->show(dev); } +int charge_display_set_power_on_soc(struct udevice *dev, int val) +{ + const struct dm_charge_display_ops *ops = dev_get_driver_ops(dev); + + if (!ops || !ops->set_power_on_soc) + return -ENOSYS; + + return ops->set_power_on_soc(dev, val); +} + +int charge_display_set_power_on_voltage(struct udevice *dev, int val) +{ + const struct dm_charge_display_ops *ops = dev_get_driver_ops(dev); + + if (!ops || !ops->set_power_on_voltage) + return -ENOSYS; + + return ops->set_power_on_voltage(dev, val); +} + +int charge_display_set_screen_on_voltage(struct udevice *dev, int val) +{ + const struct dm_charge_display_ops *ops = dev_get_driver_ops(dev); + + if (!ops || !ops->set_screen_on_voltage) + return -ENOSYS; + + return ops->set_screen_on_voltage(dev, val); +} + UCLASS_DRIVER(charge_display) = { .id = UCLASS_CHARGE_DISPLAY, .name = "charge_display", diff --git a/include/power/charge_display.h b/include/power/charge_display.h index 9c3486ea52..2fc9b3adec 100644 --- a/include/power/charge_display.h +++ b/include/power/charge_display.h @@ -10,11 +10,20 @@ struct dm_charge_display_ops { int (*get_power_on_soc)(struct udevice *dev); int (*get_power_on_voltage)(struct udevice *dev); + int (*get_screen_on_voltage)(struct udevice *dev); + int (*set_power_on_soc)(struct udevice *dev, int val); + int (*set_power_on_voltage)(struct udevice *dev, int val); + int (*set_screen_on_voltage)(struct udevice *dev, int val); 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_get_screen_on_voltage(struct udevice *dev); +int charge_display_set_power_on_soc(struct udevice *dev, int val); +int charge_display_set_power_on_voltage(struct udevice *dev, int val); +int charge_display_set_screen_on_voltage(struct udevice *dev, int val); + int charge_display_show(struct udevice *dev); #endif