This patch documents LED Class Flash Manager related bindings. Signed-off-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx> Acked-by: Kyungmin Park <kyungmin.park@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> --- .../bindings/leds/leds-flash-manager.txt | 163 ++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 Documentation/devicetree/bindings/leds/leds-flash-manager.txt diff --git a/Documentation/devicetree/bindings/leds/leds-flash-manager.txt b/Documentation/devicetree/bindings/leds/leds-flash-manager.txt new file mode 100644 index 0000000..d36aca2 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/leds-flash-manager.txt @@ -0,0 +1,163 @@ +* LED Flash Manager + +Flash manager is a part of LED Flash Class. It maintains +all the flash led devices which have their external strobe +signals routed through multiplexing devices. +The multiplexers are aggregated in the standalone 'flash_muxes' +node as subnodes which are referenced by the flash led devices. + + +flash_muxes node +---------------- + +muxN subnode +------------ + +There must be at least one muxN subnode, where N is the identifier +of the node, present in the flash_muxes node. One muxN node +represents one multiplexer. + +Required properties (mutually exclusive): +- gpios : specifies the gpio pins used to set the states + of mux selectors, LSB first +- mux-async : phandle to the node of the multiplexing device + + + +flash led device node +--------------------- + +Following subnodes must be added to the LED Flash Class device +tree node described in Documentation/devicetree/bindings/leds/common.txt. + + +gate-software-strobe subnode +---------------------------- + +The node defines multiplexer settings that need to be applied if +software strobe signal is to be routed to the flash led device. + +Required properties: +- mux : phandle to the muxN node defined + in the flash_muxes node +- mux-line-id : mux line identifier + +Optional subnodes: +- gate-software-strobe : if there are many multiplexers to configure, + they can be recursively nested. + + +gate-external-strobeN subnode +----------------------------- + +The node defines multiplexer settings that need to be applied if +external strobe signal is to be routed to the flash led device. +A flash led device can have many external strobe signal sources. + +Required properties: +- mux : phandle to the muxN node defined + in the flash_muxes node +- mux-line-id : mux line identifier +Optional properties: +- strobe-provider : phandle to the device providing the + strobe signal. It is expected only + on the first level node. The referenced + node is expected to have 'compatible' + property, as providers are labelled + with it in the LED subsystem + +Optional subnodes: +- gate-external-strobeN : if there are many multiplexers to configure, + they can be recursively nested. + + +Example: + +Following board configuration is assumed in this example: + + ---------- ---------- + | FLASH1 | | FLASH2 | + ---------- ---------- + \(0) /(1) + ---------- + | MUX1 | + ---------- + | + ---------- + | MUX2 | + ---------- + /(0) \(1) + ---------- -------------------- + | MUX3 | | SOC FLASHEN GPIO | + ---------- -------------------- + /(0) \(1) +----------- ----------- +| SENSOR1 | | SENSOR2 | +----------- ----------- + + +dummy_mux: led_mux { + compatible = "led-async-mux"; +}; + +flash_muxes { + flash_mux1: mux1 { + gpios = <&gpj1 1 0>, <&gpj1 2 0>; + }; + + flash_mux2: mux2 { + mux-async = <&dummy_mux>; + }; + + flash_mux3: mux3 { + gpios = <&gpl1 1 0>, <&gpl1 2 0>; + }; +}; + +max77693-flash { + compatible = "maxim,max77693-flash"; + + //other device specific properties here + + gate-software-strobe { + mux = <&flash_mux1>; + mux-line-id = <0>; + + gate-software-strobe { + mux = <&flash_mux2>; + mux-line-id = <1>; + }; + }; + + gate-external-strobe1 { + strobe-provider = <&s5c73m3_spi>; + mux = <&flash_mux1>; + mux-line-id = <0>; + + gate-external-strobe1 { + mux = <&flash_mux2>; + mux-line-id = <0>; + + gate-external-strobe1 { + mux = <&flash_mux3>; + mux-line-id = <0>; + }; + }; + }; + + gate-external-strobe2 { + strobe-provider = <&s5k6a3>; + mux = <&flash_mux1>; + mux-line-id = <0>; + + gate-external-strobe2 { + mux = <&flash_mux2>; + mux-line-id = <0>; + + gate-external-strobe2 { + mux = <&flash_mux3>; + mux-line-id = <1>; + }; + }; + }; +}; -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html