From patchwork Mon Mar 27 14:38:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: techping.chan@gmail.com X-Patchwork-Id: 746789 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3vy98N59PXz9s8S for ; Tue, 4 Apr 2017 23:40:20 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Hz1qBLCT"; dkim-atps=neutral Received: by lists.denx.de (Postfix, from userid 105) id 57197C21C7E; Tue, 4 Apr 2017 13:35:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id E27CEC21CA4; Tue, 4 Apr 2017 13:27:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B307EC21BE6; Mon, 27 Mar 2017 14:38:56 +0000 (UTC) Received: from mail-pg0-f66.google.com (mail-pg0-f66.google.com [74.125.83.66]) by lists.denx.de (Postfix) with ESMTPS id 23413C21BE5 for ; Mon, 27 Mar 2017 14:38:56 +0000 (UTC) Received: by mail-pg0-f66.google.com with SMTP id 79so13452029pgf.0 for ; Mon, 27 Mar 2017 07:38:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=q/rBE3H0QeL/buiT+PHsGFUXGFTWdQGbX0re138tlnQ=; b=Hz1qBLCT7NchT1SNfn2QGy1phftxC0dNPbX2QVzNfOqOWalkO5A33Bmx//Pem+y2D7 go3Rtdh3QpNIT+wIZX/9PKeyOeDHII4eb9CfWrPyvWuXGd+0XwrDk211d0RRJa3fQ+VP N6NO+mbe4zcZB4kiXTWtXVVnBAUCJZhTPTtvEjzoNAQVPtKBNNbWibuUPj7kEcGFCZdU e/RcDAWTxpE0DaCjTYIQ7/xqej3f6K1LseUORVap458rpNfZ+3J2sSaxpabA6w/XVbVL FQt/eRMH/bohB6UdmeUsMUWePmreavoLlkDYMYjcbUprE35AzgVMElcrY6FxkxlUM4HA l7UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=q/rBE3H0QeL/buiT+PHsGFUXGFTWdQGbX0re138tlnQ=; b=JHZ6G7L8T6m8zD+0MsRXBZ2EZr4L5BmDJByL3wvQTA83Zzl/05dHqGbIeCgCCwmKKX /7p86h3hPj3SchOJ1kEfn4fHBxKME1ao/2mWI2fQLzTU9dO2LLsSyUXawWxMpLtyuc+k fD53KcWwJI0cOaruHAAMaK1Go7DuYmWCST10ogT6ewQ+H/ex3hM8kGaFdLX87MzZ8Y3+ vMY72hUoWdODpvDWTeLSyA6XCUBrCg7tY6Gw3LLnFxJUU/APDmv6gw5IrG94avrfyDd5 HktPuRtdPprnUoqoOi1VzYO1apTZD5sHfT2zAbJNWalyiawLptv0KIFTnTupRR09J0fw 5Ggw== X-Gm-Message-State: AFeK/H0T1QWitFxQIg87Jzu5w5OugUTsTCzVmDm5YeWomtHY5pgLHTw53PrmboPQw3lL0g== X-Received: by 10.98.153.198 with SMTP id t67mr25793486pfk.1.1490625534600; Mon, 27 Mar 2017 07:38:54 -0700 (PDT) Received: from techping-pc.lan ([121.8.210.40]) by smtp.gmail.com with ESMTPSA id q194sm1762573pfq.43.2017.03.27.07.38.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 27 Mar 2017 07:38:54 -0700 (PDT) From: techping.chan@gmail.com To: sjg@chromium.org, uri.mashiach@compulab.co.il, yamada.masahiro@socionext.com, agraf@suse.de Date: Mon, 27 Mar 2017 22:38:38 +0800 Message-Id: <1490625523-11594-1-git-send-email-techping.chan@gmail.com> X-Mailer: git-send-email 2.7.4 X-Mailman-Approved-At: Tue, 04 Apr 2017 13:27:34 +0000 Cc: u-boot@lists.denx.de, Ziping Chen Subject: [U-Boot] [PATCH 1/6] led: add get_status support for DM LED support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Ziping Chen Sometimes we need to read back the status of a LED. Add a led_get_status function for DM LED support, and add a get_status function for the driver to implement this function. Signed-off-by: Ziping Chen --- drivers/led/led-uclass.c | 10 ++++++++++ include/led.h | 15 +++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/drivers/led/led-uclass.c b/drivers/led/led-uclass.c index 784ac87..304b92a 100644 --- a/drivers/led/led-uclass.c +++ b/drivers/led/led-uclass.c @@ -42,6 +42,16 @@ int led_set_on(struct udevice *dev, int on) return ops->set_on(dev, on); } +int led_get_status(struct udevice *dev) +{ + struct led_ops *ops = led_get_ops(dev); + + if (!ops->get_status) + return -ENOSYS; + + return ops->get_status(dev); +} + UCLASS_DRIVER(led) = { .id = UCLASS_LED, .name = "led", diff --git a/include/led.h b/include/led.h index b929d0c..cd6fe98 100644 --- a/include/led.h +++ b/include/led.h @@ -26,6 +26,13 @@ struct led_ops { * @return 0 if OK, -ve on error */ int (*set_on)(struct udevice *dev, int on); + /** + * led_get_status() - get the state of an LED + * + * @dev: LED device to query + * @return 0 if LED off, 1 if LED on, -ve on error + */ + int (*get_status)(struct udevice *dev); }; #define led_get_ops(dev) ((struct led_ops *)(dev)->driver->ops) @@ -48,4 +55,12 @@ int led_get_by_label(const char *label, struct udevice **devp); */ int led_set_on(struct udevice *dev, int on); +/** + * led_get_status() - get the state of an LED + * + * @dev: LED device to query + * @return 0 if LED off, 1 if LED on, -ve on error + */ +int led_get_status(struct udevice *dev); + #endif