Re: [PATCH 8/8] dt-bindings: display: Add SSD132x OLED controllers

From: Conor Dooley
Date: Tue Oct 10 2023 - 12:32:00 EST


Hey,

On Mon, Oct 09, 2023 at 08:34:22PM +0200, Javier Martinez Canillas wrote:
> Add a Device Tree binding schema for the OLED panels based on the Solomon
> SSD132x family of controllers.
>
> Signed-off-by: Javier Martinez Canillas <javierm@xxxxxxxxxx>
> ---
>
> .../bindings/display/solomon,ssd132x.yaml | 116 ++++++++++++++++++
> 1 file changed, 116 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
>
> diff --git a/Documentation/devicetree/bindings/display/solomon,ssd132x.yaml b/Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
> new file mode 100644
> index 000000000000..b64904703a3a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/solomon,ssd132x.yaml
> @@ -0,0 +1,116 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/solomon,ssd132x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Solomon SSD132x OLED Controllers
> +
> +maintainers:
> + - Javier Martinez Canillas <javierm@xxxxxxxxxx>
> +
> +properties:
> + compatible:
> + oneOf:
> + - enum:
> + - solomon,ssd1322
> + - solomon,ssd1325
> + - solomon,ssd1327

You don't need the oneOf here here as there is only the enum as a
possible item.
I didn't get anything else in the series, I have to ask - are these
controllers not compatible with eachother?

> +
> + reg:
> + maxItems: 1
> +
> + reset-gpios:
> + maxItems: 1
> +
> + # Only required for SPI
> + dc-gpios:
> + description:
> + GPIO connected to the controller's D/C# (Data/Command) pin,
> + that is needed for 4-wire SPI to tell the controller if the
> + data sent is for a command register or the display data RAM
> + maxItems: 1
> +
> + solomon,height:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Height in pixel of the screen driven by the controller.
> + The default value is controller-dependent.

You probably know better than me, operating in drm stuff, but are there
really no generic properties for the weidth/height of a display?

> +
> + solomon,width:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Width in pixel of the screen driven by the controller.
> + The default value is controller-dependent.
> +
> +required:
> + - compatible
> + - reg
> +
> +allOf:
> + - $ref: /schemas/spi/spi-peripheral-props.yaml#
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: solomon,ssd1322
> + then:
> + properties:
> + width:
> + default: 480
> + height:
> + default: 128
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: solomon,ssd1325
> + then:
> + properties:
> + width:
> + default: 128
> + height:
> + default: 80
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: solomon,ssd1327
> + then:
> + properties:
> + width:
> + default: 128
> + height:
> + default: 128

Unless you did it like this for clarity, 2 of these have the same
default width and 2 have the same default height. You could cut this
down to a pair of if/then/else on that basis AFAICT.
:wq

> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ssd1327_i2c: oled@3c {

This label is unused as far as I can tell. Ditto below.

Cheers,
Conor.

> + compatible = "solomon,ssd1327";
> + reg = <0x3c>;
> + reset-gpios = <&gpio2 7>;
> + };
> +
> + };
> + - |
> + spi {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ssd1327_spi: oled@0 {
> + compatible = "solomon,ssd1327";
> + reg = <0x0>;
> + reset-gpios = <&gpio2 7>;
> + dc-gpios = <&gpio2 8>;
> + spi-max-frequency = <10000000>;
> + };
> + };
> --
> 2.41.0
>
>

Attachment: signature.asc
Description: PGP signature