Re: [PATCH 2/4] dt-bindings: display: ssd1307fb: Add entry for SINO WEALTH SH1106

From: Chen-Yu Tsai
Date: Mon Apr 04 2022 - 18:00:49 EST

On Mon, Apr 4, 2022 at 11:48 PM Javier Martinez Canillas
<javierm@xxxxxxxxxx> wrote:
> Hello Chen-Yu,
> On 4/4/22 17:06, Chen-Yu Tsai wrote:
> [snip]
> >>> enum:
> >>> + - sinowealth,sh1106-i2c
> >>
> >> I like that you didn't include a "fb" suffix for this, the existing
> >> ones are cargo culting from the previous fbdev driver to make existing
> >> DTBs compatible with the DRM driver.
> >>
> >> I've been thinking if I should post a patch to compatible strings
> >> without the "fb" and mark the current ones as deprecated...
> >>
> >> Reviewed-by: Javier Martinez Canillas <javierm@xxxxxxxxxx>
> >
> > I also thought about dropping the "-i2c" suffix, but then thought
> > there might be a case where someone wanted to search the device
> > tree specifically for an I2C connected node using said compatible
> > string.
> >
> > What do you think?
> >
> >
> tl; dr: unfortunately we can't do it due how SPI and I2C report module
> aliases. Otherwise module auto loading will not work. I wrote a much
> longer explanation with some details not so long ago:

Right. I think that crossed my mind at some point, but didn't stick.
Thanks for raising it again. :)

> BTW, I bought a SSD1306 SPI controller and go it working this weekend.
> I plan to post the patches once yours land, to avoid in-flight series
> that may conflict. And what I did is mark the -fb as deprecated, then
> added "ssd130x-i2c" and "ssd130x-spi" compatibles strings.
> The WIP patches can be found here in case you are interested:

I took a quick look and a couple things stood out:

1. Would 3-wire SPI ever be considered? If so, might want to
rename some of variables/functions as *_spi_4wire_* to
begin with.

2. Maybe we should move the ssd130x_deviceinfo stuff into the
core module, and define an enum to use for matching compatible
strings across the modules to their respective device info
entries? FYI we are doing this in drivers/mfd/axp20x* .

I think a friend of mine has a SPI based SH1106 module that I
could borrow and test/work on, but that's a big if.