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 <[email protected]> > --- > > .../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 <[email protected]> > + > +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
>
>
signature.asc
Description: PGP signature
