From patchwork Mon Sep 22 15:22:51 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacek Anaszewski X-Patchwork-Id: 4948511 Return-Path: X-Original-To: patchwork-linux-media@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 670D6BEEA5 for ; Mon, 22 Sep 2014 15:23:23 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 345822011B for ; Mon, 22 Sep 2014 15:23:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D15042021A for ; Mon, 22 Sep 2014 15:23:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753084AbaIVPXM (ORCPT ); Mon, 22 Sep 2014 11:23:12 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:40628 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753524AbaIVPXK (ORCPT ); Mon, 22 Sep 2014 11:23:10 -0400 Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NCB00HAK6QL84B0@mailout4.samsung.com>; Tue, 23 Sep 2014 00:23:09 +0900 (KST) X-AuditID: cbfee61b-f79d76d0000024d6-52-54203edc253d Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id EA.14.09430.CDE30245; Tue, 23 Sep 2014 00:23:08 +0900 (KST) Received: from AMDC2362.DIGITAL.local ([106.120.53.23]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0NCB003W86QA6W90@mmp1.samsung.com>; Tue, 23 Sep 2014 00:23:08 +0900 (KST) From: Jacek Anaszewski To: linux-leds@vger.kernel.org, linux-media@vger.kernel.org, devicetree@vger.kernel.org Cc: kyungmin.park@samsung.com, b.zolnierkie@samsung.com, Jacek Anaszewski , Bryan Wu , Richard Purdie Subject: [PATCH/RFC v6 1/6] Documentation: leds: Add description of LED Flash Class extension Date: Mon, 22 Sep 2014 17:22:51 +0200 Message-id: <1411399376-16497-2-git-send-email-j.anaszewski@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1411399376-16497-1-git-send-email-j.anaszewski@samsung.com> References: <1411399376-16497-1-git-send-email-j.anaszewski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprILMWRmVeSWpSXmKPExsVy+t9jAd07dgohBi2zbCw2zljPanF050Qm i/lHzrFa9F59zmhxtukNu8XWN+sYLXo2bGW12L3rKasDh8fOWXfZPfbM/8Hq0bdlFaPH501y ASxRXDYpqTmZZalF+nYJXBlnXjxhLNguXdH9dj9rA+M+sS5GDg4JAROJSV8duxg5gUwxiQv3 1rN1MXJxCAksYpT4fP09O0hCSKCdSeLkJR4Qm03AUOLni9dMILaIQKTEu6OXmEEamAVWM0rc 2fqVFSQhLBAvcbDpJlgzi4CqxLaDjWBxXgEPiZ9TXzFCLFaQmDPJBsTkFPCUuNmjDrHKQ6L/ 0BXmCYy8CxgZVjGKphYkFxQnpeca6RUn5haX5qXrJefnbmIEB9Qz6R2MqxosDjEKcDAq8fD+ aJEPEWJNLCuuzD3EKMHBrCTCGyStECLEm5JYWZValB9fVJqTWnyIUZqDRUmc92CrdaCQQHpi SWp2ampBahFMlomDU6qBsbpVKz/R/HHhbFkdHgN1+6/9K0/t5X9yzdyK6c0+mbfPZ7A6+jSp /++SkzrjG5PyQNPH4+/esxk7Nn4uE16qwNiSITEjeMPiBvU7tfPvhHirdE6dOnPqwdWij6SE paUPvLrP+viM5bXk1JZ/gXM2qUmnGh9tuX8z/fp6/rvRDjkihqXuOzqWK7EUZyQaajEXFScC AEUp7QskAgAA Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Spam-Status: No, score=-7.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The documentation being added contains overall description of the LED Flash Class and the related sysfs attributes. There are also chapters devoted specifically to the Flash Manager feature. Signed-off-by: Jacek Anaszewski Acked-by: Kyungmin Park Cc: Bryan Wu Cc: Richard Purdie --- Documentation/leds/leds-class-flash.txt | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Documentation/leds/leds-class-flash.txt diff --git a/Documentation/leds/leds-class-flash.txt b/Documentation/leds/leds-class-flash.txt new file mode 100644 index 0000000..0cf5449a --- /dev/null +++ b/Documentation/leds/leds-class-flash.txt @@ -0,0 +1,51 @@ + +Flash LED handling under Linux +============================== + +Some LED devices support two modes - torch and flash. In order to enable +support for flash LEDs CONFIG_LEDS_CLASS_FLASH symbol must be defined +in the kernel config. A flash LED driver must register in the LED subsystem +with led_classdev_flash_register to gain flash capabilities. + +Following sysfs attributes are exposed for controlling flash led devices: + + - flash_brightness - flash LED brightness in microamperes (RW) + - max_flash_brightness - maximum available flash LED brightness (RO) + - indicator_brightness - privacy LED brightness in microamperes (RW) + - max_indicator_brightness - maximum privacy LED brightness in + microamperes (RO) + - flash_timeout - flash strobe duration in microseconds (RW) + - max_flash_timeout - maximum available flash strobe duration (RO) + - flash_strobe - flash strobe state (RW) + - flash_fault - bitmask of flash faults that may have occurred, + possible flags are: + * 0x01 - flash controller voltage to the flash LED has exceeded + the limit specific to the flash controller + * 0x02 - the flash strobe was still on when the timeout set by + the user has expired; not all flash controllers may + set this in all such conditions + * 0x04 - the flash controller has overheated + * 0x08 - the short circuit protection of the flash controller + has been triggered + * 0x10 - current in the LED power supply has exceeded the limit + specific to the flash controller + * 0x40 - flash controller voltage to the flash LED has been + below the minimum limit specific to the flash + * 0x80 - the input voltage of the flash controller is below + the limit under which strobing the flash at full + current will not be possible. The condition persists + until this flag is no longer set + * 0x100 - the temperature of the LED has exceeded its allowed + upper limit + +A LED subsystem driver can be controlled also from the level of VideoForLinux2 +subsystem. In order to enable this CONFIG_V4L2_FLASH_LED_CLASS symbol has to +be defined in the kernel config. The driver must call v4l2_flash_init function +to get registered in the V4L2 subsystem. On remove v4l2_flash_release function +has to be called (see ). + +After proper initialization V4L2 Flash sub-device is created. The sub-device +exposes a number of V4L2 controls. When the V4L2_CID_FLASH_LED_MODE control +is set to V4L2_FLASH_LED_MODE_TORCH or V4L2_FLASH_LED_MODE_FLASH the +LED subsystem sysfs interface becomes unavailable. The interface can be +unlocked by setting the mode back to V4L2_FLASH_LED_MODE_NONE.