From mboxrd@z Thu Jan 1 00:00:00 1970 From: techping.chan at gmail.com Date: Mon, 27 Mar 2017 22:38:39 +0800 Subject: [U-Boot] [PATCH 2/6] led: gpio: add support for get_status function In-Reply-To: <1490625523-11594-1-git-send-email-techping.chan@gmail.com> References: <1490625523-11594-1-git-send-email-techping.chan@gmail.com> Message-ID: <1490625523-11594-2-git-send-email-techping.chan@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de From: Ziping Chen The status of a GPIO-connected LED can be read back by reading the GPO value. Add the support for get_status function in led_gpio driver. Signed-off-by: Ziping Chen --- drivers/led/led_gpio.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/led/led_gpio.c b/drivers/led/led_gpio.c index 5b11990..b64721e 100644 --- a/drivers/led/led_gpio.c +++ b/drivers/led/led_gpio.c @@ -28,6 +28,16 @@ static int gpio_led_set_on(struct udevice *dev, int on) return dm_gpio_set_value(&priv->gpio, on); } +static int gpio_led_get_status(struct udevice *dev) +{ + struct led_gpio_priv *priv = dev_get_priv(dev); + + if (!dm_gpio_is_valid(&priv->gpio)) + return -EREMOTEIO; + + return dm_gpio_get_value(&priv->gpio); +} + static int led_gpio_probe(struct udevice *dev) { struct led_uclass_plat *uc_plat = dev_get_uclass_platdata(dev); @@ -88,6 +98,7 @@ static int led_gpio_bind(struct udevice *parent) static const struct led_ops gpio_led_ops = { .set_on = gpio_led_set_on, + .get_status = gpio_led_get_status, }; static const struct udevice_id led_gpio_ids[] = { -- 2.7.4