Message ID | 1425485680-8417-11-git-send-email-j.anaszewski@samsung.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from <linux-media-owner@vger.kernel.org>) id 1YTC1b-0000ML-Jo; Wed, 04 Mar 2015 17:19:55 +0100 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.72/mailfrontend-8) with esmtp id 1YTC1Z-0005de-kn; Wed, 04 Mar 2015 17:19:55 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933658AbbCDQTh (ORCPT <rfc822;mkrufky@linuxtv.org> + 1 other); Wed, 4 Mar 2015 11:19:37 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:12626 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933323AbbCDQQm (ORCPT <rfc822; linux-media@vger.kernel.org>); Wed, 4 Mar 2015 11:16:42 -0500 Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NKP00KR03VSSDB0@mailout3.samsung.com>; Thu, 05 Mar 2015 01:16:40 +0900 (KST) X-AuditID: cbfee61a-f79c06d000004e71-47-54f72fe8d2fe Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 89.B4.20081.8EF27F45; Thu, 05 Mar 2015 01:16:40 +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 <0NKP0082A3SJHN70@mmp1.samsung.com>; Thu, 05 Mar 2015 01:16:40 +0900 (KST) From: Jacek Anaszewski <j.anaszewski@samsung.com> To: linux-leds@vger.kernel.org, linux-media@vger.kernel.org Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, kyungmin.park@samsung.com, pavel@ucw.cz, cooloney@gmail.com, rpurdie@rpsys.net, sakari.ailus@iki.fi, s.nawrocki@samsung.com, Jacek Anaszewski <j.anaszewski@samsung.com>, Andrzej Hajda <a.hajda@samsung.com>, Lee Jones <lee.jones@linaro.org>, Chanwoo Choi <cw00.choi@samsung.com> Subject: [PATCH/RFC v12 10/19] DT: Add documentation for the mfd Maxim max77693 Date: Wed, 04 Mar 2015 17:14:31 +0100 Message-id: <1425485680-8417-11-git-send-email-j.anaszewski@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1425485680-8417-1-git-send-email-j.anaszewski@samsung.com> References: <1425485680-8417-1-git-send-email-j.anaszewski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrPLMWRmVeSWpSXmKPExsVy+t9jAd0X+t9DDG6fFrC4te4cq8XRnROZ LK5/ec5qMf8IkNt79TmjxdmmN+wW978eZbS4vGsOm8XWN+sYLXo2bGW1uHvqKJvF7l1PWS0O v2lntTizfyWbA5/Hzll32T0Of13I4nHn2h42jz3zf7B69G1ZxeixYvV3do/Pm+QC2KO4bFJS czLLUov07RK4Mvov9bMWLJOpWNL/la2BcbN4FyMHh4SAicTZJ9ZdjJxAppjEhXvr2boYuTiE BBYxSqzqOsgK4bQzSdy8sJsJpIpNwFDi54vXYLaIgLXErEPTWUBsZoG7TBIvdqSD2MIC/hLf P61kBLFZBFQlpl36zgpi8wp4SJzfu5QdYrGCxJxJNiBhTqDw2ZvrwUYKCbhLHH64n2UCI+8C RoZVjKKpBckFxUnpuYZ6xYm5xaV56XrJ+bmbGMHB+kxqB+PKBotDjAIcjEo8vBnR30KEWBPL iitzDzFKcDArifA+Z/seIsSbklhZlVqUH19UmpNafIhRmoNFSZxXyb4tREggPbEkNTs1tSC1 CCbLxMEp1cBYJN7lovrB3TZi+YvjXoXLT97ukXlmo+vgdN6W4XKvqHfgsUnmR6dz3r15f5tR 2duw1S1teUcTdmhleypt7c9xaZoqMTnpuKbs9W3GjKul8/mWafz9Ksa52CSmQNPihJJn60XW ouoTX671JIQHzEnpODZBw9rgYqjoJ804no6klzdr7vWk/1diKc5INNRiLipOBACsdiQLUgIA AA== Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: <linux-media.vger.kernel.org> X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 6.0.0.2142326, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2015.3.4.161220 X-PMX-Spam: Gauge=IIIIIIIII, Probability=9%, Report=' HTML_NO_HTTP 0.1, MULTIPLE_RCPTS 0.1, HTML_00_10 0.05, BODY_SIZE_3000_3999 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, REFERENCES 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CP_NAME_BODY 0, __CP_URI_IN_BODY 0, __FRAUD_BADTHINGS 0, __HAS_FROM 0, __HAS_HTML 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __IN_REP_TO 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __REFERENCES 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS ' |
Commit Message
Jacek Anaszewski
March 4, 2015, 4:14 p.m. UTC
This patch adds device tree binding documentation for the flash cell of the Maxim max77693 multifunctional device. Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Cc: Lee Jones <lee.jones@linaro.org> Cc: Chanwoo Choi <cw00.choi@samsung.com> Cc: Bryan Wu <cooloney@gmail.com> Cc: Richard Purdie <rpurdie@rpsys.net> --- Documentation/devicetree/bindings/mfd/max77693.txt | 61 ++++++++++++++++++++ 1 file changed, 61 insertions(+)
Comments
Hi Jacek, On Wed, Mar 04, 2015 at 05:14:31PM +0100, Jacek Anaszewski wrote: > This patch adds device tree binding documentation for > the flash cell of the Maxim max77693 multifunctional device. > > Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com> > Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> > Acked-by: Kyungmin Park <kyungmin.park@samsung.com> > Cc: Lee Jones <lee.jones@linaro.org> > Cc: Chanwoo Choi <cw00.choi@samsung.com> > Cc: Bryan Wu <cooloney@gmail.com> > Cc: Richard Purdie <rpurdie@rpsys.net> > --- > Documentation/devicetree/bindings/mfd/max77693.txt | 61 ++++++++++++++++++++ > 1 file changed, 61 insertions(+) > > diff --git a/Documentation/devicetree/bindings/mfd/max77693.txt b/Documentation/devicetree/bindings/mfd/max77693.txt > index 38e6440..ab8fbd5 100644 > --- a/Documentation/devicetree/bindings/mfd/max77693.txt > +++ b/Documentation/devicetree/bindings/mfd/max77693.txt > @@ -76,7 +76,53 @@ Optional properties: > Valid values: 4300000, 4700000, 4800000, 4900000 > Default: 4300000 > > +- led : the LED submodule device node > + > +There are two LED outputs available - FLED1 and FLED2. Each of them can > +control a separate LED or they can be connected together to double > +the maximum current for a single connected LED. One LED is represented > +by one child node. > + > +Required properties: > +- compatible : Must be "maxim,max77693-led". > + > +Optional properties: > +- maxim,trigger-type : Flash trigger type. > + Possible trigger types: > + LEDS_TRIG_TYPE_EDGE (0) - Rising edge of the signal triggers > + the flash, > + LEDS_TRIG_TYPE_LEVEL (1) - Strobe pulse length controls duration > + of the flash. > +- maxim,boost-mode : > + In boost mode the device can produce up to 1.2A of total current > + on both outputs. The maximum current on each output is reduced > + to 625mA then. If not enabled explicitly, boost setting defaults to > + LEDS_BOOST_FIXED in case both current sources are used. > + Possible values: > + LEDS_BOOST_OFF (0) - no boost, > + LEDS_BOOST_ADAPTIVE (1) - adaptive mode, > + LEDS_BOOST_FIXED (2) - fixed mode. > +- maxim,boost-mvout : Output voltage of the boost module in millivolts. > +- maxim,mvsys-min : Low input voltage level in millivolts. Flash is not fired > + if chip estimates that system voltage could drop below this level due > + to flash power consumption. > + > +Required properties of the LED child node: > +- label : see Documentation/devicetree/bindings/leds/common.txt According to ePAPR, label is "a human readable string describing a device". There's no requirement that this would be unique, for instance. If you have a camera flash LED, there's necessarily no meaningful label for it, as it doesn't really tell the user anything (vs. HDD activity LED, for instance). I think I'd make this optional. What comes to entity naming in Media controller, the label isn't enough. As we haven't yet fully agreed on how to name the entities in the future, I'd propose sticking to current practices: chip name (and optional numerical LED ID) followed by the I2C address. The name should be specified by the driver. Do you have other than I2C busses required by the current drivers? > +- led-sources : see Documentation/devicetree/bindings/leds/common.txt; > + device current output identifiers: 0 - FLED1, 1 - FLED2 > + > +Optional properties of the LED child node: > +- max-microamp : see Documentation/devicetree/bindings/leds/common.txt > + Range: 15625 - 250000 > +- flash-max-microamp : see Documentation/devicetree/bindings/leds/common.txt > + Range: 15625 - 1000000 > +- flash-timeout-us : see Documentation/devicetree/bindings/leds/common.txt > + Range: 62500 - 1000000 > + > Example: > +#include <dt-bindings/leds/max77693.h> > + > max77693@66 { > compatible = "maxim,max77693"; > reg = <0x66>; > @@ -117,5 +163,20 @@ Example: > maxim,thermal-regulation-celsius = <75>; > maxim,battery-overcurrent-microamp = <3000000>; > maxim,charge-input-threshold-microvolt = <4300000>; > + > + led { > + compatible = "maxim,max77693-led"; > + maxim,trigger-type = <LEDS_TRIG_TYPE_LEVEL>; > + maxim,boost-mode = <LEDS_BOOST_FIXED>; > + maxim,boost-mvout = <5000>; > + maxim,mvsys-min = <2400>; > + > + camera_flash: flash-led { > + label = "max77693-flash1"; > + led-sources = <0>, <1>; > + max-microamp = <500000>; > + flash-max-microamp = <1250000>; > + flash-timeout-us = <1000000>; > + }; > }; > };
Hi Sakari, Thanks for the review. On 03/09/2015 11:54 AM, Sakari Ailus wrote: > Hi Jacek, > > On Wed, Mar 04, 2015 at 05:14:31PM +0100, Jacek Anaszewski wrote: >> This patch adds device tree binding documentation for >> the flash cell of the Maxim max77693 multifunctional device. >> >> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com> >> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> >> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> >> Cc: Lee Jones <lee.jones@linaro.org> >> Cc: Chanwoo Choi <cw00.choi@samsung.com> >> Cc: Bryan Wu <cooloney@gmail.com> >> Cc: Richard Purdie <rpurdie@rpsys.net> >> --- >> Documentation/devicetree/bindings/mfd/max77693.txt | 61 ++++++++++++++++++++ >> 1 file changed, 61 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/mfd/max77693.txt b/Documentation/devicetree/bindings/mfd/max77693.txt >> index 38e6440..ab8fbd5 100644 >> --- a/Documentation/devicetree/bindings/mfd/max77693.txt >> +++ b/Documentation/devicetree/bindings/mfd/max77693.txt >> @@ -76,7 +76,53 @@ Optional properties: >> Valid values: 4300000, 4700000, 4800000, 4900000 >> Default: 4300000 >> >> +- led : the LED submodule device node >> + >> +There are two LED outputs available - FLED1 and FLED2. Each of them can >> +control a separate LED or they can be connected together to double >> +the maximum current for a single connected LED. One LED is represented >> +by one child node. >> + >> +Required properties: >> +- compatible : Must be "maxim,max77693-led". >> + >> +Optional properties: >> +- maxim,trigger-type : Flash trigger type. >> + Possible trigger types: >> + LEDS_TRIG_TYPE_EDGE (0) - Rising edge of the signal triggers >> + the flash, >> + LEDS_TRIG_TYPE_LEVEL (1) - Strobe pulse length controls duration >> + of the flash. >> +- maxim,boost-mode : >> + In boost mode the device can produce up to 1.2A of total current >> + on both outputs. The maximum current on each output is reduced >> + to 625mA then. If not enabled explicitly, boost setting defaults to >> + LEDS_BOOST_FIXED in case both current sources are used. >> + Possible values: >> + LEDS_BOOST_OFF (0) - no boost, >> + LEDS_BOOST_ADAPTIVE (1) - adaptive mode, >> + LEDS_BOOST_FIXED (2) - fixed mode. >> +- maxim,boost-mvout : Output voltage of the boost module in millivolts. >> +- maxim,mvsys-min : Low input voltage level in millivolts. Flash is not fired >> + if chip estimates that system voltage could drop below this level due >> + to flash power consumption. >> + >> +Required properties of the LED child node: >> +- label : see Documentation/devicetree/bindings/leds/common.txt > > According to ePAPR, label is "a human readable string describing a device". > There's no requirement that this would be unique, for instance. If you have > a camera flash LED, there's necessarily no meaningful label for it, as it > doesn't really tell the user anything (vs. HDD activity LED, for instance). > > I think I'd make this optional. OK. > What comes to entity naming in Media controller, the label isn't enough. As > we haven't yet fully agreed on how to name the entities in the future, I'd > propose sticking to current practices: chip name (and optional numerical LED > ID) followed by the I2C address. The name should be specified by the driver. > > Do you have other than I2C busses required by the current drivers? I have AAT1290 device driven through GPIOs. There was also other driver, for a similar device, submitted few days ago to linux-leds list. >> +- led-sources : see Documentation/devicetree/bindings/leds/common.txt; >> + device current output identifiers: 0 - FLED1, 1 - FLED2 >> + >> +Optional properties of the LED child node: >> +- max-microamp : see Documentation/devicetree/bindings/leds/common.txt >> + Range: 15625 - 250000 >> +- flash-max-microamp : see Documentation/devicetree/bindings/leds/common.txt >> + Range: 15625 - 1000000 >> +- flash-timeout-us : see Documentation/devicetree/bindings/leds/common.txt >> + Range: 62500 - 1000000 >> + >> Example: >> +#include <dt-bindings/leds/max77693.h> >> + >> max77693@66 { >> compatible = "maxim,max77693"; >> reg = <0x66>; >> @@ -117,5 +163,20 @@ Example: >> maxim,thermal-regulation-celsius = <75>; >> maxim,battery-overcurrent-microamp = <3000000>; >> maxim,charge-input-threshold-microvolt = <4300000>; >> + >> + led { >> + compatible = "maxim,max77693-led"; >> + maxim,trigger-type = <LEDS_TRIG_TYPE_LEVEL>; >> + maxim,boost-mode = <LEDS_BOOST_FIXED>; >> + maxim,boost-mvout = <5000>; >> + maxim,mvsys-min = <2400>; >> + >> + camera_flash: flash-led { >> + label = "max77693-flash1"; >> + led-sources = <0>, <1>; >> + max-microamp = <500000>; >> + flash-max-microamp = <1250000>; >> + flash-timeout-us = <1000000>; >> + }; >> }; >> }; >
Hi Jacek, On Mon, Mar 09, 2015 at 01:19:32PM +0100, Jacek Anaszewski wrote: > Hi Sakari, > > Thanks for the review. > > On 03/09/2015 11:54 AM, Sakari Ailus wrote: > >Hi Jacek, > > > >On Wed, Mar 04, 2015 at 05:14:31PM +0100, Jacek Anaszewski wrote: > >>This patch adds device tree binding documentation for > >>the flash cell of the Maxim max77693 multifunctional device. > >> > >>Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com> > >>Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> > >>Acked-by: Kyungmin Park <kyungmin.park@samsung.com> > >>Cc: Lee Jones <lee.jones@linaro.org> > >>Cc: Chanwoo Choi <cw00.choi@samsung.com> > >>Cc: Bryan Wu <cooloney@gmail.com> > >>Cc: Richard Purdie <rpurdie@rpsys.net> > >>--- > >> Documentation/devicetree/bindings/mfd/max77693.txt | 61 ++++++++++++++++++++ > >> 1 file changed, 61 insertions(+) > >> > >>diff --git a/Documentation/devicetree/bindings/mfd/max77693.txt b/Documentation/devicetree/bindings/mfd/max77693.txt > >>index 38e6440..ab8fbd5 100644 > >>--- a/Documentation/devicetree/bindings/mfd/max77693.txt > >>+++ b/Documentation/devicetree/bindings/mfd/max77693.txt > >>@@ -76,7 +76,53 @@ Optional properties: > >> Valid values: 4300000, 4700000, 4800000, 4900000 > >> Default: 4300000 > >> > >>+- led : the LED submodule device node > >>+ > >>+There are two LED outputs available - FLED1 and FLED2. Each of them can > >>+control a separate LED or they can be connected together to double > >>+the maximum current for a single connected LED. One LED is represented > >>+by one child node. > >>+ > >>+Required properties: > >>+- compatible : Must be "maxim,max77693-led". > >>+ > >>+Optional properties: > >>+- maxim,trigger-type : Flash trigger type. > >>+ Possible trigger types: > >>+ LEDS_TRIG_TYPE_EDGE (0) - Rising edge of the signal triggers > >>+ the flash, > >>+ LEDS_TRIG_TYPE_LEVEL (1) - Strobe pulse length controls duration > >>+ of the flash. > >>+- maxim,boost-mode : > >>+ In boost mode the device can produce up to 1.2A of total current > >>+ on both outputs. The maximum current on each output is reduced > >>+ to 625mA then. If not enabled explicitly, boost setting defaults to > >>+ LEDS_BOOST_FIXED in case both current sources are used. > >>+ Possible values: > >>+ LEDS_BOOST_OFF (0) - no boost, > >>+ LEDS_BOOST_ADAPTIVE (1) - adaptive mode, > >>+ LEDS_BOOST_FIXED (2) - fixed mode. > >>+- maxim,boost-mvout : Output voltage of the boost module in millivolts. > >>+- maxim,mvsys-min : Low input voltage level in millivolts. Flash is not fired > >>+ if chip estimates that system voltage could drop below this level due > >>+ to flash power consumption. > >>+ > >>+Required properties of the LED child node: > >>+- label : see Documentation/devicetree/bindings/leds/common.txt > > > >According to ePAPR, label is "a human readable string describing a device". > >There's no requirement that this would be unique, for instance. If you have > >a camera flash LED, there's necessarily no meaningful label for it, as it > >doesn't really tell the user anything (vs. HDD activity LED, for instance). > > > >I think I'd make this optional. > > OK. > > >What comes to entity naming in Media controller, the label isn't enough. As > >we haven't yet fully agreed on how to name the entities in the future, I'd > >propose sticking to current practices: chip name (and optional numerical LED > >ID) followed by the I2C address. The name should be specified by the driver. > > > >Do you have other than I2C busses required by the current drivers? > > I have AAT1290 device driven through GPIOs. There was also other driver, > for a similar device, submitted few days ago to linux-leds list. The problem indeed is defining a stable and unique identifier for a device in a system. In context of your patchset, I think this mostly matters in the V4L2 flash API wrapper patch. GPIO controlled devices are little bit more troublesome, as GPIO numbers alone aren't necessarily stable, but depend on the probing order. Well, i2c controllers could also be registered dynamically. The same goes for PCI devices, too, for instance. Most i2c adapters have a static id, and PCI devices have a stable bus address (unless system configuration is modified by e.g. adding or removing OTHER devices). I wonder if this could be resolved on OF-based systems by adding a string property, say, device name, whenever where are more than one device of a kind in the system. The string could just contain a numeric value, say 0 or 1. Cc Hans and Laurent.
On 03/09/2015 01:37 PM, Sakari Ailus wrote: > Hi Jacek, > > On Mon, Mar 09, 2015 at 01:19:32PM +0100, Jacek Anaszewski wrote: >> Hi Sakari, >> >> Thanks for the review. >> >> On 03/09/2015 11:54 AM, Sakari Ailus wrote: >>> Hi Jacek, >>> >>> On Wed, Mar 04, 2015 at 05:14:31PM +0100, Jacek Anaszewski wrote: >>>> This patch adds device tree binding documentation for >>>> the flash cell of the Maxim max77693 multifunctional device. >>>> >>>> Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com> >>>> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> >>>> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> >>>> Cc: Lee Jones <lee.jones@linaro.org> >>>> Cc: Chanwoo Choi <cw00.choi@samsung.com> >>>> Cc: Bryan Wu <cooloney@gmail.com> >>>> Cc: Richard Purdie <rpurdie@rpsys.net> >>>> --- >>>> Documentation/devicetree/bindings/mfd/max77693.txt | 61 ++++++++++++++++++++ >>>> 1 file changed, 61 insertions(+) >>>> >>>> diff --git a/Documentation/devicetree/bindings/mfd/max77693.txt b/Documentation/devicetree/bindings/mfd/max77693.txt >>>> index 38e6440..ab8fbd5 100644 >>>> --- a/Documentation/devicetree/bindings/mfd/max77693.txt >>>> +++ b/Documentation/devicetree/bindings/mfd/max77693.txt >>>> @@ -76,7 +76,53 @@ Optional properties: >>>> Valid values: 4300000, 4700000, 4800000, 4900000 >>>> Default: 4300000 >>>> >>>> +- led : the LED submodule device node >>>> + >>>> +There are two LED outputs available - FLED1 and FLED2. Each of them can >>>> +control a separate LED or they can be connected together to double >>>> +the maximum current for a single connected LED. One LED is represented >>>> +by one child node. >>>> + >>>> +Required properties: >>>> +- compatible : Must be "maxim,max77693-led". >>>> + >>>> +Optional properties: >>>> +- maxim,trigger-type : Flash trigger type. >>>> + Possible trigger types: >>>> + LEDS_TRIG_TYPE_EDGE (0) - Rising edge of the signal triggers >>>> + the flash, >>>> + LEDS_TRIG_TYPE_LEVEL (1) - Strobe pulse length controls duration >>>> + of the flash. >>>> +- maxim,boost-mode : >>>> + In boost mode the device can produce up to 1.2A of total current >>>> + on both outputs. The maximum current on each output is reduced >>>> + to 625mA then. If not enabled explicitly, boost setting defaults to >>>> + LEDS_BOOST_FIXED in case both current sources are used. >>>> + Possible values: >>>> + LEDS_BOOST_OFF (0) - no boost, >>>> + LEDS_BOOST_ADAPTIVE (1) - adaptive mode, >>>> + LEDS_BOOST_FIXED (2) - fixed mode. >>>> +- maxim,boost-mvout : Output voltage of the boost module in millivolts. >>>> +- maxim,mvsys-min : Low input voltage level in millivolts. Flash is not fired >>>> + if chip estimates that system voltage could drop below this level due >>>> + to flash power consumption. >>>> + >>>> +Required properties of the LED child node: >>>> +- label : see Documentation/devicetree/bindings/leds/common.txt >>> >>> According to ePAPR, label is "a human readable string describing a device". >>> There's no requirement that this would be unique, for instance. If you have >>> a camera flash LED, there's necessarily no meaningful label for it, as it >>> doesn't really tell the user anything (vs. HDD activity LED, for instance). >>> >>> I think I'd make this optional. >> >> OK. >> >>> What comes to entity naming in Media controller, the label isn't enough. As >>> we haven't yet fully agreed on how to name the entities in the future, I'd >>> propose sticking to current practices: chip name (and optional numerical LED >>> ID) followed by the I2C address. The name should be specified by the driver. >>> >>> Do you have other than I2C busses required by the current drivers? >> >> I have AAT1290 device driven through GPIOs. There was also other driver, >> for a similar device, submitted few days ago to linux-leds list. > > The problem indeed is defining a stable and unique identifier for a device > in a system. In context of your patchset, I think this mostly matters in the > V4L2 flash API wrapper patch. It would be good if LED Flash class device name would match V4L2 Flash sub-device name. LED class devices are assigned names on the basis of 'name' property of struct led-classdev, which is passed to the device_create_with_groups function. Some LED class drivers use hardcoded strings for 'name' and other ones use the value of DT 'label' property as the first choice, if it is available. > GPIO controlled devices are little bit more troublesome, as GPIO numbers > alone aren't necessarily stable, but depend on the probing order. Well, i2c > controllers could also be registered dynamically. The same goes for PCI > devices, too, for instance. For LED Flash devices we must also keep in mind that a device is created per discrete LED component connected to one or more current outputs of the flash LED controller. There can be more than one LED Flash class device created per flash LED controller. This problem seems to be even harder than the case with more than one device of a kind in the system, as the devices are controlled with the same hardware interface. > Most i2c adapters have a static id, and PCI devices have a stable bus > address (unless system configuration is modified by e.g. adding or removing > OTHER devices). > > I wonder if this could be resolved on OF-based systems by adding a string > property, say, device name, whenever where are more than one device of a > kind in the system. The string could just contain a numeric value, say 0 or > 1. I can't think of a better solution, especially taking into account the LED Flash class device case with multiple related LED Flash class/v4l2-flash devices. > Cc Hans and Laurent.
diff --git a/Documentation/devicetree/bindings/mfd/max77693.txt b/Documentation/devicetree/bindings/mfd/max77693.txt index 38e6440..ab8fbd5 100644 --- a/Documentation/devicetree/bindings/mfd/max77693.txt +++ b/Documentation/devicetree/bindings/mfd/max77693.txt @@ -76,7 +76,53 @@ Optional properties: Valid values: 4300000, 4700000, 4800000, 4900000 Default: 4300000 +- led : the LED submodule device node + +There are two LED outputs available - FLED1 and FLED2. Each of them can +control a separate LED or they can be connected together to double +the maximum current for a single connected LED. One LED is represented +by one child node. + +Required properties: +- compatible : Must be "maxim,max77693-led". + +Optional properties: +- maxim,trigger-type : Flash trigger type. + Possible trigger types: + LEDS_TRIG_TYPE_EDGE (0) - Rising edge of the signal triggers + the flash, + LEDS_TRIG_TYPE_LEVEL (1) - Strobe pulse length controls duration + of the flash. +- maxim,boost-mode : + In boost mode the device can produce up to 1.2A of total current + on both outputs. The maximum current on each output is reduced + to 625mA then. If not enabled explicitly, boost setting defaults to + LEDS_BOOST_FIXED in case both current sources are used. + Possible values: + LEDS_BOOST_OFF (0) - no boost, + LEDS_BOOST_ADAPTIVE (1) - adaptive mode, + LEDS_BOOST_FIXED (2) - fixed mode. +- maxim,boost-mvout : Output voltage of the boost module in millivolts. +- maxim,mvsys-min : Low input voltage level in millivolts. Flash is not fired + if chip estimates that system voltage could drop below this level due + to flash power consumption. + +Required properties of the LED child node: +- label : see Documentation/devicetree/bindings/leds/common.txt +- led-sources : see Documentation/devicetree/bindings/leds/common.txt; + device current output identifiers: 0 - FLED1, 1 - FLED2 + +Optional properties of the LED child node: +- max-microamp : see Documentation/devicetree/bindings/leds/common.txt + Range: 15625 - 250000 +- flash-max-microamp : see Documentation/devicetree/bindings/leds/common.txt + Range: 15625 - 1000000 +- flash-timeout-us : see Documentation/devicetree/bindings/leds/common.txt + Range: 62500 - 1000000 + Example: +#include <dt-bindings/leds/max77693.h> + max77693@66 { compatible = "maxim,max77693"; reg = <0x66>; @@ -117,5 +163,20 @@ Example: maxim,thermal-regulation-celsius = <75>; maxim,battery-overcurrent-microamp = <3000000>; maxim,charge-input-threshold-microvolt = <4300000>; + + led { + compatible = "maxim,max77693-led"; + maxim,trigger-type = <LEDS_TRIG_TYPE_LEVEL>; + maxim,boost-mode = <LEDS_BOOST_FIXED>; + maxim,boost-mvout = <5000>; + maxim,mvsys-min = <2400>; + + camera_flash: flash-led { + label = "max77693-flash1"; + led-sources = <0>, <1>; + max-microamp = <500000>; + flash-max-microamp = <1250000>; + flash-timeout-us = <1000000>; + }; }; };