From patchwork Wed Aug 20 13:44:10 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacek Anaszewski X-Patchwork-Id: 4751671 Return-Path: X-Original-To: patchwork-linux-media@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 005A19F3B4 for ; Wed, 20 Aug 2014 13:51:22 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BBF7020176 for ; Wed, 20 Aug 2014 13:51:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AA79520103 for ; Wed, 20 Aug 2014 13:51:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752962AbaHTNof (ORCPT ); Wed, 20 Aug 2014 09:44:35 -0400 Received: from mailout1.samsung.com ([203.254.224.24]:36219 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752898AbaHTNod (ORCPT ); Wed, 20 Aug 2014 09:44:33 -0400 Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NAL00HYCY67OQ70@mailout1.samsung.com>; Wed, 20 Aug 2014 22:44:31 +0900 (KST) X-AuditID: cbfee61b-f79f86d00000144c-9e-53f4a63fc7eb Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 09.61.05196.F36A4F35; Wed, 20 Aug 2014 22:44:31 +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 <0NAL00DKXY5XUY30@mmp1.samsung.com>; Wed, 20 Aug 2014 22:44:31 +0900 (KST) From: Jacek Anaszewski To: linux-leds@vger.kernel.org, devicetree@vger.kernel.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org Cc: kyungmin.park@samsung.com, b.zolnierkie@samsung.com, Jacek Anaszewski , Bryan Wu , Richard Purdie Subject: [PATCH/RFC v5 01/10] Documentation: leds: Add description of LED Flash Class extension Date: Wed, 20 Aug 2014 15:44:10 +0200 Message-id: <1408542259-415-2-git-send-email-j.anaszewski@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1408542259-415-1-git-send-email-j.anaszewski@samsung.com> References: <1408542259-415-1-git-send-email-j.anaszewski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBLMWRmVeSWpSXmKPExsVy+t9jAV37ZV+CDc63SVhsnLGe1eLozolM FvOPnGO16L36nNHibNMbdovLu+awWWx9s47RomfDVlaL3buesjpweuycdZfdY8/8H6wefVtW MXp83iQXwBLFZZOSmpNZllqkb5fAlXGx6xlLwRWZipN/lrA3MG4S72Lk5JAQMJGY2/yXBcIW k7hwbz1bFyMXh5DAIkaJIxOWMEI47UwSl/9eZgWpYhMwlPj54jUTiC0iUC7R8/4ZWAezwGpG iTtbv4IVCQskSlz6cYAZxGYRUJU4f2M7O4jNK+Amce7UMaBmDqB1ChJzJtmAmJwC7hJb3quA VAgBVZx+N5tlAiPvAkaGVYyiqQXJBcVJ6blGesWJucWleel6yfm5mxjB4fVMegfjqgaLQ4wC HIxKPLw3Fn0JFmJNLCuuzD3EKMHBrCTC294JFOJNSaysSi3Kjy8qzUktPsQozcGiJM57sNU6 UEggPbEkNTs1tSC1CCbLxMEpBQweVZbUQ+3bpVbEGi//dzDuwewAjRj5Kq4nkRPl79yzN96x qEYqKGN/8suatodmnvKyGscl+dWD7dZeunXY4oXwJiuZM78cz6xeaijyPil4ocO05uSErROP Xg9+ZOEc/XNpiHL8hUt31CznNLzc/IO3su5rVlDjynVaJ3xnbuXauyGu2mKj8EslluKMREMt 5qLiRAAFHViPKwIAAA== 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.6 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 | 54 +++++++++++++++++++++++++++++++ 1 file changed, 54 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..8a9c17e --- /dev/null +++ b/Documentation/leds/leds-class-flash.txt @@ -0,0 +1,54 @@ + +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) + - external_strobe - some devices expose dedicated hardware pins for + triggering a flash LED - this attribute allows to + set this mode (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.