On Wed, Mar 08, 2023 at 11:52:08AM +0200, Svyatoslav Ryhel wrote: > Signed-off-by: Svyatoslav Ryhel <clamor95@xxxxxxxxx> > --- > .../bindings/media/i2c/ti,lm3560.yaml | 130 ++++++++++++++++++ > 1 file changed, 130 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/i2c/ti,lm3560.yaml > > diff --git a/Documentation/devicetree/bindings/media/i2c/ti,lm3560.yaml b/Documentation/devicetree/bindings/media/i2c/ti,lm3560.yaml > new file mode 100644 > index 000000000000..b3c2ccb83a30 > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/i2c/ti,lm3560.yaml > @@ -0,0 +1,130 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/i2c/ti,lm3560.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: TI LM3560 Synchronous Boost Flash Driver > + > +maintainers: > + - Daniel Jeong <gshark.jeong@xxxxxxxxx> > + - Ldd-Mlp <ldd-mlp@xxxxxxxxxxx> > + > +description: | > + The LM3560 is a 2-MHz fixed frequency synchronous boost > + converter with two 1000-mA constant current drivers for > + high-current white LEDs. The dual highside current sources > + allow for grounded cathode LED operation and can be tied > + together for providing flash currents at up to 2 A through > + a single LED. An adaptive regulation method ensures the > + current for each LED remains in regulation and maximizes > + efficiency. > + > +properties: > + compatible: > + items: > + - enum: > + - ti,lm3559 > + - ti,lm3560 > + > + reg: > + maxItems: 1 > + > + enable-gpios: > + maxItems: 1 > + > + ti,peak-current: > + $ref: /schemas/types.yaml#/definitions/uint32 > + enum: [0, 0x20, 0x40, 0x60] > + default: 0x60 > + description: | > + Peak current can be set to 4 values 1.6A (0x00), > + 2.3A (0x20), 3.0A (0x40) and 3.6A (0x60). Pretty sure we have common properties for this. > + > + ti,max-flash-timeout: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 32 > + maximum: 1024 > + default: 1024 > + description: | > + Maximum flash timeout in ms with step 32ms. And this too. > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > +required: > + - compatible > + - reg > + - '#address-cells' > + - '#size-cells' > + > +patternProperties: > + "^led@[01]$": > + type: object > + description: | > + Properties for a connected LEDs. > + properties: > + reg: > + minimum: 0 > + maximum: 1 > + > + ti,max-flash-current: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 62500 > + maximum: 1000000 > + default: 1000000 > + description: | > + Maximum current in flash mode in uA with step 62500uA. Or maybe it's these per LED settings that are common. BTW, anything with units, should have a standard unit suffix. > + > + ti,max-torch-current: > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 31250 > + maximum: 250000 > + default: 250000 > + description: | > + Maximum current in tourch mode in uA with step 31250uA. > + > + required: > + - reg > + > + additionalProperties: false > + > +additionalProperties: false > + > +examples: > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + flash-led@53 { led-controller@53 > + compatible = "ti,lm3559"; > + reg = <0x53>; > + > + enable-gpios = <&gpio 219 GPIO_ACTIVE_HIGH>; > + > + ti,peak-current = <0>; > + ti,max-flash-timeout = <1024>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + led@0 { > + reg = <0>; > + > + ti,max-flash-current = <562500>; > + ti,max-torch-current = <156250>; > + }; > + > + led@1 { > + reg = <1>; > + > + ti,max-flash-current = <562500>; > + ti,max-torch-current = <156250>; > + }; > + }; > + }; > +... > -- > 2.37.2 >