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

From: Javier Martinez Canillas
Date: Wed Oct 11 2023 - 02:35:27 EST


Conor Dooley <conor@xxxxxxxxxx> writes:

Hello Conor,

Thanks a lot for your feedback.

> Hey,
>
> On Mon, Oct 09, 2023 at 08:34:22PM +0200, Javier Martinez Canillas wrote:

[...]

>> +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.

Indeed. I'll fix that in v2.

> I didn't get anything else in the series, I have to ask - are these
> controllers not compatible with eachother?
>

They are not, basically the difference is in the default width and height
for each controller. That's why the width and height fields are optional.

But other than the default resolution, yes the controllers are very much
the same.

>> +
>> + 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?
>

There are some common properties, such as the width-mm and height-mm for
the panel-common:

Documentation/devicetree/bindings/display/panel/panel-common.yaml

But those are to describe the physical area expressed in millimeters and
the Solomon drivers (the old ssd1307fb fbdev driver and the new ssd130x
DRM driver for backward compatibility with existing DTB) express the width
and height in pixels.

That's why are Solomon controller specific properties "solomon,width" and
"solomon,height".

[...]

>> + 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
>

Yes, this was done like that for clarity. Because is easier for someone
reading the DT binding schema to reason about resolution (width,height)
for a given SSD132x controller, rather than following the if/else logic.

>> +
>> +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.
>

Right, I'll drop those too.

> Cheers,
> Conor.
>

--
Best regards,

Javier Martinez Canillas
Core Platforms
Red Hat