Message ID | 20191212033952.5967-7-afaerber@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: realtek: Add Xnano X5 and implement TM1628/FD628/AiP1618 LED controllers | expand |
On Thu, Dec 12, 2019 at 04:39:33AM +0100, Andreas Färber wrote: > Add a YAML schema binding for TM1628 LED controller. > > Cc: zypeng@titanmec.com > Signed-off-by: Andreas Färber <afaerber@suse.de> > --- > @Rob: How could we express constraints on two-cell reg value ranges here? It's encoded as a matrix, so something like this: reg: items: items: - # constraints on 1st cell value - # constraints on 2nd cell value > Should we also model constraints on reg range by #grids property? So the value of #grid defines the max values in reg? Unfortunately, we can't yet for json-schema. There's been some proposals, but nothing final I think. > .../devicetree/bindings/leds/titanmec,tm1628.yaml | 80 ++++++++++++++++++++++ > 1 file changed, 80 insertions(+) > create mode 100644 Documentation/devicetree/bindings/leds/titanmec,tm1628.yaml > > diff --git a/Documentation/devicetree/bindings/leds/titanmec,tm1628.yaml b/Documentation/devicetree/bindings/leds/titanmec,tm1628.yaml > new file mode 100644 > index 000000000000..024875656e79 > --- /dev/null > +++ b/Documentation/devicetree/bindings/leds/titanmec,tm1628.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/leds/titanmec,tm1628.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Titan Micro Electronics TM1628 LED controller > + > +maintainers: > + - Andreas Färber <afaerber@suse.de> > + > +properties: > + compatible: > + enum: > + - titanmec,tm1628 > + > + reg: > + maxItems: 1 > + > + "#grids": I'd be more a fan of using '#' prefix if we'd been better at using it when appropriate, so I'd probably drop the '#'. > + description: | > + Number of GRID output lines to use. > + This limits the number of available SEG output lines. > + minimum: 4 > + maximum: 7 > + > + "#address-cells": > + const: 2 > + > + "#size-cells": > + const: 0 > + > +required: > + - compatible > + - reg > + > +patternProperties: > + "^.*@[1-7],([1-9]|1[02-4])$": > + type: object > + description: | > + Properties for a single LED. Please describe the unit-address format. I assume it's <grid>,<segment>. > + > + properties: > + reg: > + description: | > + 1-based grid number, followed by 1-based segment number. > + maxItems: 1 > + > + linux,default-trigger: true > + > + required: > + - reg > + > +examples: > + - | > + #include <dt-bindings/leds/common.h> > + > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + led-controller@0 { > + compatible = "titanmec,tm1628"; > + reg = <0>; > + spi-3-wire; > + spi-lsb-first; > + spi-max-frequency = <500000>; > + #grids = <7>; > + #address-cells = <2>; > + #size-cells = <0>; > + > + colon@5,4 { > + reg = <5 4>; > + color = <LED_COLOR_ID_WHITE>; > + function = LED_FUNCTION_INDICATOR; > + linux,default-trigger = "heartbeat"; > + }; > + }; > + }; > +... > -- > 2.16.4 >
diff --git a/Documentation/devicetree/bindings/leds/titanmec,tm1628.yaml b/Documentation/devicetree/bindings/leds/titanmec,tm1628.yaml new file mode 100644 index 000000000000..024875656e79 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/titanmec,tm1628.yaml @@ -0,0 +1,80 @@ +# SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/leds/titanmec,tm1628.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Titan Micro Electronics TM1628 LED controller + +maintainers: + - Andreas Färber <afaerber@suse.de> + +properties: + compatible: + enum: + - titanmec,tm1628 + + reg: + maxItems: 1 + + "#grids": + description: | + Number of GRID output lines to use. + This limits the number of available SEG output lines. + minimum: 4 + maximum: 7 + + "#address-cells": + const: 2 + + "#size-cells": + const: 0 + +required: + - compatible + - reg + +patternProperties: + "^.*@[1-7],([1-9]|1[02-4])$": + type: object + description: | + Properties for a single LED. + + properties: + reg: + description: | + 1-based grid number, followed by 1-based segment number. + maxItems: 1 + + linux,default-trigger: true + + required: + - reg + +examples: + - | + #include <dt-bindings/leds/common.h> + + spi { + #address-cells = <1>; + #size-cells = <0>; + + led-controller@0 { + compatible = "titanmec,tm1628"; + reg = <0>; + spi-3-wire; + spi-lsb-first; + spi-max-frequency = <500000>; + #grids = <7>; + #address-cells = <2>; + #size-cells = <0>; + + colon@5,4 { + reg = <5 4>; + color = <LED_COLOR_ID_WHITE>; + function = LED_FUNCTION_INDICATOR; + linux,default-trigger = "heartbeat"; + }; + }; + }; +...
Add a YAML schema binding for TM1628 LED controller. Cc: zypeng@titanmec.com Signed-off-by: Andreas Färber <afaerber@suse.de> --- @Rob: How could we express constraints on two-cell reg value ranges here? Should we also model constraints on reg range by #grids property? .../devicetree/bindings/leds/titanmec,tm1628.yaml | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 Documentation/devicetree/bindings/leds/titanmec,tm1628.yaml