Re: [PATCH/RFC v9 06/19] DT: Add documentation for the mfd Maxim max77693

From: Jacek Anaszewski
Date: Thu Dec 04 2014 - 06:40:59 EST


Hi Sakari,

Thanks for the review.

On 12/04/2014 11:07 AM, Sakari Ailus wrote:
Hi Jacek,

On Wed, Dec 03, 2014 at 05:06:41PM +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@xxxxxxxxxxx>
Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx>
Acked-by: Kyungmin Park <kyungmin.park@xxxxxxxxxxx>
Cc: Lee Jones <lee.jones@xxxxxxxxxx>
Cc: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
Cc: Bryan Wu <cooloney@xxxxxxxxx>
Cc: Richard Purdie <rpurdie@xxxxxxxxx>
Cc: Rob Herring <robh+dt@xxxxxxxxxx>
Cc: Pawel Moll <pawel.moll@xxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Ian Campbell <ijc+devicetree@xxxxxxxxxxxxxx>
Cc: Kumar Gala <galak@xxxxxxxxxxxxxx>
Cc: <devicetree@xxxxxxxxxxxxxxx>
---
Documentation/devicetree/bindings/mfd/max77693.txt | 89 ++++++++++++++++++++
1 file changed, 89 insertions(+)

diff --git a/Documentation/devicetree/bindings/mfd/max77693.txt b/Documentation/devicetree/bindings/mfd/max77693.txt
index 01e9f30..25a6e78 100644
--- a/Documentation/devicetree/bindings/mfd/max77693.txt
+++ b/Documentation/devicetree/bindings/mfd/max77693.txt
@@ -41,7 +41,66 @@ Optional properties:
To get more informations, please refer to documentaion.
[*] refer Documentation/devicetree/bindings/pwm/pwm.txt

+- 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,fleds : Array of current outputs in order: fled1, fled2.
+ Note: both current outputs can be connected to a single led
+ Possible values:
+ MAX77693_LED_FLED_UNUSED - the output is left disconnected,
+ MAX77693_LED_FLED_USED - a diode is connected to the output.

As you have a LED sub-nodes for each LED already, isn't this redundant?

Well, it seems so :)

+- maxim,trigger-type : Array of trigger types in order: flash, torch.
+ Possible trigger types:
+ MAX77693_LED_TRIG_TYPE_EDGE - Rising edge of the signal triggers
+ the flash/torch,
+ MAX77693_LED_TRIG_TYPE_LEVEL - Signal level controls duration of

How about: "Strobe pulse length ..."?

OK, it will be more clear.

How long does the torch stay on if you use edge trigger for it? I've always
thought the torch enable pin was a practical joke. :-)

There is a torch timer available but I don't expose it to the user.

If you need it this for torch as well, I'd use separate properties for the
purpose, i.e. trigger-type-flash and trigger-type-torch.

OK.

+ the flash/torch.
+- maxim,trigger : Array of flags indicating which trigger can activate given led
+ in order: fled1, fled2.
+ Possible flag values (can be combined):
+ MAX77693_LED_TRIG_FLASHEN - FLASHEN pin of the chip,
+ MAX77693_LED_TRIG_TORCHEN - TORCHEN pin of the chip,
+ MAX77693_LED_TRIG_SOFTWARE - software via I2C command.

Is there a need to prevent strobing using a certain method? Just wondering.

In some cases it could be convenient to prevent some options through
device tree.

+- 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 there are two child led nodes defined then boost
+ is enabled by default.
+ Possible values:
+ MAX77693_LED_BOOST_OFF - no boost,
+ MAX77693_LED_BOOST_ADAPTIVE - adaptive mode,
+ MAX77693_LED_BOOST_FIXED - fixed mode.
+- maxim,boost-vout : Output voltage of the boost module in millivolts.
+- maxim,vsys-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
+- maxim,fled_id : Identifier of the fled output the led is connected to;

I'm pretty sure this will be needed for about every chip that can drive
multiple LEDs. Shouldn't it be documented in the generic documentation?

OK.

+ MAX77693_LED_FLED1 - FLED1 output of the device - it has to be
+ used also if a single LED is connected to both outputs,
+ MAX77693_LED_FLED2 - FLED2 output of the device.
+
+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-microsec : see Documentation/devicetree/bindings/leds/common.txt
+ Range: 62500 - 1000000
+
Example:
+#include <dt-bindings/mfd/max77693.h>
+
max77693@66 {
compatible = "maxim,max77693";
reg = <0x66>;
@@ -73,4 +132,34 @@ Example:
pwms = <&pwm 0 40000 0>;
pwm-names = "haptic";
};
+
+ led {
+ compatible = "maxim,max77693-led";
+ maxim,fleds = <MAX77693_LED_FLED_USED
+ MAX77693_LED_FLED_USED>;
+ maxim,trigger = <MAX77693_LED_TRIG_ALL
+ (MAX77693_LED_TRIG_TORCHEN |
+ MAX77693_LED_TRIG_SOFTWARE)>;
+ maxim,trigger-type = <MAX77693_LED_TRIG_TYPE_EDGE
+ MAX77693_LED_TRIG_TYPE_LEVEL>;
+ maxim,boost-mode = <MAX77693_LED_BOOST_ADAPTIVE>;
+ maxim,boost-vout = <5000>;
+ maxim,vsys-min = <2400>;
+
+ camera1_flash: led1 {
+ maxim,fled_id = <MAX77693_LED_FLED1>;
+ label = "max77693-flash1";
+ max-microamp = <250000>;
+ flash-max-microamp = <625000>;
+ flash-timeout-microsec = <1000000>;
+ };
+
+ camera2_flash: led2 {
+ maxim,fled_id = <MAX77693_LED_FLED2>;
+ label = "max77693-flash2";
+ max-microamp = <250000>;
+ flash-max-microamp = <500000>;
+ flash-timeout-microsec = <1000000>;
+ };
+ };

I like how this looks like in general.

Nice :)

};


Best Regards,
Jacek Anaszewski
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/