On Mon, 22 Mar 2021 15:48:33 +0100, Geert Uytterhoeven wrote: > The Holtek HT16K33 LED controller is not only used for driving > dot-matrix displays, but also for driving segment displays. > > Document compatible values for the Adafruit 7-segment[1] and > 14-segment[2] FeatherWing expansion boards with red displays. According > to the schematics, all other Adafruit 7-segment and 14-segment display > backpack and FeatherWing expansion boards (including bare boards and > boards fitted with displays) are compatible with these two boards. > Add a "color" property to support the different color variants. > > [1] https://www.adafruit.com/product/3108 > [2] https://www.adafruit.com/product/3130 > > Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> > --- > Alternatives I considered: > 1. Document the attached display type in a child node. > I.e. specify segment type, number of characters, and wiring. > Especially the latter would become really complex, due to the sheer > amount of possible wiring combinations. > Using this method, you also loose the ability to just connect a > display to an i2c bus, and instantiate the device from sysfs, > without using DT: > > echo adafruit,3130 0x70 > /sys/class/i2c/i2c-adapter/.../new_device > > 2. Do not use the "color" property, but document all Adafruit > 7-segment and 14-segment display backpack and FeatherWing expansion > boards. > This would lead to a myriad of compatible values: > > - items: > - enum: > - adafruit,878 # 0.56" 4-Digit 7-Segment Display Backpack (Red) > - adafruit,879 # 0.56" 4-Digit 7-Segment Display Backpack (Yellow) > - adafruit,880 # 0.56" 4-Digit 7-Segment Display Backpack (Green) > - adafruit,881 # 0.56" 4-Digit 7-Segment Display Backpack (Blue) > - adafruit,1002 # 0.56" 4-Digit 7-Segment Display Backpack (White) > - const: adafruit,877 # 0.56" 4-Digit 7-Segment Backpack > - const: holtek,ht16k33 > > - items: > - enum: > - adafruit,1268 # 1.2" 4-Digit 7-Segment Display Backpack (Green) > - adafruit,1269 # 1.2" 4-Digit 7-Segment Display Backpack (Yellow) > - adafruit,1270 # 1.2" 4-Digit 7-Segment Display Backpack (Red) > - const: adafruit,1271 # 1.2" 4-Digit 7-Segment Backpack > - const: holtek,ht16k33 > > - items: > - enum: > - adafruit,1911 # 0.54" Quad Alphanumeric Display Backpack (Red) > - adafruit,1912 # 0.54" Quad Alphanumeric Display Backpack (Blue) > - adafruit,2157 # 0.54" Quad Alphanumeric Display Backpack (White) > - adafruit,2158 # 0.54" Quad Alphanumeric Display Backpack (Yellow) > - adafruit,2159 # 0.54" Quad Alphanumeric Display Backpack (Yellow-Green) > - adafruit,2160 # 0.54" Quad Alphanumeric Display Backpack (Green) > - const: adafruit,1910 # 0.54" Quad 14-segment Alphanumeric Backpack > - const: holtek,ht16k33 > > - items: > - enum: > - adafruit,3106 # 0.56" 4-Digit 7-Segment FeatherWing Display (Blue) > - adafruit,3107 # 0.56" 4-Digit 7-Segment FeatherWing Display (Green) > - adafruit,3108 # 0.56" 4-Digit 7-Segment FeatherWing Display (Red) > - adafruit,3109 # 0.56" 4-Digit 7-Segment FeatherWing Display (White) > - adafruit,3110 # 0.56" 4-Digit 7-Segment FeatherWing Display (Yellow) > - const: adafruit,3088 # 0.56" 4-Digit 7-Segment FeatherWing > - const: holtek,ht16k33 > > - items: > - enum: > - adafruit,3127 # 0.54" Quad Alphanumeric FeatherWing Display (White) > - adafruit,3128 # 0.54" Quad Alphanumeric FeatherWing Display (Blue) > - adafruit,3129 # 0.54" Quad Alphanumeric FeatherWing Display (Green) > - adafruit,3130 # 0.54" Quad Alphanumeric FeatherWing Display (Red) > - adafruit,3131 # 0.54" Quad Alphanumeric FeatherWing Display (Yellow) > - adafruit,3132 # 0.54" Quad Alphanumeric FeatherWing Display (Yellow-Green) > - const: adafruit,3089 # 0.54" Quad 14-segment Alphanumeric FeatherWing > - const: holtek,ht16k33 > --- > .../bindings/auxdisplay/holtek,ht16k33.yaml | 22 ++++++++++++++++--- > 1 file changed, 19 insertions(+), 3 deletions(-) > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: ./Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml:54:16: [error] syntax error: mapping values are not allowed here (syntax) dtschema/dtc warnings/errors: make[1]: *** Deleting file 'Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.example.dts' Traceback (most recent call last): File "/usr/local/bin/dt-extract-example", line 45, in <module> binding = yaml.load(open(args.yamlfile, encoding='utf-8').read()) File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/main.py", line 343, in load return constructor.get_single_data() File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 111, in get_single_data node = self.composer.get_single_node() File "_ruamel_yaml.pyx", line 706, in _ruamel_yaml.CParser.get_single_node File "_ruamel_yaml.pyx", line 724, in _ruamel_yaml.CParser._compose_document File "_ruamel_yaml.pyx", line 775, in _ruamel_yaml.CParser._compose_node File "_ruamel_yaml.pyx", line 889, in _ruamel_yaml.CParser._compose_mapping_node File "_ruamel_yaml.pyx", line 775, in _ruamel_yaml.CParser._compose_node File "_ruamel_yaml.pyx", line 891, in _ruamel_yaml.CParser._compose_mapping_node File "_ruamel_yaml.pyx", line 904, in _ruamel_yaml.CParser._parse_next_event ruamel.yaml.scanner.ScannerError: mapping values are not allowed in this context in "<unicode string>", line 54, column 16 make[1]: *** [Documentation/devicetree/bindings/Makefile:20: Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.example.dts] Error 1 make[1]: *** Waiting for unfinished jobs.... ./Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml: mapping values are not allowed in this context in "<unicode string>", line 54, column 16 /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml: ignoring, error parsing file warning: no schema found in file: ./Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml make: *** [Makefile:1380: dt_binding_check] Error 2 See https://patchwork.ozlabs.org/patch/1456639 This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit.