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?
+- 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 ..."?
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. :-)
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.
+ 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.
+- 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?
+ 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.
};