[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210714203624.GA3466861@robh.at.kernel.org>
Date: Wed, 14 Jul 2021 14:36:24 -0600
From: Rob Herring <robh@...nel.org>
To: Geert Uytterhoeven <geert@...ux-m68k.org>
Cc: Robin van der Gracht <robin@...tonic.nl>,
Miguel Ojeda <ojeda@...nel.org>,
Paul Burton <paulburton@...nel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Pavel Machek <pavel@....cz>, devicetree@...r.kernel.org,
linux-leds@...r.kernel.org, linux-mips@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 02/18] dt-bindings: auxdisplay: ht16k33: Document
Adafruit segment displays
On Fri, Jun 25, 2021 at 02:58:46PM +0200, 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@...ux-m68k.org>
> ---
> v2:
> - Fix type of color to uint32,
> - "refresh-rate-hz" is still required for dot-matrix displays.
>
> 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 | 31 +++++++++++++++++--
> 1 file changed, 28 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml b/Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml
> index 64ffff460026040f..616aca817874bdc8 100644
> --- a/Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml
> +++ b/Documentation/devicetree/bindings/auxdisplay/holtek,ht16k33.yaml
> @@ -14,14 +14,23 @@ allOf:
>
> properties:
> compatible:
> - const: holtek,ht16k33
> + oneOf:
> + - items:
> + - const: adafruit,3108 # 0.56" 4-Digit 7-Segment FeatherWing Display (Red)
> + - const: holtek,ht16k33
> +
> + - items:
> + - const: adafruit,3130 # 0.54" Quad Alphanumeric FeatherWing Display (Red)
> + - const: holtek,ht16k33
These 2 entries can be combined. Or make the comment a 'description'.
> +
> + - const: holtek,ht16k33 # Generic 16*8 LED controller with dot-matrix display
>
> reg:
> maxItems: 1
>
> refresh-rate-hz:
> maxItems: 1
> - description: Display update interval in Hertz
> + description: Display update interval in Hertz for dot-matrix displays
>
> interrupts:
> maxItems: 1
> @@ -41,10 +50,26 @@ properties:
> default: 16
> description: Initial brightness level
>
> + color:
> + description:
> + Color of the display. Use one of the LED_COLOR_ID_* prefixed definitions
> + from the header include/dt-bindings/leds/common.h. The default is red.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 9
> + default: 1
> +
> required:
> - compatible
> - reg
> - - refresh-rate-hz
> +
> +if:
> + properties:
> + compatible:
> + const: holtek,ht16k33
Isn't this always true?
> +then:
> + required:
> + - refresh-rate-hz
>
> additionalProperties: false
>
> --
> 2.25.1
>
>
Powered by blists - more mailing lists